Skip to content

Cut v0.7.0 #150

Open
Open

Description

@PAMulligan

Why this issue exists

Nerva's latest release is still v0.6.0 (2026-05-15). origin/main is at 57b39a9 with 36 commits since that tag, CI green (the 10/5 run passed 12/12 after the Actions incident re-run). Visitors see a stale release while ten features and two fixes sit unreleased. This issue collects everything needed to cut v0.7.0; the cut itself happens only on Paul's explicit go.

What the dry run says (2026-10-07)

Run in a throwaway worktree of origin/main with pnpm install --frozen-lockfile and pnpm release:dry (commit-and-tag-version 13.1.2, the version currently locked):

  • Auto-detection proposes 0.6.1, not 0.7.0. The package is still below 1.0, and under conventional-commits pre-major rules a feat commit bumps the patch number. To get 0.7.0 the bump has to be explicit: pnpm release:minor (which is commit-and-tag-version --release-as minor). A workflow dispatch with release_type: auto would tag v0.6.1.
  • Hidden types stay out of the changelog as expected: the six docs: guides, the chore(deps) and ci(deps) bumps, the stale-workflow removal and the labeler bump are not listed. The two docs guides and the five deployment-target features are the headline items for the plain-language summary later.

Generated changelog section (only the heading changes with --release-as minor):

0.6.1 (2026-10-07)

Features

  • add all-contributors recognition system (#115) (b18f0c2), closes #58
  • add AWS Lambda deployment target (#116) (c05990b)
  • add blog API Node.js/Docker example (#121) (35702f8), closes #19
  • add Fly.io deployment target (#30) (#118) (ab3b3c5)
  • add multi-tenant SaaS template (--multi-tenant) (#133) (a068b72)
  • add Railway deployment target (#117) (f8b549d)
  • adopt cross-repo tooling (migration safety, hooks, config schema, verify-all) (#141) (3265a5d)
  • scripts: add Postman collection generation to project setup (#112) (cf8e8a5), closes #59
  • soft-delete: implement soft delete query filter, helper, and route pattern (#103) (04fac4d)
  • tdd-from-schema: generate response schema snapshot tests (#98) (b7c8436), closes #47
  • templates: add faker-backed test fixture factories to generated projects (#143) (3cdc90b), closes #26

Bug Fixes

Dependabot state after the 10/5 sweep

Do not dispatch the current release.yml

The workflow is single-stage: it runs pnpm release on the runner, then git push --follow-tags origin main with GITHUB_TOKEN. Nerva's main carries the PR-only ruleset (17364122, bypass actor PAMulligan only), so the push is rejected after the tag ref has already been created, exactly the failure Aurelius hit in PMDevSolutions/Aurelius#121. Dispatching it would leave a stray tag and no release.

Two ways to cut it (Paul picks one)

Option A: port the two-stage workflow first, then dispatch. PMDevSolutions/Aurelius#129 (merged 2026-09-13) replaced the same single-stage file with a two-stage flow: workflow_dispatch runs prepare, which bumps package.json and CHANGELOG.md on a release/vX.Y.Z branch and opens a PR titled chore(release): vX.Y.Z; merging that PR to main runs publish, which tags the merge commit and creates the GitHub Release from the CHANGELOG section. It also fixed the pnpm release -- --release-as flag mangling by calling pnpm exec commit-and-tag-version directly, added scripts/extract-release-notes.js --version, regression tests, and a dry_run input. Porting it to Nerva means copying release.yml, the extract script and its tests, setting Node 22, and adding a RELEASE_TOKEN fine-grained PAT secret (Contents and Pull requests write) so the release PR triggers CI; without the secret the PR has to be closed and reopened once. Then dispatch prepare with release_type: minor, review the release PR, merge, and publish runs by itself. This is the durable fix and makes every later release a two-click affair.

Option B: manual cut with the bypass. On a clean main checkout (not the feature branch in ~/Repos/Nerva): git pull --ff-only, pnpm install --frozen-lockfile, pnpm release:minor, check the diff, git push --follow-tags origin main (the ruleset bypass covers it), then gh release create v0.7.0 --title v0.7.0 --notes-file <the 0.7.0 section of CHANGELOG.md>. Fastest path today; the workflow stays broken for next time.

Either way the release notes get no em dashes, and after the cut a plain-language summary of what changed goes to the Roman Engineering issue on 10/13, the LinkedIn slot the same day, and the 10/23 Patreon post.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions