GitHub’s Dependabot now supports Julia.
i.e. A standard .github/dependabot.yml file can now look like this to keep both github actions and julia deps up to date:
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "julia"
directory: "/"
schedule:
interval: "weekly"
# groups: # uncomment to group all julia package updates into a single PR
# all-julia-packages:
# patterns:
# - "*"
Dependabot has some benefits over CompatHelper:
- PRs will have their CI run automatically without manual interaction
- Any checked-in manifests will be updated, or if that fails the resolver errors will be shown directly in the PR body
- Workspaces are supported. Just set the
directory:field like normal to the root where the main Project.toml is, and the sub-projects will be handled automatically. An example PR can be seen here - Dependabot can tie into security/CVE reporting
Keeping test/, docs/ etc. updated
If you have test, docs or other subdirectories setup with environments, it’s recommended to use the new workspaces feature (1.12+) to tie them together, which will work with the simple single directory: "/" configuration that the main example above gives. See the [workspaces] docs for more information on workspaces.
If you would rather not use workspaces, you can specify a list of directories, but note that the update for a single dependency will be opened in individual PRs, and thus may not fully test the change due to resolver conflicts between the environments. (workspaces make coordinating all that a lot easier).
Multi directory config example
version: 2
updates:
- package-ecosystem: "julia"
directories: # Location of Julia projects
- "/"
- "/docs"
- "/test"
schedule:
interval: "weekly"
Current limitations
- Dependabot doesn’t yet support custom julia package registries, but there is work in progress to fix that.
- Dependabot runs on 1.12, so any manifest changes will be done from 1.12, irrespective of which version they were resolved with. Work is active in Pkg & juliaup to make it easier for the julia version of the manifest to be respected, which dependabot will then use.
- The CVE reporting side of dependabot requires a little more infrastructure on the github side julia ecosystem support · Issue #1689 · github/advisory-database · GitHub
Thanks to those who helped with the beta period that was announced in November
Please feel free to suggest changes to this summary.