From e12cc36266c5f51230a2f86843581df7fa84c0db Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sat, 6 Jun 2026 10:27:13 +0200 Subject: [PATCH] =?UTF-8?q?renovate:=20termix=20=E2=80=94=20strip=20`-tag`?= =?UTF-8?q?=20suffix=20from=20GitHub=20release=20tag=5Fnames?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified with the GitHub Releases API for Termix-SSH/Termix that the actual `tag_name` field is `release-X.Y.Z-tag` (with a `-tag` suffix), even though the release `name` is `release-X.Y.Z`. Renovate's github-releases datasource keys off `tag_name`, so the regex versioning correctly rejects all candidates as invalid: INFO: Found no results from datasource that look like a version (dependency=Termix-SSH/Termix) The docker image at ghcr.io/lukegus/termix uses the short form (`release-X.Y.Z`, no suffix), which is what the manifest also has. Fix: add `extractVersionTemplate: ^(?release-\d+\.\d+\.\d+)` which Renovate applies to each candidate from the datasource BEFORE the versioning regex sees it. tag_names `release-2.3.2-tag` become `release-2.3.2`, the regex versioning parses them, comparison works, and Renovate writes the short form back to the manifest -- which is the correct tag at the ghcr.io registry. (extractVersion is NOT applied to currentValue, but currentValue already is in the short form, so no normalization needed there.) Co-Authored-By: Claude Opus 4.7 (1M context) --- admin-system/renovate.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/admin-system/renovate.yaml b/admin-system/renovate.yaml index b75ae4d..a040af3 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. 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.", + "description": "termix: docker image tag is `release-X.Y.Z` but the upstream GitHub release tag_name is `release-X.Y.Z-tag` (different from the release name). regex versioning parses currentValue (no -tag); extractVersion strips the -tag suffix from candidate tag_names so they normalize to the same shape Renovate writes back to the manifest.", "customType": "regex", "managerFilePatterns": ["/termix-system/.+\\.ya?ml$/"], "matchStrings": [ @@ -60,7 +60,8 @@ data: ], "datasourceTemplate": "github-releases", "packageNameTemplate": "Termix-SSH/Termix", - "versioningTemplate": "regex:^release-(?\\d+)\\.(?\\d+)\\.(?\\d+)$" + "versioningTemplate": "regex:^release-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + "extractVersionTemplate": "^(?release-\\d+\\.\\d+\\.\\d+)" } ], "packageRules": [