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

[Ubuntu] .NET SDK pre-installation policy will be changed on June 14 #3338

Closed
3 of 9 tasks
MaksimZhukov opened this issue May 7, 2021 · 2 comments
Closed
3 of 9 tasks

Comments

@MaksimZhukov
Copy link
Contributor

MaksimZhukov commented May 7, 2021

Breaking changes

The .NET versions maintenance strategy will be changed on Ubuntu 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 Ubuntu images on June 14

Target date

Image deployment will start June 14 and will take 3-4 days.

The motivation for the changes

We are reconsidering the .NET SDK preinstallation policy on Ubuntu images to provide more free space for customers usage and new tools requests.

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 change 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 change 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.13
  • macOS 10.14
  • macOS 10.15
  • macOS 11.0
  • Windows Server 2016 R2
  • Windows Server 2019

Mitigation ways

If you need to use the exact .NET SDK version that is not the latest patch, 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>
@dsame
Copy link
Contributor

dsame commented Jun 15, 2021

The PR merged and will be available on the next image roll out

@miketimofeev miketimofeev added the awaiting-deployment Code complete; awaiting deployment and/or deployment in progress label Jun 15, 2021
@miketimofeev
Copy link
Contributor

The images with reduced .NET packages count were deployed

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

4 participants