Repository navigation
v0.3.0
Overview
soothfast now installs into another repository in one step: one uses: Verdenroz/soothfast@v0.3.0 step in an existing workflow, the Soothfast Bot GitHub App installed once, and no secrets. On pull requests the step gates every bench-carrying package against the base branch and posts the result as soothfast-bot; on pushes to the default branch it regenerates CHANGELOG.md and any generate-mode specs and lands them as a pull request that soothfast-bot opens and merges itself. The credential behind that is a one-hour installation token minted by a small broker from the job's own GitHub Actions OIDC identity, only for a job in a soothfast-bot environment on the repository's default branch; a pull request job never holds a token at all, the broker posts the comment for it. Release notes now keep scoped and breaking conventional-commit subjects, and the API surface block reports a public field or variant change as a signature change.
Upgrade notes
The action now gates pull requests and regenerates on default-branch pushes by default. A job that only bumps the tag on the 0.2 Setup cargo-soothfast step gets a second gate run on pull requests and, on its default branch, a regeneration that fails at the token step. To keep the install-only behaviour, pass gate: false and changelog: false. To use the bot, install the App, create an environment called soothfast-bot with no branch policy, give the job contents: read, pull-requests: write, and id-token: write, and turn on auto-merge if the default branch has required checks. Callers of the reusable soothfast-gate.yml no longer need to pass any secret; the CHANGELOG_APP_PRIVATE_KEY secret is still declared, optional and ignored, for this release. soothfast_report::changelog::Change gained the public fields scope and breaking; a struct literal built outside the crate needs both. See docs/ci.md.
✨ Features
- Soothfast-bot identity for comments, pages, releases (#165)
- One-step soothfast action with bot landing (#164)
- Soothfast-bot OIDC token broker (#160)
🐛 Fixes
- Count struct and enum members as signature (#178)
- Keep scoped and breaking subjects in the changelog (#176)
⚡ Performance
- Reuse the gate's worktree, binaries, and rustdoc output (#156)
📦 Dependencies
- Bump github/codeql-action/upload-sarif from 4.37.8 to 4.37.9 (#170)
- Bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 (#168)
- Bump taiki-e/install-action from 2.86.7 to 2.87.2 (#171)
- Bump step-security/harden-runner from 2.21.0 to 2.21.1 (#169)
- Bump dtolnay/rust-toolchain to current stable (#166)
- Bump taiki-e/install-action from 2.86.6 to 2.86.7 (#152)
- Bump astral-sh/setup-uv from 6.4.3 to 10.0.1 (#151)
- Bump step-security/harden-runner from 2.20.0 to 2.21.0 (#153)
- Bump syn from 3.0.3 to 3.0.4 in the all-dependencies group (#150)
🔧 Internal
- Check release binaries against the target list (#177)
- Author the gh-pages commit as soothfast-bot (#174)
- Move every workflow off the App private key (#163)
- Land the changelog as soothfast-bot via the broker (#161)
🔍 API surface
# soothfast-docs
CHANGED soothfast_docs::diff::SurfaceDiff (body)
CHANGED soothfast_docs::surface::ItemInfo (body)
CHANGED soothfast_docs::surface::from_rustdoc (body)
# soothfast-report
ADDED soothfast_report::changelog::unparsed_subjects
CHANGED soothfast_report::changelog::Change (signature)
CHANGED soothfast_report::changelog::changes_from_subjects (body)