versioning
Versioning
Once Managers have extracted dependencies, and Datasources have located available versions, then Renovate makes use of "Versioning" schemes to perform sorting and filtering of results. This is necessary because different managers use different types of numbering/versioning, e.g. 1.0.0-beta.1
in npm
and 1.0.0b1
in Python.
Configuring Versioning
There are times when you may need to manually configure/override the versioning
value for a particular dependency. You generally won't have a need for this in ecosystems with strict versioning enforcement like npm
, but you might often need it for ecosystems like Docker where versioning is barely a "convention". e.g.
{
"packageRules": [
{
"datasources": ["docker"],
"packageNames": ["python"],
"versioning": "pep440"
}
]
}
The above will override Renovate's default of docker
versioning for the python
Docker image and instead use pep440
versioning to evaluate versions.
Supported Versioning
Supported values for versioning
are: cargo
, composer
, docker
, git
, gradle
, hashicorp
, hex
, ivy
, loose
, maven
, node
, npm
, nuget
, pep440
, poetry
, regex
, ruby
, semver
, swift
.
Cargo Versioning
Identifier: cargo
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Composer Versioning
Identifier: composer
References:
- https://getcomposer.org/doc/articles/versions.md
- https://packagist.org/packages/composer/semver
- https://madewithlove.be/tilde-and-caret-constraints/
- https://semver.mwl.be
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Docker Versioning
Identifier: docker
References:
Ranges/Constraints:
❌ No range support.
git Versioning
Identifier: git
References:
Ranges/Constraints:
❌ No range support.
Gradle Versioning
Identifier: gradle
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: pin
Hashicorp Versioning
Identifier: hashicorp
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Hex Versioning
Identifier: hex
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Ivy Versioning
Identifier: ivy
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Loose Versioning
Identifier: loose
Ranges/Constraints:
❌ No range support.
Maven Versioning
Identifier: maven
References:
- https://maven.apache.org/pom.html#Dependency_Version_Requirement_Specification
- https://octopus.com/blog/maven-versioning-explained
- https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Node.js Versioning
Identifier: node
Ranges/Constraints:
❌ No range support.
npm Versioning
Identifier: npm
References:
- https://semver.org/
- https://www.npmjs.com/package/semver
- https://docs.npmjs.com/about-semantic-versioning
- https://semver.npmjs.com/
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
NuGet Versioning
Identifier: nuget
References:
Ranges/Constraints:
❌ No range support.
PEP440 Versioning
Identifier: pep440
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Poetry Versioning
Identifier: poetry
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Regular Expression Versioning
Identifier: regex
Ranges/Constraints:
❌ No range support.
Ruby Versioning
Identifier: ruby
References:
- https://guides.rubygems.org/patterns/
- https://bundler.io/v1.5/gemfile.html
- https://www.devalot.com/articles/2012/04/gem-versions.html
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace
Semantic Versioning
Identifier: semver
References:
Ranges/Constraints:
❌ No range support.
Swift Versioning
Identifier: swift
References:
Ranges/Constraints:
✅ Ranges are supported.
Valid rangeStrategy
values are: bump
, extend
, pin
, replace