-
Notifications
You must be signed in to change notification settings - Fork 162
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
Version selection improvements #259
Conversation
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Omair Majid <omajid@redhat.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
|
||
Ideally, organizations could adopt the following approach for runtime management in their environments: | ||
|
||
- Adopt and deploy new .NET versions into their environments quickly, with no impact on existing applications (already the case). |
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.
Did you want to cover the case of customers who want multiple apps running on multiple different runtime versions on the same server like some internal partners we have?
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.
Isn't that the same scenario? The implication here is that the new .NET version is for another app.
accepted/2022/version-selection.md
Outdated
The most problematic behaviors today are: | ||
|
||
- [Multi-level lookup](https://github.com/dotnet/sdk/issues/12353) can result in the global install location being used when a private location is intended. | ||
- `global.json` defaults to no roll-forward by default, for the specified SDK version. This results in very fragile environments, by default. Instead, the version specified should be a version floor by default. |
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.
Also, we have a problem with rollforward and previews today though that may only affect .NET teams. Not sure if that should be included or not.
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.
Can you elaborate? You mean that we roll-forward to previews by default and we could reconsider that as part of his change?
accepted/2022/version-selection.md
Outdated
} | ||
``` | ||
|
||
The feature bands have a reason to exist. With each feature band (`.200`, `.300`, ...), there is typically a significant update in a tools component like Roslyn, MSBuild, or NuGet. There may be compatibility breaks. However, if there are significant breaks, that's probably something that needs to resolve. The feature bands are not intended for intentional breaking changes. |
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.
The SDK doesn't include intentional breaking changes in feature bands but tools have no awareness of feature bands. They treat them as VS releases and hold to no requirement of their being no breaking changes. We've been hit by this in the past where we thought the feature band was low risk but it turned out a change in nuget or roslyn was more significant. We may want to consider how to reconcile this with other tools teams as we can't limit them to one breaking change release a year but also don't want every feature band release to include customer risk.
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.
I feel like your comment and the text are saying the same thing. No?
Summary of significant changes:
global.json
SDK version to a floor version, as opposed to the current pinning behavior.PATH
SDK.Dependency on: https://github.com/dotnet/designs/blob/main/accepted/2022/disable-multi-level-lookup-by-default.md