Skip to content

ci(release): switch release automation to release-please - #99

Open
danielscholl wants to merge 6 commits into
mainfrom
ci/release-please
Open

ci(release): switch release automation to release-please#99
danielscholl wants to merge 6 commits into
mainfrom
ci/release-please

Conversation

@danielscholl

@danielscholl danielscholl commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Cutting a release today depends on remembering to apply a release:* label before merging; forget it and nothing ships. This switches the repo to release-please: every merge to main keeps a standing chore: release X.Y.Z PR up to date, and merging that PR is the entire release process.

Changes

  • Replace the label-driven release.yml with release-please plus an assets job that builds and attaches the wheel
  • Keep new releases as drafts until the wheel is attached, so spi update never sees a release without one
  • Leave pyproject.toml at the 0.0.0+source sentinel; the real version is still stamped at build time
  • Add a pr-title lint check, since the PR title now determines the version bump (feat minor, breaking ! major, anything else patch)
  • Clean up the stale CHANGELOG.md so release-please can take it over
  • Update CONTRIBUTING, the PR template, AGENTS.md, and docs/CI_SETUP.md for the new model

One-time setup (GitHub App, secrets, squash-only merges, branch protection) needs repo admin; the commands are in the new docs/CI_SETUP.md section. After this merges, the first push to main opens chore: release 0.5.2 covering everything since v0.5.1.

Validation

  • uv run pre-commit run --all-files green (ruff, ty, pytest)
  • release-please dry run against this branch proposes chore: release 0.5.2 with a correctly sectioned changelog
  • Local build after version stamping produces spi-0.5.2-py3-none-any.whl + sdist; sentinel restored after

@danielscholl
danielscholl requested a review from a team as a code owner August 26, 2026 21:30
Copilot AI balanced review requested due to automatic review settings August 26, 2026 21:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Replaces label-driven releases with release-please while preserving build-time version stamping and ensuring releases contain installable artifacts before publication.

Changes:

  • Adds release-please configuration and draft-to-published release workflow.
  • Enforces Conventional Commit PR titles.
  • Updates release documentation and changelog history.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/release.yml Implements release-please and artifact publication.
.github/workflows/pr-title.yml Adds PR title validation.
.release-please-config.json Configures release and changelog behavior.
.release-please-manifest.json Seeds the current version.
.github/PULL_REQUEST_TEMPLATE.md Replaces release-label guidance.
docs/branch-protection.json Requires the title check.
docs/CI_SETUP.md Documents release setup and operation.
CONTRIBUTING.md Documents the new release process.
AGENTS.md Updates contributor automation guidance.
CHANGELOG.md Consolidates historical release notes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread CHANGELOG.md Outdated
Replace the label-driven release workflow with release-please triggered
on push to main, add a pr-title workflow enforcing conventional commit
PR titles, and update docs, branch protection, and PR template to match
Copilot AI review requested due to automatic review settings August 26, 2026 21:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/release.yml Outdated
Copilot AI review requested due to automatic review settings August 26, 2026 21:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/release.yml Outdated
Pass event, tag, and sha values via env instead of inline interpolation
Draft the release before uploading assets to avoid a published release
missing its wheel on upload failure
Copilot AI review requested due to automatic review settings August 26, 2026 21:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Comment thread .release-please-config.json
Copilot AI review requested due to automatic review settings August 26, 2026 22:02
Enable force-tag-creation so release-please tags vX.Y.Z alongside
the draft release, letting the assets job recover the version if it
fails before publishing. Update comments and docs to match.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 26, 2026 22:08
Explain config-as-code install via microsoft/github-operations repo
and list the specific permissions used by release automation

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 26, 2026 22:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Suppressed comments (2)

Previously missed (2) — in code that hasn't changed since the last review.

AGENTS.md:47

  • This states that every breaking ! produces a major release, but the new release-please config sets bump-minor-pre-major: true; at the current 0.5.1 version, a breaking title produces 0.6.0, not 1.0.0. Match the caveat already documented in CONTRIBUTING.md so contributors are not given conflicting release semantics.
  Squash-merge uses the PR title as the commit subject release-please
  versions from (`feat` minor, breaking `!` major, anything else patch);
  the `pr-title` check enforces it.

.github/PULL_REQUEST_TEMPLATE.md:18

  • This omits the configured pre-1.0 exception: with bump-minor-pre-major: true, a breaking ! at 0.5.1 bumps to 0.6.0 rather than 1.0.0. The template should describe that behavior consistently with CONTRIBUTING.md.
The PR title determines release impact via release-please:
feat -> minor, breaking ! -> major, anything else -> patch.

@yuchen-wang99 yuchen-wang99 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: no functional blocker; safe to approve. All checks pass, and an independent release-please dry run correctly proposed 0.5.2 . Draft release, forced tag creation, exact-SHA build, and asset-first publishing are sound.

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.

3 participants