Repository navigation
feat(ci): a changed chart must carry a new version - #462
Merged
Merged
Conversation
publish-charts.yml never pushes a version that is already in the registry, so a chart change merged without a new Chart.yaml version is never published, and nothing says so. CI · Lint now holds every PR that touches charts/ to two rules, against its merge base: - A chart whose packaged files changed carries a new, higher version. "Packaged" follows the chart's .helmignore, the way helm package does, so tests/ and values-*.yaml overlays need no bump. README.md and docs/ need none either: nothing an install reads, they ship with the next version. - A chart that packs a file:// subchart whose version moved carries a new version too. kates-platform vendors its five subcharts as they are on disk; without a bump, the published umbrella would keep the old ones. (The kafka-common consumers pin it exactly, so the first rule already covers them.) A new chart needs no bump. Replayed over main's 44 chart commits since 2026-09-15, the gate flags four real misses (#456, #368, #157, #149: template and values changes without a bump) and 31 commits that moved a subchart without bumping kates-platform. From now on a release pin PR bumps kates-platform as well. scripts/chart_bumps.py has unit tests (scripts/test_chart_bumps.py), which the job runs first. `make check` runs the gate too.
This was referenced Oct 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The chart publisher in #461 never pushes a version that is already in the registry, so a chart's published digest never changes. The cost is that a chart change merged without a new
Chart.yamlversion is never published, and nothing says so. This is PR B of the chart publishing plan.Replayed over main's 44 chart-touching commits since 2026-09-15, the gate would have caught:
kates-platform. These include every release pin PR, chore(release): prepare v1.29.2 #459 among them. The umbrella vendors its subcharts as they are on disk, so each published umbrella would have kept the old ones.What changes
scripts/chart_bumps.pychecks every PR against its merge base:.helmignore, usinghelm package's rules. Sotests/and thevalues-*.yamloverlays need no bump.file://subchart whose version moved carries a new version too.kates-platform.A new chart needs no bump.
Deliberate choice: docs need no bump.
README.mdanddocs/are packaged, but nothing an install reads, so they ship with the chart's next version. Without this exemption, three README-only commits in the replay would have needed a bump. Easy to reverse if you'd rather hold docs to the same rule.Where it runs
Chart versionsjob in CI · Lint, on PRs that touchcharts/. It runs the unit tests first. It is onGate · Lint, and skipped on pushes to main.make checkruns the gate too.What this means for releases: a release pin PR now bumps
kates-platformalong with the other pinned charts. The gate fails until it does.Tests
python3 -m unittest discover -s scripts -p 'test_chart_bumps.py': 16 tests. They cover helmignore matching (anchored, any-depth and directory rules,*not crossing/, negation refused) and version order. They also run both rules against a throwaway git repository with a chart and an umbrella.katesbumped alone: fails, namingkates-platform.actionlint1.7.12,yamllint,scripts/check-versions.sh --workflows,make check-help.Independent of #461; either can merge first.