Skip to content

feat(codenames): NGI codename release schedule#36

Draft
JarbasAl wants to merge 1 commit into
devfrom
feat/codename-releases
Draft

feat(codenames): NGI codename release schedule#36
JarbasAl wants to merge 1 commit into
devfrom
feat/codename-releases

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

Summary

  • Adds an opt-in codename system to publish-stable.yml for named stable release cycles (e.g. OVOS 1.3.0 "Achernar").
  • Ships a 25-name IAU star-name registry (codenames/CODENAMES) and pointer (codenames/CURRENT = Achernar).
  • Introduces scripts/resolve_codename.py — zero-dependency stdlib-only resolver and advance logic.
  • Adds propose-codename.yml (manual dispatch, dry-run default) to safely advance the pointer and open a draft PR.
  • Documents the scheme, opt-in mechanics, and roadmap mapping in docs/codename-releases.md.
  • 20 unit tests + live registry sanity checks; all 280 tests pass.

Behaviour

Opt-in per repo — existing callers are completely unaffected (codename defaults to false):

uses: OpenVoiceOS/gh-automations/.github/workflows/publish-stable.yml@dev
with:
  codename: true   # new opt-in flag; default false
  publish_release: true

When codename: true:

  • GitHub release is named OVOS <version> "<Codename>".
  • Release notes gain a ## <Codename> release header.
  • Matrix message includes the codename (if notify_matrix: true).
  • codename is exposed as a workflow output for downstream jobs.

How to test

Resolution script dry-run

$ python scripts/resolve_codename.py --codenames-dir codenames
Achernar

$ # Advance in a temp copy:
$ cp -r codenames /tmp/cn && python scripts/resolve_codename.py --codenames-dir /tmp/cn --advance
Advanced codename: Achernar -> Betelgeuse
new_codename=Betelgeuse

Unit tests

pytest test/test_codenames.py test/test_workflow_inputs.py -v
280 passed in 6.76s

actionlint

actionlint is not installed on this machine. Both new/modified workflows are confirmed valid YAML (PyYAML parses them cleanly in test_workflow_inputs.py).

Blog draft

OVOS releases now carry codenames. Stable milestones of the OVOS core stack can opt into named release cycles — starting with Achernar, covering the ovos-bus-client 2.x namespace-migration wave. Codenames are alphabetical IAU star names: single-word, globally pronounceable, culturally neutral. Any repo opts in by adding codename: true to its publish-stable.yml call.

Human decisions needed

  1. Theme confirmation — IAU star names are proposed (Achernar, Betelgeuse, Canopus, …). Any alternative theme requires only replacing codenames/CODENAMES and resetting codenames/CURRENT.
  2. Cycle 1 scope — which repos/packages carry the Achernar codename? (Suggested: ovos-core-centric stack during V2 bus-client migration.)
  3. actionlint CI — not available locally; the existing CI run on this PR will validate workflow YAML.

🤖 Generated with Claude Code

- codenames/CODENAMES: ordered IAU star-name registry (A→Z, 25 names)
- codenames/CURRENT: pointer to active cycle (Achernar)
- scripts/resolve_codename.py: zero-dep resolver + advance logic
- .github/workflows/publish-stable.yml: opt-in `codename: true` input;
  resolves active name and embeds it in GitHub release title/notes/Matrix
- .github/workflows/propose-codename.yml: manual-dispatch workflow to
  advance the pointer and open a draft PR (dry_run: true default)
- docs/codename-releases.md: scheme, opt-in mechanics, roadmap mapping
- test/test_codenames.py: 20 unit tests + live registry sanity checks
- test/test_workflow_inputs.py: add propose-codename.yml to NON_REUSABLE set

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f7b3f1a8-2989-4570-b6ca-7f69b558c300

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/codename-releases

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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