chore: Overhaul release workflow using home-cooked solution#1887
chore: Overhaul release workflow using home-cooked solution#1887maximilianruesch wants to merge 42 commits into
Conversation
|
| Branch | mr/chore/new-release-workflow |
| Testbed | Linux |
Click to view all benchmark results
| Benchmark | hugr_bytes | Benchmark Result bytes x 1e3 (Result Δ%) | Upper Boundary bytes x 1e3 (Limit %) | hugr_nodes | Benchmark Result nodes (Result Δ%) | Upper Boundary nodes (Limit %) |
|---|---|---|---|---|---|---|
| tests/benchmarks/test_big_array.py::test_big_array_compile | 📈 view plot 🚷 view threshold | 154.02 x 1e3(0.00%)Baseline: 154.02 x 1e3 | 155.56 x 1e3 (99.01%) | 📈 view plot 🚷 view threshold | 6,630.00(0.00%)Baseline: 6,630.00 | 6,696.30 (99.01%) |
| tests/benchmarks/test_ctrl_flow.py::test_many_ctrl_flow_compile | 📈 view plot 🚷 view threshold | 27.71 x 1e3(0.00%)Baseline: 27.71 x 1e3 | 27.99 x 1e3 (99.01%) | 📈 view plot 🚷 view threshold | 1,051.00(0.00%)Baseline: 1,051.00 | 1,061.51 (99.01%) |
| tests/benchmarks/test_queue_push_pop.py::test_queue_push_benchmark_compile | 📈 view plot 🚷 view threshold | 10.09 x 1e3(+0.01%)Baseline: 10.09 x 1e3 | 10.19 x 1e3 (99.02%) | 📈 view plot 🚷 view threshold | 301.00(0.00%)Baseline: 301.00 | 304.01 (99.01%) |
| tests/benchmarks/test_queue_push_pop.py::test_queue_push_pop_benchmark_compile | 📈 view plot 🚷 view threshold | 13.70 x 1e3(0.00%)Baseline: 13.70 x 1e3 | 13.83 x 1e3 (99.01%) | 📈 view plot 🚷 view threshold | 420.00(0.00%)Baseline: 420.00 | 424.20 (99.01%) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1887 +/- ##
=======================================
Coverage 92.85% 92.85%
=======================================
Files 148 148
Lines 13849 13849
=======================================
Hits 12859 12859
Misses 990 990 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Please include some test CI runs of the relevant workflows |
There was a problem hiding this comment.
Pull request overview
This PR replaces the existing release-please based automation with a custom, tag-driven release workflow for the guppylang monorepo, including new scripts to compute versions, seed/update changelogs, and keep a release-notes preview in sync on the release PR.
Changes:
- Introduces custom release automation workflows (
release-pr, changelog preview sync, major-bump guard, and tag-driven release creation). - Adds release helper scripts for version computation, changelog extraction/insertion, and PR body rendering; adds a
git-cliffconfig for draft changelog seeding. - Removes
release-pleaseconfiguration/manifest and updates docs and CI gating to match the new release-PR branch naming.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/release/update_changelog.py | New helper to splice a generated version section into CHANGELOG.md. |
| scripts/release/render_pr_body.py | New helper to render/replace the release-notes preview block in a release PR body. |
| scripts/release/extract_changelog.py | New helper to extract a version’s changelog body for release notes. |
| scripts/release/compute_versions.py | New version bump logic for guppylang and the new internals <major>.<build> scheme. |
| cliff.toml | New git-cliff configuration used to seed draft changelog sections per package. |
| ruff.toml | Adds a per-file ignore for scripts/release/* CLI printing. |
| .github/workflows/release-pr.yml | New workflow to open/update a single release PR and bump versions/lock/changelogs. |
| .github/workflows/release-pr-changelog-preview.yml | New workflow to keep the PR body preview in sync with committed changelogs. |
| .github/workflows/release-major-guard.yml | New workflow to block accidental major bumps unless explicitly labeled. |
| .github/workflows/release-publish.yml | New tag-driven workflow to create draft GitHub releases and populate notes from changelogs. |
| .github/actions/update-release-preview/action.yml | New composite action used to update the PR body preview via GH CLI. |
| .github/workflows/release-checks.yml | Adapts release checks to run on the new release-pr--* branches and updates version verification source. |
| .github/workflows/python-wheels.yml | Updates gating logic to recognize the new release PR branch naming. |
| guppylang/src/guppylang/init.py | Updates comment to reflect the new release workflow as the version sync mechanism. |
| guppylang-internals/src/guppylang_internals/init.py | Updates comment to reflect the new release workflow as the version sync mechanism. |
| guppylang-internals/src/guppylang_internals/engine.py | Parses internals versions that may omit minor/patch per new scheme. |
| DEVELOPMENT.md | Updates release process documentation to match the new custom workflows. |
| release-please-config.json | Removed (release-please no longer used). |
| .release-please-manifest.json | Removed (release-please no longer used). |
| .github/workflows/release-please.yml | Removed (release-please no longer used). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uses a homecooked release PR solution that suits our needs.
Disclosure: The base of this PR was generated by Copilot, but was later refactored. The initial pitch included tooling tests, but I have removed those (in an extra commit). We could restore them, but they need some updating in that case.
Closes #1866
Closes #1867