Role release-preparer: phases 0 to 3 of a release by an agent

Open
#131 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
18/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, julia
Domain
ci-cd, devops

Research direction

Start from release.jl and add a facts subcommand that prints the phase 0 inputs (status, main and baseline breakage, open PRs, tags, changelog since the reference, REL7, REL4), then test it. The role file roles/release-preparer.md in ct-agents and recipes/release.md are the other places the design touches, and the work depends on the agent base and CTActions#128. Done means the facts subcommand is tested and the role file encodes the recipe's stop conditions, which needs maintainer design input first.

Written by the indexing model from the issue text.

Description

Part of the epic on releases without a local agent. Depends on the agent base (queue, agent.yml) and uses the finish workflow of control-toolbox/CTActions#128 for what comes after the human's validation.

Goal

The role release-preparer: phases 0 to 3 of the release recipe, run by an agent in GitHub Actions, up to a proposal validated by a person.

Proposal

  • Facts by script, judgment by the agent. A subcommand of release.jl (for example release.jl facts) prints what phase 0 reads: status, the state of main and of the baseline breakage, the open PRs, the tags and registry versions, the changelog since the reference, REL7, REL4. The agent does not compute them.
  • The agent decides whether the changes are breaking, groups the entries of [Unreleased] as CHG2 asks, writes the BREAKING.md entry or the non-breaking note, and writes the proposal. The version itself comes from the gate (REL1–REL3): the agent proposes the one the gate expects, and a mismatch stops the run.
  • Checked afterwards: the local gate, then the gate and the breakage report in the PR. The human validates the proposal (label or /release approve X.Y.Z), which starts the finish workflow.
  • Output: the tracking issue with the proposal as first comment, and the release PR prepared (draft until validated, or opened only after validation: to decide).

Tasks

  • release.jl facts (or equivalent), tested.
  • roles/release-preparer.md in ct-agents, with the stop conditions of the recipe.
  • Wire the human validation to the finish workflow (CTActions#128).
  • Update recipes/release.md: the autonomous mode starts from a dispatch, the local agent stays as a fallback.
  • Try on a beta of one package, then on a stable.
Dominant language
Julia
Stars
1
Forks
0
Avg merge
1h 39m
Merged PRs (30d)
45

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from control-toolbox/CTActions

All issues in control-toolbox/CTActions

Similar issues

More Julia issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.