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

Fix 3.0/3.1 targeting pack servicing skip infrastructure to allow for prerelease servicing builds #639

Closed
dagood opened this issue Dec 2, 2019 · 3 comments

Comments

@dagood
Copy link
Member

dagood commented Dec 2, 2019

This infra only activates for stable builds:

https://github.com/dotnet/core-setup/blob/9898068272cde5d004dec24e2fcabf9f4565ce9b/eng/Versions.props#L39-L43

The original intent was to avoid applying this during pre-GA preview builds, where we always want to publish a new targeting pack.

However, we want to apply the infra while building prerelease-versioned servicing builds as well (e.g. 3.1.1-servicing.19576.4) so that they keep using the previously released stable build.

Until then, we need to go back to pinning.

See discussion: dotnet/installer#5814 (comment)

@dagood dagood self-assigned this Dec 2, 2019
@dagood dagood transferred this issue from dotnet/core-setup Dec 6, 2019
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-Infrastructure-installer untriaged New issue has not been triaged by the area owner labels Dec 6, 2019
@dagood dagood removed the untriaged New issue has not been triaged by the area owner label Dec 6, 2019
@dagood dagood added this to the 5.0 milestone Dec 6, 2019
@dagood
Copy link
Member Author

dagood commented Jan 14, 2020

Note that we should fix the infra in 3.0/3.1, but the solution should also be applied to master here in dotnet/runtime and also in dotnet/windowsdesktop.

@dagood
Copy link
Member Author

dagood commented Jan 17, 2020

@NikolaMilosavljevic @nguerrera @wtgodbe @mmitche @MichaelSimons

I think the right fix is remove the condition entirely from the settings.

-  <ItemGroup Condition="'$(StabilizePackageVersion)' == 'true'">
+  <ItemGroup>
     <ProjectServicingConfiguration Include="Microsoft.NETCore.App.Ref" PatchVersion="0" />
     <ProjectServicingConfiguration Include="NETStandard.Library.Ref" PatchVersion="0" />
   </ItemGroup>

With this:

  • During master builds, patch version for Microsoft.NETCore.App is always 0, so it gets built.
  • When release/5.0 forks, patch stays 0, so it keeps getting built.
    • After releasing 5.0.0, version advances to 5.0.1, and optionally becomes 5.0.1-servicing-12345. This disables the targeting pack build due to the patch version not matching, as desired.
    • Enabling it is same as always, set PatchVersion="1" to make it match

NETStandard is harder to think about because ideally it wouldn't be in this repo in the first place. Right now:

  • dotnet/runtime master produces 2.1.0-alpha-...
  • dotnet/core-setup release/3.0 is set up to produce 2.1.1 (disabled by PatchVersion="0")
  • dotnet/core-setup release/3.1 is set up to produce 2.1.1 (disabled by PatchVersion="0")

It's strange that dotnet/runtime master is producing new NETStandard 2.1.0-alpha targeting packs, even though 2.1.0 is already released.

I would argue that dotnet/runtime master should be set up to produce NETStandard 2.1.1, 2.2.0, or nothing at all. We can also set it up as 2.2.0 but still disable it using PatchVersion="N/A".

@dagood
Copy link
Member Author

dagood commented Jan 29, 2020

Fixed in dotnet/runtime for 5.0+ by #2291.
core-setup 3.0: dotnet/core-setup#8991
Fixed in core-setup 3.1: dotnet/core-setup#8992

I've opened #2294 to independently decide whether to keep building NETStandard in master.

@dagood dagood removed their assignment Jul 1, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants