ci: skill to review release proposal PRs - #2394
Conversation
Document the crates.io release-proposal flow end to end: the dispatch workflow, how the semver bump level is derived, what CI validates on the proposal PR, and the manual GitLab publish job. Calls out the semver-level.sh / major-bumps-level.sh limitations (they only under-estimate, so minor and patch bumps are the ones to review), that the hotfix path is implemented but untested, and a troubleshooting table. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
BenchmarksComparisonCandidateCandidate benchmark detailsBaselineBaseline benchmark details |
|
🎯 Code Coverage (details) 🔗 Commit SHA: bbcd408 | Docs | View more details | Give us feedback! |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 60cb56f63d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| print(f"{d:28} {'PUB' if m['publish'] else '-':4} {(b['ver'] if b else '?'):10} {m['ver']:10} {bumped:16} {direct}") | ||
| PY | ||
| ``` | ||
| Any `PUB` crate flagged `** NOT-MAJOR **` is a defect: it either needs adding to the release as a major bump, or (if already in the list) its bump needs raising to major. Remember the intra-closure requirement edges must also move to the new majors (e.g. `crashtracker → telemetry ^N`). |
There was a problem hiding this comment.
Limit the cascade check to non-duplicable crates
Run this blanket closure check only for major-bumped crates that fail the preceding safe-to-duplicate test. As written, a proposal that major-bumps a crate which passes both checks will still cause every publishable reverse dependent to be reported as a defect, directly contradicting the earlier no cascade verdict and prompting unnecessary major releases.
Useful? React with 👍 / 👎.
The bump rules classified any additive diff as minor ("new pub items,
nothing removed/changed"), which contradicted the skill's own note that
added trait impls can break inference. Adding an enum variant, a required
trait method, or a field to a constructible struct breaks downstream
matches, impls, and literals, so a reviewer following the rule could
approve a breaking change as a minor release.
- List the four additive-but-breaking forms under major, each with the
exemption that must be verified in code (#[non_exhaustive] at the base
ref, a default body, a pre-existing private field).
- Require subagents to walk that list before returning minor.
- Replace the scripts/tests/semver-level/ citation: no such directory,
detection_matrix.bats, or README exists in the tree. Point at
semver-level.sh, the workflow tool pins (0.48.0, not the claimed
0.47.0), and cargo semver-checks --list instead.
- Note that --list's type column is the required update, not the lint
level, so a major-typed lint can still be warn-level and exit 0.
What does this PR do?
Include a claude skill to review a libdatadog release-proposal PR that bumps multiple crate versions.