Skip to content

[ci] Catch up stale default image tags to 4.51.0-20261010 - #3275

Merged
VietND96 merged 2 commits into
trunkfrom
fix/stale-chart-image-tags
Oct 19, 2026
Merged

VietND96 merged 2 commits into
trunkfrom
fix/stale-chart-image-tags

Conversation

@VietND96

Copy link
Copy Markdown
Member

Summary

Fixes #3274.

Since the 4.49.0 release, update_tag_in_docs_and_files.sh's whole-tree sed has matched nothing in 51 files (charts/selenium-grid/values.yaml, the docker-compose-*.yml files, the kubernetes/*.yaml manifests, docs/docker-hub/*.md, README.md, NodeDocker/config.toml, NodeKubernetes/config.toml, ...):

  • The old sort-based LATEST_TAG resolution (git tag --sort=-version:refname) picked 4.48.0-20261010 (lexically highest) instead of the real previous tag 4.48.0-20260905, so the release's sed "s/${LATEST_TAG}/${NEXT_TAG}/g" found no match and these files were never rewritten for the 4.49.0 release.
  • [ci] Fix LATEST_TAG sort picking a stale tag and skipping the chart bump #3254 fixed the resolution method going forward (switched to ancestry-based git describe --tags --abbrev=0, per the comment now in deploy.yml), but it only manually caught up Chart.yaml/CONFIGURATION.md, not these 51 files.
  • Every release since then searches for the immediately-preceding tag, which is never what's actually still embedded in these files (frozen several releases back), so they can't self-heal without a one-time manual catch-up - exactly the trap this repo's own CLAUDE.md documents: "anything version-shaped that is not the exact previous tag is invisible to it and will go stale silently."

Confirmed on trunk before this fix: charts/selenium-grid/values.yaml's imageTag/nodesImageTag/videoImageTag were still 4.48.0-20260905/ffmpeg-8.1-20260905 while Chart.yaml's appVersion was already 4.51.0-20261010 - so a default chart install runs Grid 4.48.0 images under chart 0.62.0, as the issue describes.

What this does

Ran ./update_tag_in_docs_and_files.sh 4.48.0-20260905 4.51.0-20261010 locally (the real previous tag, not what resolution would currently find) and reviewed the resulting diff by hand. It touched 55 files; I reverted 4 that shouldn't be in scope:

  • .github/workflows/deploy.yml: the stale tag there appears only inside a comment narrating this exact past incident by its specific values (the comment explaining why git describe replaced the sort-based resolution). Rewriting it would corrupt the history it's documenting.
  • charts/selenium-grid/multiple-nodes-platform-version.yaml and tests/charts/ci/multiple-nodes-platform-version-values.yaml: these pin per-Chrome-version image tags (146.0-20260905, 145.0-20260905, ...), each dated independently of the Grid release cadence via the separate browser-version release process. The script's date-only sed pass matched their 20260905 by coincidence, not because they're stale in the same way as the Grid tag - a real fix for these needs its own, separate pass.
  • tests/ci/test_cleanup_pr_images.py: synthetic example tag strings in a regex-matching unit test (test_rejects_release_and_floating_tags), unrelated to live defaults.

The Makefile's own comment (an illustrative example of the exact-tag format, not a historical narration) picked up the date-only correction and is now self-consistent again, so I kept that one.

Test plan

  • Confirmed no 4.48.0-20260905 / ffmpeg-8.1-20260905 occurrences remain outside CHANGELOG.md and the 4 deliberately-excluded files.
  • Verified every restored tag is a real, currently published image: selenium/hub:4.51.0-20261010, selenium/standalone-{firefox,chrome,chromium,edge}:4.51.0-20261010, selenium/video:ffmpeg-8.1-20261010 all return 200 from the Docker Hub API, and the GitHub release 4.51.0-20261010 linked from README.md exists.
  • Ran make lint_format_scripts (regenerates charts/selenium-grid/CONFIGURATION.md via helm-docs) - no further diff beyond the 51 files, confirming values.yaml and CONFIGURATION.md are already consistent.
  • Validated YAML parses correctly on a sample of the touched files (values.yaml, a K8s manifest, a docker-compose file).

