Skip to content

ci: automate releases with release-please and enforce conventional commit titles - #14

Open
ChocoStout wants to merge 1 commit into
mainfrom
ci/release-please-automation
Open

ChocoStout wants to merge 1 commit into
mainfrom
ci/release-please-automation

Conversation

@ChocoStout

Copy link
Copy Markdown
Owner

What

Migrates OverTone to automated, trunk-based releases via release-please, replacing the manual v*-tag flow. Merging Conventional Commits to main maintains a "release PR"; merging that PR publishes both packages to NuGet.org + GitHub Packages and cuts the GitHub Release.

Changes

Release automation

  • release.yml → release-please job + gated publish job (build → test → pack → push → attach .nupkg/.snupkg)
  • release-please-config.json + .release-please-manifest.json — manifest mode, baseline 1.1.0, tags stay vX.Y.Z (include-component-in-tag: false)
  • Directory.Build.props — <VersionPrefix> annotated x-release-please-version (now machine-managed)
  • CHANGELOG.md — relabeled stale [Unreleased] → [1.1.0] (those features already shipped)

Conventional Commits enforcement + docs

  • .github/workflows/pr-title-lint.yml — validates PR titles via amannn/action-semantic-pull-request@v6
  • .github/pull_request_template.md — title reminder + checklist
  • CONTRIBUTING.md — new "Commit messages" section + rewritten "Releasing"
  • README.md — contributing step asks for a Conventional Commits title

Follow-ups (repo settings — not code, intentionally out of this PR)

  • Set the NUGET_API_KEY repo secret for NuGet.org (GitHub Packages uses the built-in token)
  • Enable squash-merge with squash_merge_commit_title=PR_TITLE so the enforced PR title is what release-please reads (repo currently merge-commits)
  • Make the "Validate PR title (Conventional Commits)" check required on main
  • Remove last-release-sha from release-please-config.json after the first release-please release

Notes

  • This PR is ci:-typed, so merging it won't trigger a release — release-please only acts on feat/fix.
  • pr-title-lint doesn't run on this PR (not on main yet); it applies to subsequent PRs.

🤖 Generated with Claude Code

…mmit titles

Replace the manual `v*`-tag release flow with trunk-based automation: merging
Conventional Commits to `main` maintains a release PR; merging that PR publishes
both packages to NuGet.org + GitHub Packages and cuts the GitHub Release.

Release automation:
- release.yml: release-please job + gated publish job (build -> test -> pack ->
  push -> attach assets)
- release-please-config.json + .release-please-manifest.json (manifest mode,
  baseline 1.1.0, tags stay vX.Y.Z via include-component-in-tag:false)
- Directory.Build.props: <VersionPrefix> annotated x-release-please-version
- CHANGELOG.md: relabel stale [Unreleased] -> [1.1.0] (already shipped)

Conventional Commits enforcement + docs:
- pr-title-lint.yml: validate PR titles (amannn/action-semantic-pull-request@v6)
- pull_request_template.md: title reminder + checklist
- CONTRIBUTING.md: new "Commit messages" section + rewritten "Releasing"
- README.md: contributing step asks for a Conventional Commits title

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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