ci: manage releases with release-please - #2884
Open
IsmaelMartinez wants to merge 3 commits into
Open
IsmaelMartinez wants to merge 3 commits into
IsmaelMartinez wants to merge 3 commits into
Conversation
Replaces the Release Drafter draft-and-click flow, which produced an untagged v0.44.0 release that failed Publish's SemVer gate and shipped nothing. release-please creates the tag from a merged release PR instead.
Collaborator
Author
|
/agentic_review |
Fail closed when RELEASE_TOKEN is unset rather than falling back to GITHUB_TOKEN, which would create a release that never triggers Publish. Add a concurrency group, and give release-please a clean insertion point in CHANGELOG.md so generated notes do not land inside the 2023 archive.
Contributor
Code Review by Qodo
1. Release pull requests fail CI
|
Member
|
Let's talk about this in our next meeting 🙏 |
Bootstrap the manifest and CHANGELOG at v0.45.0 (released 2026-09-05), drop the drafter workflow main re-pinned in The-PR-Agent#3298, and carry The-PR-Agent#3070's GitHub casing into the archived entry. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LpThzLDt7pgLathoucBkcL
Comment on lines
+5
to
+6
| "release-type": "python", | ||
| "changelog-path": "CHANGELOG.md", |
Contributor
There was a problem hiding this comment.
1. Release pull requests fail ci 🐞 Bug ≡ Correctness
The root release-please package updates pyproject.toml but has no updater for the project version recorded in uv.lock. Every generated version-bump pull request therefore leaves the lockfile at the previous version, causing uv lock --check in pull-request CI to fail and block the release flow.
Agent Prompt
## Issue description
Release Please updates the project version in `pyproject.toml` without updating the corresponding root-package version in `uv.lock`. Generated release pull requests consequently fail the existing `uv lock --check` CI step.
## Fix Focus Areas
- release-please-config.json[3-12]
- uv.lock[2464-2467]
- .github/workflows/build-and-test.yaml[19-23]
## Recommended Fix
Extend the release automation so each generated release pull request also updates or regenerates `uv.lock` alongside `pyproject.toml`. Ensure the resulting pull request contains the new `pr-agent` version in both files and passes `uv lock --check`.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Contributor
|
Code review by qodo was updated up to the latest commit 2603a93 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves releases onto release-please, so the tag is created by a merged PR rather than a button.
Why now: v0.44.0 was published with the placeholder tag
untagged-64e9bbbb…, which failed Publish's SemVer gate, so nothing reached PyPI or Docker Hub. That is the third release needing a manual fix, after #2573 and #2592. Details in #2885.release-type: pythonupdates[project].versioninpyproject.toml, the only place the version lives here. Thesetup.py,setup.cfgand__init__.pyupdaters are allcreateIfMissing: false, so their absence is a no-op, and there is noversion.py.0.45.0, matchingpyproject.tomland the newest real tag (the draftv0.46.0is untagged, so it does not count).include-v-in-tagkeeps thevX.Y.Zshapepublish.ymlparses;bump-minor-pre-majorkeeps features on a minor bump while we are pre-1.0.GITHUB_TOKENfallback on the token, deliberately: a release created withGITHUB_TOKENdoes not trigger other workflows, so Publish would never fire and the tag would ship nothing. The job fails closed ifRELEASE_TOKENis unset. Please sanity-check that secret is scoped for this.CHANGELOG.mdgets a0.45.0heading so release-please has a stable insertion point. Without it the first generated entry lands inside the 2023 archive, under a paragraph saying those entries describe no release after that date. The archive moved toRELEASE_NOTES.md, which already held thev0.7–v0.11notes.publish.ymlis untouched. It still fires onrelease: published, and itsfinalizebump becomes a no-op because release-please has already set the version.Three things I did not fix here, flagged rather than left implicit:
.release-please-manifest.jsonmust be bumped to0.46.0in the same breath. Manifest mode treats that file as the current version, so leaving it at0.45.0makes the next release PR propose0.46.0again and collide with the existing tag.v0.44.0is tagged and the runawayv64.1.0draft is gone. What remains is the Release Drafter draftv0.46.0(untagged, targetmain). Once the drafter workflow is removed nothing rewrites it, so either publish it as 0.46.0 and bump the manifest as in point 1, or delete it before release-please opens its first release PR.$CHANGESlisted every merged PR regardless of title format. release-please silently drops commits whose subject is not a conventional commit, and those also do not bump the version — 7 of the last 96 qualify, includingFix: log dropped inline comments (#2876)andenable bedrock access through private VPC endpoint (#2663). Worth a title check in CI; happy to follow up with one plus anactions/labelerconfig.Happy to split the Release Drafter removal into its own PR if you would rather land the config first.
Refs #2885