Files
Sergei Zharinov aed021fb97 feat: Add semver-partial versioning scheme (#38593)
* feat(gitlab-ci): Add `semver-partial` versioning

* Add supported range strategies to semver-partial

* Add test cases for invalid semver inputs

* Remove unused sortVersions spec test

* Add tests for semver-partial versioning edge cases

* Simplify semver-partial version comparison logic

* Rewrite AI slop

* Add tests and improve semver-partial version matching

* Remove support for v-prefixed versions and bump strategy

* Refactor isLessThanRange to use parseVersion/Range

* Remove duplicate test cases in semver-partial spec

* Remove GitLab CI extract changes (split into separate PR)
2025-10-21 21:37:38 +00:00

1.0 KiB

Renovate's Partial Semantic Versioning supports partial version numbers that resolve to the latest matching full version, following Semantic Versioning 2.0 conventions.

This versioning is used by GitLab CI/CD Components to allow specifying incomplete version numbers that automatically resolve to the latest version matching that pattern. This enables you to receive updates within a specific version range without specifying the full version.

Version Resolution:

  • 1.2 → Selects the latest 1.2.* version
  • 1 → Selects the latest 1.*.* version
  • ~latest → Selects the latest released version

Example:

Given available versions: 1.0.0, 1.1.0, 1.1.1, 1.2.0, 2.0.0, 2.0.1, 2.1.0:

  • 1 resolves to 1.2.0
  • 1.1 resolves to 1.1.1
  • ~latest resolves to 2.1.0

Pre-release Handling:

Pre-release versions (e.g., 1.0.1-rc, 2.0.0-beta) are not selected by partial versions. You must specify the full version to match a pre-release.