Apply version bumps with a separate rush version --bump step - #490
Merged
Ian Clanton-Thuon (iclanton) merged 4 commits intoSep 16, 2026
Merged
Conversation
Bharat Middha (bmiddha)
approved these changes
Sep 16, 2026
"rush publish --apply --pack --include-all" does not apply version bumps: "--include-all" routes to Rush's "publish all" code path, which packs every project at its current package.json version and never calls changeManager.apply, so the change files were ignored and nothing was bumped. Adding "--publish" does not help, since the "--pack" path only uses that flag for git tagging. Split the flow into two explicit steps, matching how the rushstack repo bumps and packs separately: - bump-versions.yaml now runs "rush version --bump", which applies the change files (bumps package.json versions, regenerates CHANGELOGs, updates inter-project ranges, deletes consumed change files). "--target-branch" is omitted, so Rush performs no git operations of its own (every PublishGit operation is gated on a target branch); the bumps land in the working tree and we commit them onto the feature branch. - New pack.yaml runs "rush publish --pack --include-all" to pack the bumped packages into tarballs for the ESRP publish pipeline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d79bf579-32e9-40b3-91b0-98e008c81849
--publish flag to rush publish command to prevent a dry-run.rush version --bump step
Rush's pack step only runs "npm pack" and copies the tarball into the release folder when "--publish" is set (shouldExecute: this.#publish.value in PublishAction#npmPackAsync); without it the pack is a dry-run and produces no tarballs. With "--pack" set, "--publish" does not publish to the registry -- Rush takes the pack branch, not the npm-publish branch -- so ESRP still performs the real publish later. This matches the spfx repo's pack invocation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d79bf579-32e9-40b3-91b0-98e008c81849
Ian Clanton-Thuon (iclanton)
enabled auto-merge (squash)
September 16, 2026 01:02
Bharat Middha (bmiddha)
approved these changes
Sep 16, 2026
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.
Summary
The bump pipeline wasn't applying version bumps. The combined
rush publish --apply --pack --include-allcommand never bumps versions:--include-allroutes to Rush's "publish all" code path (PublishAction#publishAllAsync), which packs every project at its currentpackage.jsonversion and never callschangeManager.apply(). So the change files were ignored and nothing was bumped. Adding--publishdoesn't help — on the--packpath that flag only affects git tagging.Fix
Split versioning and packing into two explicit steps (mirroring how the rushstack repo bumps and packs separately):
bump-versions.yamlnow runsrush version --bump, which applies the change files: bumpspackage.jsonversions, regenerates CHANGELOGs, updates inter-project dependency ranges, and deletes the consumed change files.--target-branchis deliberately omitted, so Rush performs no git operations of its own (everyPublishGitoperation is gated on a target branch being set) — the bumps land in the working tree and the pipeline commits them onto the feature branch.pack.yamlrunsrush publish --pack --include-allto pack the freshly bumped packages into tarballs for the ESRP publish pipeline. Rush requires--include-allwith--pack; packing unchanged projects is harmless because ESRP ignores tarballs whose version is already published.