Skip to content

fix(renovate): group the toolbelt module with its Dockerfile ARG pin - #127

Merged
cplieger merged 1 commit into
mainfrom
fix/group-toolbelt-pins
Aug 3, 2026
Merged

fix(renovate): group the toolbelt module with its Dockerfile ARG pin#127
cplieger merged 1 commit into
mainfrom
fix/group-toolbelt-pins

Conversation

@cplieger

@cplieger cplieger commented Aug 3, 2026

Copy link
Copy Markdown
Owner

The toolbelt consumers pin github.com/cplieger/toolbelt/v2 twice on purpose:

  • go.mod requires the runtime engine that re-verifies required-tools.txt before every catalog swap.
  • ARG TOOLBELT_TOOLCATALOG_VERSION selects the build-time toolcatalog verify binary.

web-terminal-kiro's builder asserts the two are equal (toolbelt-pin-gate), so a half-bump does not drift silently — it fail-closes ci / docker, ci / docker-arm64, and the Trivy image scan until the second pin catches up.

Those two pins reach Renovate through different managers: gomod (swept into the Go dependencies group branch) and the generic Dockerfile-ARG custom.regex manager (its own per-dep branch). Nothing grouped them, so the v2.4.2 release produced half-PRs that could not be green and complete on their own:

This adds a toolbelt group keyed on matchDepNames, the same cross-manager coupling model the kiro-cli and golang toolchain groups already use, and for the same reason: a pin pair that a build gate compares must never be splittable into two branches.

Notes on the shape:

  • Placed after the gomod Go dependencies rule so its groupName wins the rule merge for toolbelt deps.
  • separateMajorMinor left at the default — both pins are the same dep at the same version, so they always carry the same update type, and a toolbelt major stays behind the manual major gate.
  • The /** entry keeps the group intact across a future Go semantic-import major (toolbelt/v3).

Validation: renovate-config-validator exits 0, and a minimatch check confirms the patterns match toolbelt, toolbelt/v2, and toolbelt/v3 without over-matching toolbelt-extra or any other cplieger/* module.

The toolbelt consumers pin github.com/cplieger/toolbelt/v2 twice: go.mod for
the runtime engine, and ARG TOOLBELT_TOOLCATALOG_VERSION for the build-time
toolcatalog verifier. web-terminal-kiro's builder asserts the two are equal,
so a half-bump fail-closes every image build.

The pins reached Renovate through different managers (gomod vs the generic
Dockerfile-ARG custom.regex), so one release produced two half-PRs: vibekit
#827 (ARG only) plus #828 (go.mod only), and web-terminal-kiro#666 (go.mod
only) red on the pin gate. Group them by depName the same way the kiro-cli
and golang-toolchain pin pairs already are.
@cplieger
cplieger merged commit cf8fa26 into main Aug 3, 2026
12 checks passed
@cplieger
cplieger deleted the fix/group-toolbelt-pins branch August 3, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant