renovate: termix customManager — use regex versioning instead of loose+extractVersion

Third attempt. Debug run confirmed `loose` + `extractVersion` STILL produces:

  DEBUG: Dependency Termix-SSH/Termix has unsupported/unversioned value
         release-1.11.0 (versioning=loose)
  DEBUG: Skipping Termix-SSH/Termix because no currentDigest or pinDigests

`extractVersion` is only applied to CANDIDATE versions (from the datasource),
not to currentValue. Renovate's pre-validation runs the raw `release-1.11.0`
through `loose`, which can't parse it (the `release-` prefix breaks semver
detection), so Renovate falls back to digest-only and gives up.

`regex` versioning is the only mode that parses the prefixed value directly
(no extractVersion needed) — Renovate's regex.matches() accepts `release-1.11.0`
because the rule's pattern captures the whole tag. github-releases datasource
returns the upstream `release-X.Y.Z` tag_names which the same regex parses.
No conversion needed; the new tag written back to the manifest is the same
`release-X.Y.Z` form, valid in the ghcr.io/lukegus/termix registry.

Removes extractVersionTemplate (no longer needed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 10:03:54 +02:00
parent c5bbe3d17f
commit a47111cce1
+2 -3
View File
@@ -52,7 +52,7 @@ data:
}, },
"customManagers": [ "customManagers": [
{ {
"description": "termix uses a release-X.Y.Z prefixed tag that the kubernetes manager's docker-versioning pre-check rejects (so no PRs are ever created). This customManager extracts the image directly, redirects the version lookup to GitHub Releases at Termix-SSH/Termix (which exposes timestamps the 3-day stability gate needs), and uses extractVersion to strip the `release-` prefix so loose semver can parse it.", "description": "termix uses a release-X.Y.Z prefixed tag. extractVersion + loose doesn't work because Renovate validates the raw currentValue BEFORE applying extractVersion. Using regex versioning (which parses the prefixed value directly) sidesteps the pre-check. Datasource redirected to GitHub Releases at Termix-SSH/Termix so the 3-day stability gate has real timestamps to work with.",
"customType": "regex", "customType": "regex",
"managerFilePatterns": ["/termix-system/.+\\.ya?ml$/"], "managerFilePatterns": ["/termix-system/.+\\.ya?ml$/"],
"matchStrings": [ "matchStrings": [
@@ -60,8 +60,7 @@ data:
], ],
"datasourceTemplate": "github-releases", "datasourceTemplate": "github-releases",
"packageNameTemplate": "Termix-SSH/Termix", "packageNameTemplate": "Termix-SSH/Termix",
"versioningTemplate": "loose", "versioningTemplate": "regex:^release-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$"
"extractVersionTemplate": "^release-(?<version>.+)$"
} }
], ],
"packageRules": [ "packageRules": [