Skip to content

fix(ansible): refresh stale dagger defaults and let renovate manage them - #128

Merged
patrick-hermann-sva merged 2 commits into
mainfrom
fix/dagger-version-pins
Jul 29, 2026
Merged

fix(ansible): refresh stale dagger defaults and let renovate manage them#128
patrick-hermann-sva merged 2 commits into
mainfrom
fix/dagger-version-pins

Conversation

@patrick-hermann-sva

Copy link
Copy Markdown
Contributor

Addresses finding #8 of stuttgart-things/ansible#1043.

A stale default that nobody was watching

call-release-artifact.yaml declared:

dagger-module-version:
  default: v0.2.1        # upstream: v0.121.0  (~119 releases behind)
dagger-version:
  default: "0.18.10"     # upstream: v0.21.7   (also missing the v prefix)

This is the same trap templates#121 fixed in call-ansible-collection.yaml, where the default had sat at v0.13.0.

Harmless today only because every caller passes explicit values. Called without them, this workflow silently runs a module predating both the monotonic version scheme and the tag-naming fix — so it would publish a release tagged with a filename and a version that can run backwards. Exactly the two bugs findings #1 and #3 were about.

Why a Renovate manager, not just new values

These pins live in six places across two repos:

repo file
ansible Taskfile.yaml
ansible pr-collection-build.yaml
ansible main-collection-build.yaml
ansible dispatch-collection-build.yml
templates call-ansible-collection.yaml
templates call-release-artifact.yaml

They were aligned by hand three separate times this week. Fixing the values without automating them just resets the clock.

The existing custom managers key on _version: and Version: — neither matches dagger-module-version: or DAGGER_ANSIBLE_MODULE_VERSION:. And one of the six is a workflow_call input default, where the key and the value are three lines apart, so it needs a multi-line match.

Verification

Ran Renovate's own regex extractor over the real files in both repos — 11 of 11 pins found, including the two stale ones:

[ansible]   Taskfile.yaml                    stuttgart-things/dagger  v0.121.0
[ansible]   pr-collection-build.yaml         stuttgart-things/dagger  v0.121.0
                                             dagger/dagger            v0.21.7
[ansible]   main-collection-build.yaml       stuttgart-things/dagger  v0.121.0
                                             dagger/dagger            v0.21.7
[ansible]   dispatch-collection-build.yml    stuttgart-things/dagger  v0.121.0
                                             dagger/dagger            v0.21.7
[templates] call-ansible-collection.yaml     stuttgart-things/dagger  v0.121.0
                                             dagger/dagger            v0.21.7
[templates] call-release-artifact.yaml       stuttgart-things/dagger  v0.2.1     <- stale
                                             dagger/dagger            0.18.10    <- stale

renovate-config-validator passes; check-jsonschema passes on the workflow.

The companion PR adds the same managers to the ansible repo.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FDecVMyhtUtixsLmT4oLwY

call-release-artifact.yaml declared dagger-module-version: v0.2.1 and
dagger-version: "0.18.10". Upstream is v0.121.0 and v0.21.7, so the module
default sat about 119 releases behind - the same trap #121 fixed in
call-ansible-collection.yaml, where it had sat at v0.13.0.

Harmless only because every caller passes explicit values. Called without them,
this workflow silently runs a module predating the monotonic version scheme and
the tag-naming fix, so it would publish a release tagged with a filename and a
version that can run backwards.

Both pins are hand-maintained in six places across two repos and were aligned
by hand three times this week, so add custom managers rather than fix the
values and wait for the next drift. The existing managers key on _version: and
Version:, neither of which matches these, and one of the six is a workflow_call
input default where the key and the value are three lines apart.

Verified with renovate's own extractor over the real files: 11 of 11 pins
found across both repos, including the two stale ones here.

Refs stuttgart-things/ansible#1043 (finding #8)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FDecVMyhtUtixsLmT4oLwY
@patrick-hermann-sva
patrick-hermann-sva merged commit e868d3f into main Jul 29, 2026
2 checks passed
@patrick-hermann-sva
patrick-hermann-sva deleted the fix/dagger-version-pins branch July 29, 2026 13:17
patrick-hermann-sva added a commit that referenced this pull request Jul 29, 2026
…#129)

The pin still referenced 1814f1e, which predates #127 and #128. Left alone the
release path would keep calling the old workflow, so the corrected attestation
verify command would never reach the release notes.


Claude-Session: https://claude.ai/code/session_01FDecVMyhtUtixsLmT4oLwY

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
patrick-hermann-sva added a commit to stuttgart-things/ansible that referenced this pull request Jul 29, 2026
* fix(renovate): manage the dagger module and cli pins

The dagger module version is hardcoded in six places across two repos and was
aligned by hand three times this week. Every copy currently reads v0.121.0,
which is correct, but nothing watches them so they drift by default - the same
shape as finding #5, which turned out to be five stale pins out of seventeen.

One copy had already drifted: call-release-artifact.yaml in
github-workflow-templates defaulted to v0.2.1, roughly 119 releases behind.
Fixed there in stuttgart-things/github-workflow-templates#128.

The existing custom managers key on _version: and Version:, so neither matches
dagger-module-version: or the uppercase DAGGER_ANSIBLE_MODULE_VERSION:. One of
the six is a workflow_call input default where the key and value sit three
lines apart, so that form needs a multi-line match.

Verified with renovate's own extractor over the real files: 7 of 7 dagger pins
in this repo, 11 of 11 across both, and the role-pin manager from #1055 still
returns its 7 for baseos with no interference.

Refs #1043 (finding #8)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FDecVMyhtUtixsLmT4oLwY

* fix(ci): bump the reusable workflow pin to pick up the release fixes

The three callers pinned 627fa26, which predates github-workflow-templates
#127, #128 and #129. Without this the release path keeps invoking the old
workflow and consumers keep getting release notes whose attestation verify
command fails.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FDecVMyhtUtixsLmT4oLwY

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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