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

22 lines
1.0 KiB
Markdown

Renovate's Partial Semantic Versioning supports partial version numbers that resolve to the latest matching full version, following [Semantic Versioning 2.0](https://semver.org) conventions.
This versioning is used by [GitLab CI/CD Components](https://docs.gitlab.com/ci/components/#partial-semantic-versions) 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.