feat(release): major-bump no-commit crates on direct dependency major bumps#2195
Draft
iunanua wants to merge 1 commit into
Draft
feat(release): major-bump no-commit crates on direct dependency major bumps#2195iunanua wants to merge 1 commit into
iunanua wants to merge 1 commit into
Conversation
… bumps Crates with no commits since their last release were skipped entirely in the release proposal, so the libdd-* major-bump audit (which only read the released crates) could never propagate a major bump to them. This is a common case: a dependency's release rewrites dependents' Cargo.toml via a chore(release) bot commit, which commits-since-release.sh filters out, making the dependent look "no-commit". No-commit crates are now recorded as pending candidates and fed into the same major-bump audit. They are released as major only when a direct libdd-* dependency's major requirement changed since their last tag; otherwise they stay skipped as before. A minimal CHANGELOG entry recording the dependency bump is written since git-cliff has no commits to work with. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Contributor
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
|
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.
What
Release-proposal crates with no commits since their last release are no longer skipped outright. They are now recorded as pending candidates and released as major when a direct
libdd-*dependency's major requirement changed since their last tag — using the same audit (major-bumps-level.sh) that already runs for released crates.Why
When a dependency (e.g.
libdd-common) is released major,cargo-releaserewrites dependents'Cargo.tomlrequirements via achore(release)bot commit.commits-since-release.shfilters those commits out, so the dependent looks "no-commit" → it wascontinued in Release version bumps → it never reached/tmp/api-changes.json→ the major-bump audit (which only read that file) could never propagate the major bump to it.How
/tmp/pending-major-only.jsonwithpending_release: "true"(keepingprev_tag,version,path), rather than dropped.api-changes.json+ pending, seeds the result with already-released crates, then bumps to major (append for pending, update-in-place for released) via one unified path.Scope notes
prev_tag), so it catches already-merged dependency majors not yet propagated — "like the others". In-proposal propagation (a dep majored within the same run) is not handled here, and wasn't before either.Testing
YAML validated; the jq merge/seed/append and awk changelog-prepend logic were unit-tested in isolation. The full workflow requires the CI runner + org tokens and was not run locally.
🤖 Generated with Claude Code