Ship 3.2.0 API surface and target the build at 3.2.0 - #3216
Merged
Conversation
Moves every PublicAPI.Unshipped.txt entry (StackExchange.Redis root and net6.0, RESPite root) to its corresponding Shipped.txt, ahead of the 3.2.0 GA cut. Sets versionHeightOffset -2, scoped to 3.2 via versionHeightOffsetAppliesTo, so that once this merges the computed version lands on 3.2.0 rather than 3.2.2.
mgravell
added a commit
that referenced
this pull request
Sep 11, 2026
#3216 shipped the 3.2.0 API surface, which moves entries from Unshipped to Shipped - main's Unshipped is now just the #nullable directive, and its Shipped grew from 2859 to 3013 lines. Our branch still carried 233 unshipped entries, and they were a mixture: 154 came from main and have now shipped, while 79 are this feature's own and must stay unshipped. So this is not a both-sides merge. Resolved by taking our file verbatim - order, grouping and header intact - and dropping every entry that now appears in Shipped. Keeping them would have declared the same symbol in both files, which the analyzer rejects; dropping ours instead would have silently un-declared the feature's API and failed the build for the other reason. What remains unshipped is the feature: 58 entries behind [SER010], the two options providers, ConfigurationOptions.TopologyRefreshSeconds, the provider's TopologyRefreshInterval, DefaultOptionsProvider.Name, and the health-check probe flags behind [SER007]. ConnectionFailureType.MaintenanceHandoff is in there as the one ungated addition. Verified rather than assumed: zero symbols appear in both files (3010 shipped, 79 unshipped, intersection empty), the build is clean across every TFM, and the suite is green at 6382/0/162. Note the BOM handling, because it cost a build: reading the blob yields the BOM as a literal character, and writing with utf-8-sig adds another, which turns "#nullable enable" into a declared symbol named "<BOM>#nullable enable". Strip all BOMs from the content, then write exactly one.
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
PublicAPI.Unshipped.txtentry (StackExchange.Redis root +net6.0, RESPite root) into its correspondingShipped.txt, ahead of the 3.2.0 GA cut -net6.0/net8.0Unshipped files for RESPite were already empty. Straight append in existing order, matching the convention from the prior 3.1 GA ship commit (bf8fac8).versionHeightOffset: -2, scoped to3.2viaversionHeightOffsetAppliesTo, so the computed version lands on 3.2.0 once this merges (current height is 1 from the "Bump to 3.2" commit; this PR adds 1 more, offset brings the total back to 0), rather than 3.2.2. Same pattern used for the 3.1 GA cut.Verified:
nbgv get-versionreports3.2.0at this commit;dotnet buildon both libraries (all TFMs) is clean with the moved shipfiles; aPublicRelease=truepack producesStackExchange.Redis.3.2.0.nupkg.Test plan
dotnet build src/StackExchange.Redis/StackExchange.Redis.csproj -c Release /p:CI=true- clean, all TFMsnbgv get-versionat this commit reports3.2.0dotnet pack ... /p:PublicRelease=trueproducesStackExchange.Redis.3.2.0.nupkg