Skip to content

developer guide: link the release steps in osism/release - #1102

Merged
berendt merged 5 commits into
mainfrom
docs/release-component-builds
Oct 9, 2026
Merged

berendt merged 5 commits into
mainfrom
docs/release-component-builds

Conversation

@ideaship

@ideaship ideaship commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Updates the release checklist in the developer guide. The osism/release README owns the procedure inside that repository; the developer guide links to its sections and states only when to continue, so the two documents do not have to be kept in sync step by step.

  • new step 1: build the component images, linking to the tag creation section of the README; continue once all tag builds have succeeded, the image checks of the README pass and the Renovate image PRs are merged
  • release candidate loop: if testing turns up bugs, fix them, build new images and create the next release candidate; the final release pins what the last release candidate tested
  • release notes step: links to the changelog and release notes generation sections of the README; for a major release, the new osism-N.md page with its release table is created first
  • publishing the images: the kolla release images are not copied to the public registries such as registry.osism.tech automatically, so that a wrongly built tag never reaches users; once the image checks pass, a Harbor administrator replicates the build, and the SBOM image of the build shows that it arrived under the right series
  • major release note: point latest/openstack.yml in osism/release to the new series before the images are built, since the kolla and kolla-ansible builds take their series from it

Rebased onto #1100 (seed image step, generator defaults): the seed image step is now step 6, and its cross-references are adjusted to the new numbering.

The README anchors linked here exist on main already. The README PR marks them, adds the rebuild procedure and the OpenStack series rule:

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

✅⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Max errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.03s
✅ JSON jsonlint 4 0 0 0.07s
✅ JSON prettier 4 0 0 0.27s
✅ JSON v8r 4 0 0 6.95s
✅ MARKDOWN markdownlint 171 0 0 1.99s
✅ MARKDOWN markdown-table-formatter 171 0 0 0.32s
✅ REPOSITORY betterleaks yes no no 0.52s
✅ REPOSITORY checkov yes no no 16.52s
✅ REPOSITORY git_diff yes no no 0.06s
✅ REPOSITORY secretlint yes no no 0.99s
✅ REPOSITORY trufflehog yes no no 2.94s
✅ SPELL codespell 181 0 0 0.5s
⚠️ SPELL lychee 181 1 0 44.96s
✅ YAML prettier 6 0 0 0.32s
✅ YAML v8r 6 0 0 5.86s
✅ YAML yamllint 6 0 0 0.54s

Detailed Issues

⚠️ SPELL / lychee - 1 error
📝 Summary
---------------------
🔍 Total.........1177
🔗 Unique.........887
✅ Successful....1045
⏳ Timeouts........30
🔀 Redirected.......5
👻 Excluded.......101
❓ Unknown..........0
🚫 Errors...........1
⛔ Unsupported......1

