-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pin assembly versions to prevent revving those in servicing releases #6101
Conversation
59b92d1
to
f48a6bd
Compare
f48a6bd
to
e969e79
Compare
Co-authored-by: ThomasGoulet73 <51839772+ThomasGoulet73@users.noreply.github.com>
There's still a risk that some customers building on 6.0.2+ and trying to run on 6.0.0 and 6.0.1 will still have issue, but | ||
those issues can be mitigated with a workaround described in https://github.com/dotnet/core/issues/7176. | ||
--> | ||
<AssemblyVersion>$(MajorVersion).$(MinorVersion).2.0</AssemblyVersion> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as on the WinForms PR, using the .2
patch version should be conditioned on whether we're building for 6.0, and should not apply to 7.0 and forwards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Version here must be 6.0.0.0 or simply 6.0. At least from my point of view and past experience with version pinning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as on the WinForms PR, using the
.2
patch version should be conditioned on whether we're building for 6.0, and should not apply to 7.0 and forwards.
This is a 6.0 branch. For the 7.0 branch it is locked at Major.Minor.0.0, see #6099.
Is there a situation where you expect 6.0 spill into another branch?
Is it really? In my mind 6.0.2 is already broken. Why can't you roll the version back to 6.0.0? We now don't have to ensure people have .NET 6 installed, but also have the very latest version of it installed. People have to change their build systems or code just to use a class library built with the latest VS. |
If we roll back to 6.0.0.0 - we will have 6.0.2 release broken, and any artifacts produced against 6.0.2 will require a recompilation (app, dlls, NuGets). |
@dotMorten To add to what @RussKie said:
So that's some of the reasoning behind why we think the least bad thing to do is to probably leave the version numbers at 6.0.2. |
Approved over email |
Resolves dotnet/core#7172 (comment)
This is a complimentary work to dotnet/winforms#6667
Proposed changes
This assembly versions pinning is similar to https://github.com/dotnet/runtime/blob/bbc766a7c65716305919bc691d696b1e46fa6f62/eng/Versions.props#L14 and https://github.com/dotnet/aspnetcore/blob/c0575788ecadd6e5cfeb4eab635c13b5fd433d37/Directory.Build.targets#L88.
Customer Impact
Currently WPF applications built against 6.0.2 won't run on 6.0 GA or 6.0.1
With the fix applications, libraries or NuGets built against 6.0.2 or later can work. Any applications built on 6.0.2 or later that need to target 6.0.0 or 6.0.1 will need to use the workaround provided in dotnet/core#7176. It is not ideal, but is believed to have a lesser impact than going back to 6.0.0.0 versions, and have 6.0.2 broken.
Regression?
Risk
In general, since 6.0.1 and 6.0.2 are security releases, customers are encouraged to update to the latest version.
Screenshots
Before
6.0.1
6.0.2
After
A private build for this fix: