renovate: termix — strip -tag suffix from github-releases candidates #66

Merged
admin merged 1 commits from feat/renovate-termix-tag-suffix into main 2026-06-06 10:27:16 +02:00
Owner

4th attempt. v3 (regex versioning) made Renovate query github-releases successfully but produced Found no results from datasource that look like a version. The GitHub Releases API for Termix-SSH/Termix returns tag_name=release-X.Y.Z-tag (with a -tag suffix), while the release name and the docker image registry tags are release-X.Y.Z (no suffix). Our regex correctly rejected the -tag form, so no candidates matched.

Fix: add extractVersionTemplate: ^(?<version>release-\d+\.\d+\.\d+) which Renovate applies to each candidate from the datasource. tag_names release-2.3.2-tag become release-2.3.2, regex versioning parses them, and the short form is what Renovate writes back to the manifest (matches the ghcr.io tag).

🤖 Generated with Claude Code

4th attempt. v3 (regex versioning) made Renovate query github-releases successfully but produced `Found no results from datasource that look like a version`. The GitHub Releases API for `Termix-SSH/Termix` returns `tag_name=release-X.Y.Z-tag` (with a `-tag` suffix), while the release `name` and the docker image registry tags are `release-X.Y.Z` (no suffix). Our regex correctly rejected the `-tag` form, so no candidates matched. Fix: add `extractVersionTemplate: ^(?<version>release-\d+\.\d+\.\d+)` which Renovate applies to each candidate from the datasource. tag_names `release-2.3.2-tag` become `release-2.3.2`, regex versioning parses them, and the short form is what Renovate writes back to the manifest (matches the ghcr.io tag). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
admin added 1 commit 2026-06-06 10:27:14 +02:00
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: ^(?<version>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) <noreply@anthropic.com>
admin merged commit 3bfd8afb43 into main 2026-06-06 10:27:16 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/homelab-manifests#66