Skip to content

chore: Overhaul release workflow using home-cooked solution#1887

Open
maximilianruesch wants to merge 42 commits into
mainfrom
mr/chore/new-release-workflow
Open

chore: Overhaul release workflow using home-cooked solution#1887
maximilianruesch wants to merge 42 commits into
mainfrom
mr/chore/new-release-workflow

Conversation

@maximilianruesch

@maximilianruesch maximilianruesch commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

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

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

🐰 Bencher Report

Branchmr/chore/new-release-workflow
TestbedLinux
Click to view all benchmark results
Benchmarkhugr_bytesBenchmark Result
bytes x 1e3
(Result Δ%)
Upper Boundary
bytes x 1e3
(Limit %)
hugr_nodesBenchmark 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%)
🐰 View full continuous benchmarking report in Bencher

@codecov-commenter

codecov-commenter commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.85%. Comparing base (3c19192) to head (7579b2c).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@codspeed-hq

codspeed-hq Bot commented Jun 19, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 11 untouched benchmarks


Comparing mr/chore/new-release-workflow (7579b2c) with main (0ca86f7)

Open in CodSpeed

@maximilianruesch maximilianruesch requested a review from ss2165 June 22, 2026 11:10
@maximilianruesch maximilianruesch marked this pull request as ready for review June 22, 2026 11:10
@maximilianruesch maximilianruesch requested a review from a team as a code owner June 22, 2026 11:10
@ss2165 ss2165 requested a review from Copilot June 22, 2026 12:26
@ss2165

ss2165 commented Jun 22, 2026

Copy link
Copy Markdown
Member

Please include some test CI runs of the relevant workflows

@maximilianruesch

maximilianruesch commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator Author

@ss2165 Most of the PR based workflows have been tested in #1889, I am careful with testing tag + release based stuff in the repository itself; it is too easy to fetch (and subsequently repush) unwanted tags.

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

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-cliff config for draft changelog seeding.
  • Removes release-please configuration/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.

Comment thread scripts/release/update_changelog.py
Comment thread scripts/release/update_changelog.py
Comment thread scripts/release/compute_versions.py Outdated
Comment thread .github/workflows/release-major-guard.yml Outdated
Comment thread DEVELOPMENT.md Outdated
Comment thread .github/workflows/release-pr.yml Outdated
Comment thread .github/workflows/release-checks.yml Outdated

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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 20 out of 20 changed files in this pull request and generated 6 comments.

Comment thread scripts/release/compute_versions.py Outdated
Comment thread scripts/release/compute_versions.py
Comment thread scripts/release/compute_versions.py Outdated
Comment thread .github/workflows/release-pr.yml Outdated
Comment thread .github/workflows/release-pr-changelog-preview.yml Outdated
Comment thread .github/workflows/release-major-guard.yml Outdated
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.

[Maintenance]: Combine release workflows [Maintenance]: Alternative versioning schemes for compiler internals

4 participants