GitHub Actions' versioning somewhat mirrors the SemVer-style versioning,
but doesn't quite.
This is in the case that it's common to use (mutable) tags like `v7` or
`v4.2`, as well as full SemVer style` `v1.2.3` and `v1.3.4-rc2`, doesn't
quite match it.
In addition, with GitHub's recent move to introduce Immutable Tags,
these require new releases to be a full SemVer `major.minor.patch` tag.
However, we don't currently have a way to take users from `@v7` to
`@v8.1.1`, in the case they're using Immutable Tags.
Given this isn't currently straightforward with any of our existing
SemVer-y versioning modules like `semver-coerced` or `semver-partial`,
we should instead introduce a specific Versioning module.
This mostly covers the functionality that `semver-partial` has, but
needs to take advantage of the `allVersions` parameter to find the
"shortest" possible tag for a given resolved Semantic Version.
This was previously attempted in previous changes, but reverted in
db64cc6de0 due to additional complexity.
We won't turn it on by default right now, but as a future change.
Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
* feat(versioning): add elm versioning support
* fix(versioning/elm): remove unnecessary defensive check in nextMajor
* fix(versioning/elm): use named capture groups in range regex
* fix(versioning/elm): use semver gte instead of gt || eq
* Update lib/modules/versioning/elm/index.ts
---------
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
* 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)
* feat: add versioning for Hermit package manager
* Update lib/modules/versioning/hermit/index.ts
Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
* Update lib/modules/versioning/hermit/index.ts
Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
* Update index.ts index.spec.ts and readme.md according to PR comments
* fix: fix versioning test double negation and _parseVersion function which is just for testing
* fix: simplify hermit versioning implementation as suggested
* fix: use _compare to simplify versioning implementation
* fix: reword version in hermit versioning and make _isChannel & _getChannel static
* fix: remove duplicated title in test and make _config readonly
Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* refactor(tools/distro-info): for later use in ubuntu and debian versioning
cr changes
* feat(versioning/debian): Debian codenames support
restore extracted code
* feat(versioning/debian): Debian codenames support
package.json, dropped the generate: prefix.
unit test mod as per CR
* feat(versioning/debian): Debian codenames support
now using the generic ver api interface
* feat(versioning/debian): Debian codenames support
revert exporting docker versioning
* feat(versioning/debian): Debian codenames support
switched to luxon for time handle
test fixes
dropped ts-ignore comments
* feat(versioning/debian): Debian codenames support
extract changes in distro.ts
* feat(versioning/debian): Debian codenames support
post merge changes
* feat(versioning/debian): Debian codenames support
cr changes
* feat(versioning/debian): Debian codenames support
- added support for pin range strategy
* feat(versioning/debian): Debian codenames support
- typos & metadata fixes
* feat(versioning/debian): Debian codenames support
- added isReleased to distro.ts
* feat(versioning/debian): Debian codenames support
- moved all time/date handling into distro.ts
- date freeze for ubuntu/debian/distro unit tests
* refactor(versioning/distro): Move date handling into distro.ts
- revert refactor #15272
* feat(versioning/debian): Debian codenames support
- merge distro refactor
* feat(versioning/debian): Debian codenames support
- extract private properties
* feat(versioning/debian): Debian codenames support
- cr changes
* feat(versioning/debian): Debian codenames support
- cr changes
* feat(versioning/debian): Debian codenames support
- cr changes
Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Moves datasource, manager, platform and versioning code from lib/ into new lib/modules/
BREAKING CHANGE: External tools must update paths to datasource, manager, platform and versioning