Releases without a local agent (epic)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 8/100
Research direction
This is an epic describing a two-layer release automation design: an agent-driven preparation phase and deterministic GitHub Actions workflows for the finish. Read the linked ct-agents release recipe and the sub-issues, which hold the concrete work; there is no single file or test named here to start from. Done would be the sub-issues landing, not this epic closing on its own.
Written by the indexing model from the issue text.
Description
Goal
Release a package without a local agent session. The release is started by a workflow_dispatch; an agent run in GitHub Actions does the decisions at the start; deterministic workflows do the rest. Seen on the release of CTModels v0.21.1 (control-toolbox/CTModels.jl#512), where a local agent spent most of its time waiting.
Design
Two layers, as in ct-agents/recipes/release.md:
- Preparation (phases 0 to 3), by an agent. Started by a
workflow_dispatchof a queue (kind: stable or beta). The facts (status, resolution from General, gate, open PRs) are computed byrelease.jl, not by the model. The agent does the judgment only: what is breaking, the grouping of the changelog, the proposal. The gate (REL1against the changelog) and the breakage report check its work, so a modest model is enough, and the agent does nothing after the proposal. - Finish (phases 4 to 8), without an agent. Event-driven workflows driven by
release.jl status.
The human gate. The agent posts the proposal on the tracking issue. An authorized person validates it (label or /release approve X.Y.Z). That event is the opt-in of the second layer, and it is where the authorization is checked (actor with admin or maintain, Environment with reviewers).
The agent has no power. It has neither the token of the GitHub App nor the right to merge or to register: it edits files in a worktree and writes the proposal. What it reads (PR titles, issues) may contain injected instructions. The scripts of the second layer hold the powers.
Model: Albert through OpenCode, as in ocourses/agents (reusable agent.yml, a role is a Markdown file, one global queue). The local protocol of that repository (LOCAL-QUEUE.md) stays as a fallback.
Sub-issues
See the sub-issues of this one. Order: the finish first (useful even with a local agent), then the agent base, then the release role.
- Dominant language
- Julia
- Stars
- 1
- Forks
- 0
- Avg merge
- 1h 39m
- Merged PRs (30d)
- 45
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from control-toolbox/CTActions
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
control-toolbox/CTActions#139 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
control-toolbox/CTActions#133 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
control-toolbox/CTActions#132 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 18/100
control-toolbox/CTActions#131 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 12/100
control-toolbox/CTActions#130 ·
Maintainers usually reply within 1 day
All issues in control-toolbox/CTActions
Similar issues
-
Add project: Typst_jll.jlPossibly taken @github-actions claimed this today. Openadd-project
Difficulty 1/5 Under an hour Newbie friendliness 76/100
YDX-2147483647/best-of-typst#590 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100