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

[macOS, Windows] .NET SDK pre-installation policy will be changed on September, 6 #3809

Closed
4 of 7 tasks
AlenaSviridenko opened this issue Jul 28, 2021 · 2 comments
Closed
4 of 7 tasks

Comments

@AlenaSviridenko
Copy link
Contributor

AlenaSviridenko commented Jul 28, 2021

Breaking changes

The .NET versions maintenance strategy will be changed on Window and macOS images. Currently, we install all available and supported versions of .NET SDK (2.1.x, 3.1.x, 5.0.x). This approach will be changed in favor of installing the latest patch version for every feature version.

What does it mean?

The SDK version is composed of the following parts: x.y.znn. z is the feature version and nn is the patch version. For example, for version 2.1.302, feature version is 3 and 02 is the patch version.

According to the new approach we will only install the latest patch version for every feature version, i.e. only 2.1.302 will be installed for 2.1.3x, only 2.1.403 for 2.1.4x and etc.
All versions of the .NET SDK that are not the latest patch versions will be removed from Windows and macOS images on September, 6

Target date

Image deployment will start September, 6 and will take 3-4 days.

The motivation for the changes

We are reconsidering the .NET SDK preinstallation policy on images to provide more free space for customers usage and new tools requests, and also speed up image generation and hence the deployment process. We already applied this policy to the Ubuntu images, and it works pretty good there.

For more information related to software and images support policy please see the Software and image guidelines doc.

Possible impact

If you use the actions/setup-dotnet action or the UseDotNet task, you will not be affected. Also, if you don't use the global.json file to specify .NET SDK version, there will be no changes for you.

If you use the global.json file, your build will be affected in the following cases:

  1. Your build will fail, if the global.json file contains the rollForward: disable property and SDK version that is not the latest patch version, for example:
{
  "sdk": {
    "version": "3.1.100",
    "rollForward": "disable"
  }
}
  1. .NET SDK version will be automatically changed to the latest patch if the global.json file contains the rollForward: patch property and SDK version that is not the latest patch version, for example:
{
  "sdk": {
    "version": "3.1.100",
    "rollForward": "patch"
  }
}

If the rollForward field is not specified in your global.json file, there will be no changes for you. The latest installed patch level is used.

Please visit the global.json overview doc to learn more about the global.json schema and matching rules.

Virtual environments affected

  • Ubuntu 16.04
  • Ubuntu 18.04
  • Ubuntu 20.04
  • macOS 10.15
  • macOS 11
  • Windows Server 2016
  • Windows Server 2019

Mitigation ways

For using the exact .NET SDK version, please consider using actions to install it on-flight:

  1. GitHub Actions: actions/setup-dotnet action
steps:
- uses: actions/checkout@main
- uses: actions/setup-dotnet@v1
  with:
    dotnet-version: '<dotnet version>'
- run: dotnet build <my project>
  1. Azure DevOps: UseDotNet task
steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk'
  inputs:
    version: <dotnet version>
@catthehacker
Copy link
Contributor

That should also resolve .NET install time discussion: #2367

@AlenaSviridenko AlenaSviridenko changed the title [macOS, Windows] .NET SDK pre-installation policy will be changed on September, 5 [macOS, Windows] .NET SDK pre-installation policy will be changed on September, 6 Jul 28, 2021
@AlenaSviridenko AlenaSviridenko pinned this issue Jul 30, 2021
@actions actions deleted a comment Aug 19, 2021
@actions actions deleted a comment Aug 19, 2021
@MaksimZhukov MaksimZhukov self-assigned this Aug 30, 2021
@MaksimZhukov MaksimZhukov added the awaiting-deployment Code complete; awaiting deployment and/or deployment in progress label Sep 6, 2021
@MaksimZhukov
Copy link
Contributor

All the images have been deployed.

@MaksimZhukov MaksimZhukov removed the awaiting-deployment Code complete; awaiting deployment and/or deployment in progress label Sep 11, 2021
@miketimofeev miketimofeev unpinned this issue Sep 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants