Skip to content

check-versions: require the release tag on all - #2891

Merged
berendt merged 1 commit into
mainfrom
check-release-tag
Nov 12, 2026
Merged

berendt merged 1 commit into
mainfrom
check-release-tag

Conversation

@ideaship

Copy link
Copy Markdown
Contributor

Every component of a release is to carry the tag of the release round, also when nothing changed since its previous tag, so that all components of a release are tagged alike. The untagged-changes check in check-versions.sh cannot enforce that: it only reports components with shipped changes. For OSISM 11.0.3, ansible-playbooks-manager stayed at v0.20260721.0 because its only commits since then touched CI and CHANGELOG.md, and the release had to be regenerated once it was tagged.

  • check-versions.sh --release-tag v0.YYYYMMDD.N: every component that latest/base.yml pins directly (components of etc/changelog-repositories.yml) must have the release tag or a newer one as its newest tag (python-osism v0.20261111.1 counts for the round v0.20261111.0). A component without it is reported as untagged and fails the check unless allowed with --allow.
  • The images built from the release tags are skipped, as in the untagged-changes check: they are tagged after the check.
  • Components pinned in a python-osism requirements file (netbox-manager, openstack-image-manager, openstack-flavor-manager) are not required to carry the tag: tagging them without changes would force another python-osism release.
  • create-tags.sh passes the version it tags as --release-tag, so the tag run enforces the rule.
  • The README describes the option and says to tag every component before the tag run.

Checked against the state of main: with --release-tag v0.20261111.0 all 8 directly pinned components pass; with v0.20261112.0 all 8 are reported.

The matching step in the release guide:

🤖 Generated with Claude Code

Every component of a release is to carry the tag of the release round,
also when nothing changed since its previous tag, so that all
components of a release are tagged alike. The untagged-changes check
cannot enforce that: it only reports components with shipped changes.
For OSISM 11.0.3, ansible-playbooks-manager stayed at v0.20260721.0
because its only commits since then touched CI and CHANGELOG.md, and
the release had to be regenerated once it was tagged.

check-versions.sh gets a --release-tag VERSION option. With it, every
component that latest/base.yml pins directly ("components" of
etc/changelog-repositories.yml) must have the release tag or a newer
one as its newest tag, so python-osism v0.20261111.1 counts for the
round v0.20261111.0. A component without it is reported as untagged
and fails the check unless it is allowed with --allow. The images
built from the release tags are skipped like in the untagged-changes
check, since they are tagged after the check. Derived components
(pinned in a python-osism requirements file) are not required to
carry the tag: tagging them without changes would force another
python-osism release.

create-tags.sh passes the version it tags as --release-tag, so the tag
run enforces the rule. The README describes the option and says to tag
every component before the tag run.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship
ideaship marked this pull request as ready for review November 12, 2026 13:29
@ideaship ideaship self-assigned this Nov 12, 2026
@ideaship
ideaship requested a review from berendt November 12, 2026 13:29
@berendt
berendt merged commit 5543ac0 into main Nov 12, 2026
3 checks passed
@berendt
berendt deleted the check-release-tag branch November 12, 2026 13:33
@github-project-automation github-project-automation Bot moved this from New to Done in Human Board Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants