Julia
Categories: julia
Renovate supports updating Julia dependencies.
File Matching¶
By default, Renovate will check any files matching the following regular expression: /(^|/)(Julia)?Project\.toml$/.
For details on how to extend a manager's managerFilePatterns value, please follow this link.
Supported datasources¶
This manager supports extracting the following datasources: julia-general-metadata.
Dependency types¶
This manager extracts the following depType values:
depType |
Description |
|---|---|
deps |
A [compat] entry for a package in [deps] |
weakdeps |
A [compat] entry for a package in [weakdeps], which extensions load |
test |
A [compat] entry for a package in [extras] that [targets] lists for test |
build |
A [compat] entry for a package in [extras] that [targets] lists for build only |
extras |
A [compat] entry for a package in [extras] that no target lists |
compat |
A [compat] entry for a package that no section lists |
Default config¶
{
"managerFilePatterns": [
"/(^|/)(Julia)?Project\\.toml$/"
]
}
Additional Information¶
Extracts the [compat] entries of Julia Project.toml and JuliaProject.toml files, and looks each package up in the General registry with the julia-general-metadata datasource and julia versioning.
The manager skips:
- the
juliaentry, which constrains the Julia version itself. Raising its lower bound drops support for older Julia versions, which is the maintainer's decision. - the standard libraries that ship only with Julia, such as
LinearAlgebraandTest, because General has no versions for them. The list is fixed: if one of them is added to General later, the manager keeps skipping it until the list is updated. - a package that
[sources]takes from a git repository or a local path.
A package's UUID comes from [deps], [weakdeps] or [extras].
With the UUID, a package from another registry that has the name of a General package gets no updates.
Its lookup fails on every run, as does the lookup of a package that is not in General.
To skip such packages, disable them with packageRules:
{
"packageRules": [
{
"matchManagers": ["julia"],
"matchDepNames": ["MyPrivatePackage"],
"enabled": false
}
]
}
A package's depType is the section that lists it, deps, weakdeps or extras, or for a package in [extras], the target that [targets] lists it for, test or build.
So matchDepTypes targets the test dependencies in [targets], and matchFileNames those in a test/Project.toml, which are deps of that file.
For example, to group the updates of test dependencies:
{
"packageRules": [
{
"matchManagers": ["julia"],
"matchDepTypes": ["test"],
"groupName": "test dependencies"
},
{
"matchManagers": ["julia"],
"matchFileNames": ["**/test/Project.toml"],
"groupName": "test dependencies"
}
]
}
The default rangeStrategy is widen, which adds a specifier for the new release, as CompatHelper and dependabot do: "0.10, 0.11" with 0.12.1 becomes "0.10, 0.11, 0.12".
The manager updates Project.toml only, not Manifest.toml.