ci(release): hint at crates left out of a proposal affected by its major bumps - #2391
Conversation
…jor bumps Release candidates only come from publication-order.sh, which walks downward: the selected crates plus the libdd-* crates they depend on. Dependents outside that closure are never candidates, yet `cargo release version` still rewrites their dependency requirement to the new major. Their published version keeps requiring the old major, and their next proposal is force-bumped to major by major-bumps-level.sh with nothing having said so at the time. Report those crates, grouped by the major-bumped dependency, in the job log, the step summary and the proposal PR body. A crate is reported when it has a direct (non-dev, non-build) dependency on a crate released here at level major whose requirement now names the new major, which is the same extraction rule major-bumps-level.sh applies, so a hint cannot disagree with the audit that runs next time. The step is informational: it never touches the tree, always exits 0, and carries continue-on-error so a bug in the hints cannot fail a run whose version bumps are already committed. When nothing is affected the markdown file is empty and the PR body is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Julio Gonzalez <107922352+hoolioh@users.noreply.github.com>
f63cac1
into
igor/versioning/proposal-wf-cleanup
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c4ec5224d9
ℹ️ 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".
| [ | ||
| "### :warning: Crates left out of this proposal affected by its major bumps", | ||
| "", | ||
| "These publishable workspace crates are not part of this release but their dependency requirement was rewritten on this branch while their published version still requires the old major. If they're a dependency on your deployment not including them in the release could result in duplicate packages or symbol incompatibility.", |
There was a problem hiding this comment.
Escape the apostrophe inside the jq program
The apostrophe in they're terminates the single-quoted jq argument opened on line 72, so Bash reports a syntax error near def first_num(s) on every invocation. Because the workflow marks this step continue-on-error, release proposals still proceed but never produce the intended warning or markdown artifact; reword the contraction or escape it without ending the jq program.
Useful? React with 👍 / 👎.
…jor bumps (#2391) Release candidates only come from publication-order.sh, which walks downward: the selected crates plus the libdd-* crates they depend on. Dependents outside that closure are never candidates, yet `cargo release version` still rewrites their dependency requirement to the new major. Their published version keeps requiring the old major, and their next proposal is force-bumped to major by major-bumps-level.sh with nothing having said so at the time. Report those crates, grouped by the major-bumped dependency, in the job log, the step summary and the proposal PR body. A crate is reported when it has a direct (non-dev, non-build) dependency on a crate released here at level major whose requirement now names the new major, which is the same extraction rule major-bumps-level.sh applies, so a hint cannot disagree with the audit that runs next time. The step is informational. --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Julio Gonzalez <107922352+hoolioh@users.noreply.github.com>
What does this PR do?
Release candidates only come from publication-order.sh, which walks downward: the selected crates plus the libdd-* crates they depend on. Dependents outside that closure are never candidates, yet
cargo release versionstill rewrites their dependency requirement to the new major. Their published version keeps requiring the old major, and their next proposal is force-bumped to major by major-bumps-level.sh with nothing having said so at the time.Report those crates, grouped by the major-bumped dependency, in the job log, the step summary and the proposal PR body. A crate is reported when it has a direct (non-dev, non-build) dependency on a crate released here at level major whose requirement now names the new major, which is the same extraction rule major-bumps-level.sh applies, so a hint cannot disagree with the audit that runs next time.
The step is informational.