Repository navigation
public-api.py: apply *REMOVED* at promotion; promote the API surface since 3.4.0 - #3316
Merged
Merged
Conversation
…g them The analyzer records a vanished shipped signature as a *REMOVED* line in the unshipped file. Promotion moved every unshipped line across verbatim, so a promotion after any such change would have left the shipped file with both the dead signature and a *REMOVED* copy of it, and the analyzer would then fail the build on the dead one (RS0017). Promotion now consumes the marker: the named signature is dropped from the shipped file, the marker is not carried over, and a marker that names nothing shipped is an error. A *REMOVED* line already sitting in a shipped file is also reported. The "+N promoted" note gains "-N removed", and an unshipped file holding only removals is still emptied.
eng/public-api.py --promote. Fifty-two StackExchange.Redis entries (the lag-aware availability surface, FailbackHealthCheck, HealthCheckProbeScope, the 8.12-independent RedisType and KeyNotificationType tokens) and the net6.0 SetUserPemCertificate overload move to shipped; the three parameter renames from #3296 (muxer -> multiplexer on the Azure providers' AfterConnectAsync, other -> obj on RESPite AsciiHash.Equals) are applied rather than copied. Every unshipped file is now empty.
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.
Two commits, reviewable separately.
1. Fix
eng/public-api.py --promoteThe analyzer records a vanished shipped signature as a
*REMOVED*line in the unshipped file. Promotion moved every unshipped line across verbatim, so any promotion after such a change would have left the shipped file with both the dead signature and a*REMOVED*copy of it; the analyzer then fails the build on the dead one (RS0017). Main currently carries three of these, all parameter renames from the StyleCop 1.3 tidy-up (#3296):muxertomultiplexeron the two Azure providers'AfterConnectAsyncoverrides, andothertoobjon RESPite'sAsciiHash.Equals.Promotion now consumes the marker: the named signature leaves the shipped file, the marker is not carried over, a marker that names nothing shipped is an error, and a
*REMOVED*line already sitting in a shipped file is reported. The note becomes(+N promoted, -N removed), and an unshipped file holding only removals is still emptied.--checkand sort-only behaviour are unchanged.2. Promote the surface since 3.4.0
eng/public-api.py --promote, with the fixed script. The last promotion was "Bump to 3.4 and ship the 3.4.0 API surface" (e7c43a2); 3.4.5 and 3.4.20 shipped without one, so this is everything added since: 52 StackExchange.Redis entries (lag-aware availability,FailbackHealthCheck,HealthCheckProbeScope, theRedisType/KeyNotificationTypetokens from #3312), the net6.0SetUserPemCertificateoverload, and RESPite'sAsciiHash.Equals(object? obj). The three renames above are applied. Every unshipped file is now empty, which is the shape to cut a release from.Verified: no
*REMOVED*marker remains anywhere; the oldmuxer/othersignatures are gone from shipped; a second--checkrun is a no-op;dotnet build Build.csproj -c Release /p:CI=truepasses on every target framework.Note the
[SER011]entries on the BLESS (#3261) and BITRANGEINTARRAY (#3315) branches are not affected; they stay unshipped on their branches and will promote with a later release.