fix(deprecated): keep deprecated packages on their named prerelease line - #36627
Merged
Martin Hochel (Hotell) merged 3 commits intoAug 25, 2026
Merged
Conversation
Martin Hochel (Hotell)
requested review from
a team,
Mitch-At-Work,
Valentyna (ValentinaKozlova),
Dmytro Kirpa (dmytrokirpa) and
Victor Genaev (mainframev)
as code owners
August 25, 2026 10:46
Martin Hochel (Hotell)
force-pushed
the
fix/deprecated-pkgs-prerelease-line
branch
from
August 25, 2026 11:09
e881bc5 to
dbf134a
Compare
📊 Bundle size report✅ No changes found |
Victor Genaev (mainframev)
approved these changes
Aug 25, 2026
|
Pull request demo site: URL |
Martin Hochel (Hotell)
removed request for
a team,
Mitch-At-Work,
Valentyna (ValentinaKozlova) and
Dmytro Kirpa (dmytrokirpa)
August 25, 2026 11:47
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.
Problem
Deprecated v9 packages are supposed to live on a named prerelease line (
-beta.x/-alpha.x) forever. Two of them silently fell off it:Root cause
These packages carry
"disallowedChangeTypes": ["major", "minor", "patch"]and have no change files of their own — they are bumped as dependents ofreact-popoveretc., where the defaultdependentChangeTypeispatch.Beachball resolves a disallowed change type by stepping exactly one notch down its ordered list:
So
patch→prepatch, and:prepatchstarts a new prerelease line and drops thebetaidentifier. Beachball's downgrade is prerelease-unaware, but our config is what exposed it —prepatchwas left allowed.It's intermittent: it only fires when some upstream change file carries
dependentChangeType: patch. When everything upstream wasprerelease, the packages stayed onbeta.x. That's why it went unnoticed for two releases.Knock-on: the release pipeline goes red
tag-react-components.tsderives the dist-tag fromprerelease[0]. For9.0.1-0that is0:That is the
succeededWithIssueson "Tag prelease packages with prerelease tag" in build 383600. Net effect — thebetatags are stale:betalatestFix (three parts)
1. Stop the bug recurring — disallow
premajor/preminor/prepatchon all three deprecated packages, so a dependentpatchdegrades all the way toprerelease:@fluentui/react-virtualizer(9.0.0-alpha.115) was the next domino — same config, still intact. Without this it would have gone to9.0.1-0on the next dependent bump.2. Repair the two damaged packages. The old line is unreachable (
9.0.0-beta.120 > 9.0.1-0isfalse), so they move forward onto a named line that outranks what's published:Both are
>the published version, so this is forward progress, and the derived dist-tag becomesbetaagain.react-componentspins these exactly, so its pins are updated to match.3. Stop a version-shape problem from failing the release.
tag-react-components.tsnow skips prerelease identifiers that npm would reject, with a warning naming the package, instead of erroring out.Verification
Simulated a real release against this branch:
The new tagging guard checked against every version shape we publish:
No behaviour change for
beta,alpha,nightlyorexperimentaltagging.Not addressed
The already-published
9.0.1-0/9.0.2-0can't be withdrawn. Consumers of@fluentui/react-componentsare unaffected (exact pins); only someone installing these deprecated packages directly via@betawas seeing a stale version, and the next release fixes that.