Skip to content
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

Update global.json default SDK roll-forward behaviour #77614

Closed
Tracked by #77456
elinor-fung opened this issue Oct 28, 2022 · 7 comments
Closed
Tracked by #77456

Update global.json default SDK roll-forward behaviour #77614

elinor-fung opened this issue Oct 28, 2022 · 7 comments
Milestone

Comments

@elinor-fung
Copy link
Member

Currently, if the SDK version is specified in global.json, the default behaviour is to roll forward only on patch versions. We should change this default to roll-forward to latest major for 8.0+.

See https://github.com/dotnet/designs/blob/main/accepted/2022/version-selection.md#default-sdk-roll-forward-behavior

@elinor-fung elinor-fung added this to the 8.0.0 milestone Oct 28, 2022
@ghost
Copy link

ghost commented Oct 28, 2022

Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov
See info in area-owners.md if you want to be subscribed.

Issue Details

Currently, if the SDK version is specified in global.json, the default behaviour is to roll forward only on patch versions. We should change this default to roll-forward to latest major for 8.0+.

See https://github.com/dotnet/designs/blob/main/accepted/2022/version-selection.md#default-sdk-roll-forward-behavior

Author: elinor-fung
Assignees: -
Labels:

area-Host

Milestone: 8.0.0

@vitek-karas
Copy link
Member

@richlander @marcpopMSFT does it still sound good to make this change? (in 8 now).

@marcpopMSFT
Copy link
Member

Do we want this change? I would not expect this to be the rollforward behavior customers want. If they are specifying an SDK, I'd assume they want that feature band.

@vitek-karas
Copy link
Member

I think the main worry is for cases where the project asks for 6.0, but the machine only has 7.0 SDK - in which case it won't build at all. We could go with just Major which should use 6.0 when available and if not allow roll forward over major version as well. But I'll leave it up to Rich as this was his idea originally.

@alexrp
Copy link
Contributor

alexrp commented Dec 17, 2022

FWIW, in every project where I set the SDK version in global.json, it's because I want the development environment to be as predictable as humanly possible. I think that's a good engineering principle in general.

Just yesterday, updating one of my projects from 7.0.100 to 7.0.101 resulted in a build break because CA1819 suddenly fired on some code that it didn't previously. We're all only human and so breakage like this is going to slip through every so often. But it does mean that even the current default roll-forward behavior is questionable to me, let alone the proposed behavior here.

@marcpopMSFT
Copy link
Member

Updating a patch version should not add a new CA rule. @jaredpar any ideas on CA1819 as reported above? going from feature band to feature band can bring in some changes like that as teams don't always wait for the major release to introduce new warnings though we're working on trying to tie new warnings to TFM opt-ins to help avoid that update breaking things.

I don't think customers who use global.json would want to pin to a precise version and never roll-forward at all as then you're never getting security updates which seems more critical than the predictability principal.

@agocke agocke added this to AppModel Jul 10, 2023
@elinor-fung
Copy link
Member Author

Not going to be doing this now.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Archived in project
Development

No branches or pull requests

4 participants