From a47111cce11631b9823a6c5b0baeccb7bfe03492 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sat, 6 Jun 2026 10:03:54 +0200 Subject: [PATCH] =?UTF-8?q?renovate:=20termix=20customManager=20=E2=80=94?= =?UTF-8?q?=20use=20regex=20versioning=20instead=20of=20loose+extractVersi?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- admin-system/renovate.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/admin-system/renovate.yaml b/admin-system/renovate.yaml index 2a4f1ae..ba126f3 100644 --- a/admin-system/renovate.yaml +++ b/admin-system/renovate.yaml @@ -52,7 +52,7 @@ data: }, "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", "managerFilePatterns": ["/termix-system/.+\\.ya?ml$/"], "matchStrings": [ @@ -60,8 +60,7 @@ data: ], "datasourceTemplate": "github-releases", "packageNameTemplate": "Termix-SSH/Termix", - "versioningTemplate": "loose", - "extractVersionTemplate": "^release-(?.+)$" + "versioningTemplate": "regex:^release-(?\\d+)\\.(?\\d+)\\.(?\\d+)$" } ], "packageRules": [