renovate: termix customManager regex versioning (loose+extractVersion still failing) #65

Merged
admin merged 1 commits from feat/renovate-termix-regex-versioning into main 2026-06-06 10:03:56 +02:00
Owner

Third attempt at termix. v1 (packageRule with versioning override) failed because the override applied AFTER the docker-versioning pre-check rejected release-1.11.0. v2 (inline # renovate: comment) failed because kubernetes manager does not honor inline comments. v3 (customManagers regex with versioningTemplate: loose + extractVersionTemplate) failed because extractVersion is only applied to candidate versions from the datasource, NOT to currentValue — Renovate validated raw release-1.11.0 against loose semver and skipped.

This fix replaces loose + extractVersion with regex versioning in the customManager template. regex versioning parses the prefixed tag directly (no extraction step), so the currentValue pre-check accepts release-1.11.0. github-releases returns the upstream release-X.Y.Z tag_names which the same regex parses. The new tag written back to the manifest is the same release-X.Y.Z form — valid at ghcr.io/lukegus/termix.

🤖 Generated with Claude Code

Third attempt at termix. v1 (packageRule with versioning override) failed because the override applied AFTER the docker-versioning pre-check rejected `release-1.11.0`. v2 (inline `# renovate:` comment) failed because kubernetes manager does not honor inline comments. v3 (customManagers regex with `versioningTemplate: loose` + `extractVersionTemplate`) failed because `extractVersion` is only applied to candidate versions from the datasource, NOT to currentValue — Renovate validated raw `release-1.11.0` against loose semver and skipped. This fix replaces `loose + extractVersion` with **regex versioning** in the customManager template. regex versioning parses the prefixed tag directly (no extraction step), so the currentValue pre-check accepts `release-1.11.0`. github-releases returns the upstream `release-X.Y.Z` tag_names which the same regex parses. The new tag written back to the manifest is the same `release-X.Y.Z` form — valid at `ghcr.io/lukegus/termix`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
admin added 1 commit 2026-06-06 10:03:54 +02:00
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>
admin merged commit 04081723e7 into main 2026-06-06 10:03:56 +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#65