Dependencies¶
This project, like any software, stands on the shoulders of giants, and depends on external “third-party” software.
Updating Dependencies¶
./update.bash
shows some of and where possible automatically updates these dependencies.
It should be regularly (manually) run by maintainers of this project. Where possible, we automate this with “bots” such as:
Runtime Dependencies¶
WORKSPACE.bazel
(laterMODULE.bazel
) contains the Java Maven Group, Artifact & Versions (GAV), see our Bazel doc
Build-time (only) Dependencies¶
.bazelversion
has the Bazel version itselfWORKSPACE.bazel
contains versionedhttp_archive
of Bazel rulesMODULE.bazel
containsbazel_dep
versions.pre-commit-config.yaml
contains the versions of variouspre-commit
hooks used to enforce the Code Stylesrequirements.txt
contains versions of Python packages used as build tools
GitHub Action Cache¶
The .github/workflows/ci.yaml
uses the
https://github.com/actions/cache to speed up the Continuous Integration (CI) builds of PRs on GitHub.
It is normal and intentional that every time the files listed above are changed this cache is entirely invalidated, and thus a longer “full build” runs. PRs which do not change dependencies will still build noticeably faster.
If you are surprised and it seems to you that this cache does not work, because you noticed that the
re-build of the main
branch after the merge of a GitHub Pull Request (PR) which changed dependencies
does not re-use the cache from the PR, this is also expected and not a bug.
It WILL work and speed up future PRs (provided there are no changes to dependencies again).
GitHub’s documentation
explains why this is so; TL;DR: a PR build can use the cache from a main
build, but a main
build will not use a PR’s cache.
https://github.com/actions/cache/pull/575/files has some related discussion.