Due to #82865, newer versions can't be used for dlink-enabled Web builds.
This isn't a problem for CI which doesn't use dlink, but it's clearer for
users if our CI version matches the one we use for official builds.
- Reformat logo license as a plain text file.
- Fix outdated links or references to SFC or Visual Script.
- Tweak contents of `CONTRIBUTING.md` to highlight contributor docs more
prominently, and make it easier to parse.
- Tweak formatting and contents in `thirdparty/README.md` for consistency.
This used to be ignored as we ran the X11 version with Vulkan software renderer and xvfb-run, which could crash at the time. Now that we have headless mode, this is not a problem anymore.
This means that any PR which breaks the extension API should
handle it properly, that is:
- Add compatibility methods to ensure that existing function hashes work
- Document the changes in the relevant misc/extension_api_validation/ file
Useful for custom forks of Godot which don't want to run our CI for any
reason.
This is configured in `settings/variables/actions` for the repository,
setting it to any value aside from an empty string will skip all jobs.
This ensures that the godot-cpp job has plenty of resources
to run its build and avoid being affected by the main build.
Additionally:
- Extract test tasks into dedicated actions.
- Upload artifacts as early as possible.
- Ensure that we check master cache before random cache.
Removing the Android toolchain saves 14 GiB, which gives us more room
for growth and to avoid running into out-of-space errors in the Linux
sanitizers + debug symbols builds.
Related to #79919, though the caches were just one part of the problem,
the real issue is that our Linux sanitizers builds take 12 GiB, and
adding godot-cpp on top with 2 GiB leaves only a few GiB left for the
cache itself.
It's the slowest build so a speedup from SCU is welcome.
The other purpose of this change is to actually catch global scope
conflicts which would break the SCU build.
SCU builds have drawbacks as they won't fully validate that the
includes are correct, but we should have enough other builds in the CI
build matrix to catch this type of bug.
Additionally:
* for custom builds, add commit hash
* added a tooltip to help mitigate potential/understandable confusion whether the single-line output might be a bug
* prettify driver name
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static
For PRs, this should give a more accurate list, as the previous method would
diff to the tip of the `master` branch, which could include new commits (and
thus changed files) not present in the PR branch.
codespell's `--skip` option doesn't work at all with folders when used
together with an explicit list of paths to work with, so let's not use it.
Before this change, there was three different bug reporting guides:
- [“Filing an issue on GitHub”][1]
- [“Reporting bugs”][2]
- [The issue template][3]
This commit:
1. makes sure that [the issue template][3] contains all of the same
information that [“Filing an issue on GitHub”][1] and
[“Reporting bugs”][2] did and
2. makes [“Reporting bugs”][2] simply tell users to fill out the
template.
The goal of this change is to make reporting bugs easier. This change
accomplishes that goal by presenting bug reporters with all of the
information they need to know on the bug reporting page itself.
This commit partially implements this proposal:
<https://github.com/godotengine/godot-proposals/discussions/4083>
[1]: https://docs.godotengine.org/en/stable/community/contributing/ways_to_contribute.html#filing-an-issue-on-github
[2]: ./CONTRIBUTING.md#reporting-bugs
[3]: ./.github/ISSUE_TEMPLATE/bug_report.yml
This helps to find such classes without digging
through the rest of the class reference.
Editor-only classes can still be found under
your normal "Node" and "Resource" types.
This also fixes a typo and a missed case from the recent platform docs PR.
The checkout might be too shallow so the before commit isn't available.
The logic was already written to take this into account (it then generates
an empty 'changed.txt' which falls back to testing everything), but the
error code would still force terminate the job.
Hopefully we can find a way to make the logic work for merge events too in
the future, but for now this is a quick fix.
- file_format, header_guards and clang-format benefit from this short list.
- dotnet-format, Python and JS checks don't, but they're only relevant for
PRs changing a specific set of files, so we skip them when those files
aren't modified.
The logic to get changed files only works reliably for:
- Pull request events
- Non-force pushed push events
So when force pushing a branch in your fork, or creating a new branch,
it will still scan all files as fallback.
Upgraded CI runner to Ubuntu 22.04 so we get clang-format 14 out of the box,
so we don't need to install a custom version (saves ~15 s). We also cache
the APT dependencies to speed up the build and avoid flaky Ubuntu/Microsoft
repos.