🤖 Generated with Claude Code

Fixes #3274. Since the 4.49.0 release, update_tag_in_docs_and_files.sh's
whole-tree sed has matched nothing in these 51 files: the old
sort-based LATEST_TAG resolution picked 4.48.0-20261010 (lexically
highest) instead of the real previous tag 4.48.0-20260905, so the sed
found no match and these files were never rewritten. #3254 fixed the
resolution (switched to ancestry-based `git describe`), but every
release since then searches for the immediately-preceding tag, which
is never what's actually still embedded several releases back - so it
can't self-heal without a one-time manual catch-up.

Ran update_tag_in_docs_and_files.sh 4.48.0-20260905 4.51.0-20261010
locally and reviewed the diff by hand. Reverted four files it touched
that shouldn't be in scope:
- .github/workflows/deploy.yml: the stale tag appears only inside a
  comment narrating this exact past incident by its specific values;
  rewriting it would corrupt the history it's documenting.
- charts/selenium-grid/multiple-nodes-platform-version.yaml and
  tests/charts/ci/multiple-nodes-platform-version-values.yaml: these
  pin per-Chrome-version image tags (146.0, 145.0, ...), each dated
  independently of the Grid release cadence. The date-only sed pass
  matched their "20260905" by coincidence, not because they're stale
  in the same way - a real fix for these needs its own pass.
- tests/ci/test_cleanup_pr_images.py: synthetic example tags in a
  regex-matching unit test, unrelated to live defaults.

Verified the restored tags are real published images (Docker Hub and
the GitHub release) before committing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@qodo-code-review

Copy link
Copy Markdown
Contributor

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

VietND96 added a commit that referenced this pull request Oct 19, 2026
…3276)

#3274 happened because this script's whole-tree sed only matches when
LATEST_TAG is the exact string still embedded in the files; once a
wrong LATEST_TAG - or anything else - makes it miss, every later
release looks for a tag that's never actually there and the chart's
default image tags drift forever with no signal anything is wrong.

Two changes:

- After the rewrite, assert charts/selenium-grid/values.yaml's
  imageTag and nodesImageTag actually equal NEXT_TAG, and exit 1 with
  a clear message if not. Verified this both fixes the real catch-up
  (exit 0, matching #3275) and catches the exact wrong-LATEST_TAG
  scenario that caused #3274 (exit 1, correct error) when run against
  a container with real GNU find/sed, matching what CI runs.

- Exclude three files from the tag/date sed passes that a real
  end-to-end run showed getting corrupted instead of fixed:
  multiple-nodes-platform-version.yaml and its test copy pin
  per-Chrome-version tags dated independently of the Grid release, and
  their date collides with the Grid release's date often enough that
  the bare-date pass was rewriting dates that were never actually
  built for those browser versions. deploy.yml's only tag-shaped
  strings are inside one comment narrating this exact past incident by
  its specific values - every later release's LATEST_TAG eventually
  matches one of those literals, silently turning the incident report
  into a false account of itself.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
helm-chart-release.yml only triggers on changes to
charts/selenium-grid/Chart.yaml, so the values.yaml fix in this PR
would never actually get published as a chart release on its own.
Patch bump: existing defaults corrected, no new features, no
appVersion change (Grid version is unaffected).

Also fix .github/ISSUE_TEMPLATE/bug_report.yml's version placeholder,
corrupted by a different sed bug: update_tag_in_docs_and_files.sh's
chart-version-bump step uses the chart version as an unescaped sed
pattern, so "0.60.0" (dots as regex wildcards) matched a 6-digit
substring inside "20260905" and replaced it with "0.61.0", producing
"20.61.05". Root-caused; the regex-escaping fix for the script itself
is in #3276.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@VietND96
VietND96 merged commit 34244fd into trunk Oct 19, 2026
35 of 36 checks passed
@VietND96
VietND96 deleted the fix/stale-chart-image-tags branch October 19, 2026 12:54
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.

[🐛 Bug]: Chart values.yaml image tags stuck at 4.48.0-20260905 since 0.60.0 - chart upgrades no longer bring new images

1 participant