Errors in docs/appendix/security/ossa-2026-001.md
[TIMEOUT] https://bugs.launchpad.net/keystonemiddleware/+bug/2129018 (at 142:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-002.md
[TIMEOUT] https://bugs.launchpad.net/nova/+bug/2137507 (at 134:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-015.md
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2148398 (at 194:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2148477 (at 195:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2149775 (at 196:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2149789 (at 197:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2150089 (at 198:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2150379 (at 199:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-022.md
[TIMEOUT] https://bugs.launchpad.net/nova/+bug/2151252 (at 159:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-032.md
[TIMEOUT] https://bugs.launchpad.net/neutron/+bug/2152113 (at 271:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-034.md
[TIMEOUT] https://bugs.launchpad.net/designate/+bug/2142581 (at 179:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/designate/+bug/2142581 (at 254:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/designate/+bug/2160533 (at 186:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/designate/+bug/2160533 (at 253:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-037.md
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2153453 (at 179:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2153453 (at 311:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2158538 (at 183:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/keystone/+bug/2158538 (at 312:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-038.md
[TIMEOUT] https://launchpad.net/bugs/2158998 (at 124:3) | Request timed out
[TIMEOUT] https://launchpad.net/bugs/2158999 (at 125:3) | Request timed out
[TIMEOUT] https://launchpad.net/bugs/2160020 (at 127:3) | Request timed out
[TIMEOUT] https://launchpad.net/bugs/2161330 (at 126:3) | Request timed out

Errors in docs/appendix/security/ossa-2026-039.md
[TIMEOUT] https://bugs.launchpad.net/octavia/+bug/2162101 (at 245:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/octavia/+bug/2162101 (at 387:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/octavia/+bug/2162103 (at 248:5) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/octavia/+bug/2162103 (at 388:3) | Request timed out
[TIMEOUT] https://bugs.launchpad.net/octavia/+bug/2167565 (at 389:3) | Request timed out

Errors in docs/guides/deploy-guide/metalbox.md
[404] https://github.com/osism/metalbox/blob/main/zuul/vars/container-images-openstack-2024.2.yml (at 83:101) | Rejected status code: 404 Not Found

Errors in docs/guides/troubleshooting-guide/openstack.mdx
[TIMEOUT] https://bugs.launchpad.net/neutron/+bug/2111498 (at 268:13) | Request timed out

Errors in docs/release-notes/osism-7.md
[TIMEOUT] https://www.openstack.org/software/openstack-bobcat (at 978:38) | Request timed out

Errors in docs/release-notes/osism-9.md
[TIMEOUT] https://bugs.launchpad.net/kolla/+bug/2111620 (at 97:47) | Request timed out

Hint: Followed 5 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@10.1.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,JSON_JSONLINT,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_BETTERLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,SPELL_CODESPELL,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is provided by OX Security
Show us your support by starring ⭐ the repository

@ideaship
ideaship force-pushed the docs/release-component-builds branch from bf96e46 to d9304e7 Compare October 9, 2026 04:57
@ideaship ideaship self-assigned this Oct 9, 2026
Add building the component images as the first step of the release
checklist. A release candidate or release version pins component
images by the versions that create-version.py takes from the tags of
osism/release, so the images have to be built, and their builds have
to succeed, before either can be created.

The step does not repeat the procedure. It links to the section of
the osism/release README that describes it and states the condition
for continuing: all tag builds have succeeded, the image checks of the
README pass and the Renovate PRs for the new images are merged. The README owns the steps and their
order, so the two documents cannot drift apart on them.

The following steps are renumbered and the cross-reference to the
release candidate jobs step is updated.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
Describe how release candidates lead to the final release.

A release candidate pins the component images built for it, so a fix
only reaches the next release candidate through new images. The
testing step now describes that loop: fix the bug, build new images
with a new version and create the next release candidate from them,
then deploy and test it again.

The step creating the final release version now states that it must
pin the same versions as the last tested release candidate.
create-version.py copies latest/base.yml of osism/release and takes
the image versions from its newest tags, so any update merged or
image built after the last release candidate would end up untested in
the release.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
The release notes step of the release checklist now links to the two
sections of the osism/release README that describe how the release
notes come about: the per-component changelog PRs, generated and
merged in the component repositories, and the release notes
generation, which inserts the new section into
docs/release-notes/osism-<major>.md of this repository and can open
the pull request. As with the component image step, the README owns
the procedure and the developer guide links to it.

The "How we write release notes" section now says where the
per-component changelogs are generated: in the component repositories,
with a script of osism/release. It links to the changelog generation
section of the README instead of the README as a whole.

The step keeps one note of its own for major releases: the release
notes generation only adds a section to an existing page that has a
release table, so the page for a new major release is created first.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
The note on major releases names one prerequisite before the release
candidate is built: the kolla inventory check in osism/generics has to
follow the new OpenStack series. Add the second one: latest/openstack.yml
in osism/release has to point to the new series before the component
images are built.

The kolla and kolla-ansible tag builds take their OpenStack series from
latest/openstack.yml at the commit of their release tag. With the
symlink still on the previous series, the images of the release are
built for that series. The note links to the tag creation section of
the osism/release README, which describes the rule and the check that
reports a symlink that is behind.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
The tag builds push to osism.harbor.regio.digital, and the image checks
of the osism/release README run against it. Deployments, including the
testbed release candidate jobs, pull from public registries such as
registry.osism.tech. The kolla release images are not copied there
automatically, by design, so that images of a wrongly built tag do not
reach users. Nothing in the guide said so: for 11.0.0, the
kolla/release/2026.1 images passed the checks but were missing on
registry.osism.tech, and every 11.0.0 deployment failed to pull
kolla-toolbox.

Add to step 1: once the image checks pass, ask a Harbor administrator
to replicate the kolla images of the build, and check that they arrived
under the namespace of the right series before continuing. The check
uses the SBOM image of the build. It is present for the replicated
2025.1 build 0.20261001.0 and was missing for the 2026.1 build
0.20261008.0.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship
ideaship force-pushed the docs/release-component-builds branch from d9304e7 to 68bcdc1 Compare October 9, 2026 16:20
@ideaship
ideaship marked this pull request as ready for review October 9, 2026 16:21
@ideaship
ideaship requested a review from berendt October 9, 2026 16:22
@berendt
berendt merged commit 8a1bfe5 into main Oct 9, 2026
3 checks passed
@berendt
berendt deleted the docs/release-component-builds branch October 9, 2026 17:54
@github-project-automation github-project-automation Bot moved this from In review to Done in Human Board Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants