Skip to content

ci: release workflows and ct-conventions v0.7.0 (model for the packages) - #623

Merged
ocots merged 3 commits into
mainfrom
chore/release-callers
Oct 19, 2026
Merged

ocots merged 3 commits into
mainfrom
chore/release-callers

Conversation

@ocots

@ocots ocots commented Oct 19, 2026

Copy link
Copy Markdown
Member

The model of the release setup for the packages, after control-toolbox/CTActions#104, #105 (merged) and #107, and the recipe control-toolbox/ct-agents#11 (merged) and #13.

  • AGENTS.md: ct-conventions pinned at v0.7.0, REL in the index of the rule files, the one merge exception (a release PR in autonomous mode, with release.jl merge only), and a Recurring tasks section pointing to the release recipe.
  • ReleaseGate.yml (new): the gate of a release PR, REL1–REL7, on every PR; a PR that does not change the version passes at once. It also checks REL6 on every PR (the registration bot mentioned in no PR text nor commit message).
  • ReleaseTag.yml (new): on push to main touching Project.toml, tags the merge commit of a release PR, creates its GitHub release and runs the documentation on the tag; GITHUB_TOKEN only.
  • Breakage.yml: now calls breakage-suite.yml (one report and one comment per run, instead of one comment rewrite per cell; the REL1 check of a release PR against the run on the base), and also runs on push to main and by hand, which gives the next release PR its baseline. Same six packages, same label.
  • Documentation.yml: accepts workflow_dispatch (used by ReleaseTag.yml on a new tag, which triggers no push event).
  • CHANGELOG.md: two lines under [Unreleased].

No source change. No repository setting needed: the merge of a release PR is checked by release.jl ready from what actually ran, not by required checks.

Checks: the gate run locally on this branch → "not a release"; actionlint on the four workflows touched → clean, except a pre-existing finding on the tag filter of Documentation.yml ('v[0-9]+\.[0-9]+\.[0-9]+': \. is not a valid escape in GitHub's filter syntax), left as is since the docs did deploy on the tags v0.30.9–v0.30.11; markdownlint on AGENTS.md and CHANGELOG.md → 0 issues; .conventions re-cloned at v0.7.0. The label run breakage is added to run the new suite for real, its first run.

🤖 Generated with Claude Code

ocots and others added 3 commits October 19, 2026 11:48
… recipe

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uite, docs dispatchable

ReleaseGate.yml and ReleaseTag.yml call CTActions' release-gate.yml and
release-tag.yml. Breakage.yml calls breakage-suite.yml (one report, the
REL1 check of a release PR) and also runs on push to main and by hand: the
baseline of the next release PR. Documentation.yml accepts
workflow_dispatch, which ReleaseTag uses on a new tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ocots ocots added the run breakage Trigger the Breakage workflow on this PR label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Breakage — packages

Tested commit: e0424fe1714199d0d6f81abdc01033adbb5f630a. Each package is tested at its default branch (Latest) and its newest tag (Stable).

Package Check Latest Stable
CTDirect test ✅ main, compat v0.30.11 ✅ v1.1.8-beta, compat v0.30.11
CTFlows test ✅ main, compat v0.30.11 ✅ v0.18.1, compat v0.30.11
CTModels test ✅ main, compat v0.30.11 ✅ v0.19.8, compat v0.30.11
CTParser test ❌ main, compat v0.28.9-beta ❌ v0.9.5-beta, compat v0.30.11
CTSolvers test ✅ main, compat v0.30.11 ✅ v0.6.1, compat v0.30.11
OptimalControl test ❌ main, compat v0.30.11 ❌ v2.2.1-beta, compat v0.30.11

@ocots
ocots merged commit 6f3f878 into main Oct 19, 2026
21 checks passed
@ocots
ocots deleted the chore/release-callers branch October 19, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run breakage Trigger the Breakage workflow on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant