Skip to content

ci: adopt release-please for versioning and releases#30

Merged
GregTheGreek merged 2 commits into
mainfrom
ci/release-please
Jul 6, 2026
Merged

ci: adopt release-please for versioning and releases#30
GregTheGreek merged 2 commits into
mainfrom
ci/release-please

Conversation

@GregTheGreek

Copy link
Copy Markdown
Owner

Summary

Replaces the manual "bump version, commit chore(release), push tag" flow with release-please. On push to main it maintains a release PR that bumps every version location in lockstep and writes CHANGELOG.md from conventional commits; merging it tags vX.Y.Z and creates the GitHub Release. The existing tag-vs-Cargo.toml guardrail still holds since both move together.

  • release-please-config.json + .release-please-manifest.json: single rust-type component. Bumps workspace version + Cargo.lock, the two rompatch-core path-dep pins (annotations keep the exact-version pin from breaking the build), and ui/package.json.
  • release-please.yml: runs release-please; on release_created calls release-build.yml via workflow_call (release-please tags with GITHUB_TOKEN, which can't trigger on:push:tags, so we invoke the build directly).
  • release-build.yml: the signed .dmg build / notarize / latest.json / attest / upload, lifted out of ci.yml, driven by a tag input. Drops generate_release_notes so release-please owns the body. workflow_dispatch kept as a manual escape hatch.
  • ci.yml: tag trigger + release steps removed; gui job stays a PR/main check.

Manual prerequisites (repo settings)

  • Settings → Actions → General → Workflow permissions: Read and write + Allow GitHub Actions to create and approve pull requests (release-please needs this to open its PR).

Test plan

  • Merge, then confirm release-please opens a release PR against main
  • Review that PR's diff: workspace Cargo.toml, Cargo.lock, both rompatch-core pins, and ui/package.json all bump to the same version
  • Merging the release PR tags vX.Y.Z, and release-build.yml attaches the .dmg + .app.tar.gz + .sig + latest.json to the release

Replace the manual "bump version, commit, push tag" flow with
release-please. On push to main it maintains a release PR that bumps
every version location in lockstep and writes CHANGELOG.md from
conventional commits; merging it tags and creates the GitHub Release.

- release-please-config.json / .release-please-manifest.json: single
  rust-type component. Bumps the workspace version + Cargo.lock, the
  two rompatch-core path-dep pins (x-release-please-version annotations
  keep them in step so the exact-version pin doesn't break the build),
  and ui/package.json.
- release-please.yml: runs release-please; on release_created it calls
  release-build.yml via workflow_call. release-please tags with the
  default GITHUB_TOKEN, which can't trigger tag-push workflows, so the
  build is invoked directly rather than via on:push:tags.
- release-build.yml: the signed universal .dmg build, notarization,
  updater latest.json, attestation, and release upload - lifted out of
  ci.yml and driven by a `tag` input instead of github.ref. softprops
  drops generate_release_notes so release-please owns the release body;
  it only attaches artifacts. workflow_dispatch is kept as a manual
  escape hatch.
- ci.yml: drop the tag trigger and the tag-gated release steps; the gui
  job stays as a PR/main check.

Co-Authored-By: Claude
@GregTheGreek
GregTheGreek marked this pull request as ready for review July 6, 2026 11:31
@GregTheGreek
GregTheGreek merged commit f576098 into main Jul 6, 2026
7 checks passed
@GregTheGreek
GregTheGreek deleted the ci/release-please branch July 6, 2026 11:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant