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

Proposed tasks to improve the OOB nuget build process in servicing branches #81974

Closed
3 of 6 tasks
carlossanlop opened this issue Feb 10, 2023 · 2 comments
Closed
3 of 6 tasks

Comments

@carlossanlop
Copy link
Member

carlossanlop commented Feb 10, 2023

The following items were discussed with @ViktorHofer and @smasher164 to improve the overall experience of servicing code from an OOB package.

Resetting GeneratePackageOnBuild to false

Currently, we reset the <GeneratePackageOnBuild> property of OOB csproj files to false in the branding PRs that get created every month when the servicing branches are opened.

If someone submits a servicing PR that modifies a package that depends on another OOB package that had its version bumped the previous month, the CI will start showing a failure in AllConfigurations stating that the nuget dependency is not found in nuget.org.

This happens because the nuget packages created the previous month have not yet been pushed to nuget (this is expected) due to the previous month's GA date (which is the day we push them) happening after the current month's Code Complete date.

The problem gets worse if we end up merging such PR, because now the failure propagates to the servicing rolling builds and subsequent PRs.

Here is an example: #81914

To prevent this problem in the future, we have decided to separate branding from resetting the property. Here are two tasks to achieve this:

  • We will write a GitHub action to automatically create a PR that finds all the csproj files under src/libraries that belong to OOB packages, and change <GeneratePackageOnBuild> to false.
  • We will trigger such GitHub action at the same time as the branding PRs are created. We would like to modify the branding scripts created by @vseanreesermsft to achieve this.

These PRs would be the last ones we would merge on the Code Complete day. We will also be able to consider the official closing of the servicing branches for that month. Doing this will prevent having the servicing rolling builds and the PR CI runs in red due to nuget failures. Note: we might have some servicing rolling builds failing, but once the nuget packages get pushed, they should go away. Additionally, we will request the possibility of aligning the GA and Code Complete dates, to prevent red builds completely.

Fail when a Microsoft.Windows.Compatibility dependency is modified

The M.W.C. package is a package with no source code that depends on a bunch of other packages. If a new version of one of its dependencies gets built, we need to make sure to also build a new version of M.W.C., and push both new packages to nuget. We currently don't have an easy way to remind ourselves to do this, and it has already happened in the past that we forget to build M.W.C. and we only hear about it after a customer asks for the update.

To prevent forgetting, we have decided to take some steps:

@ghost
Copy link

ghost commented Feb 10, 2023

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries
See info in area-owners.md if you want to be subscribed.

Issue Details

The following items were discussed with @ViktorHofer and @smasher164 to improve the overall experience of servicing code from an OOB package.

Reseting GeneratePackageOnBuild to false

Currently, we reset the <GeneratePackageOnBuild> property of OOB csproj files to false in the branding PRs that get created every month when the servicing branches are opened.

If someone submits a servicing PR that modifies a package that depends on another OOB package that had its version bumped the previous month, the CI will start showing a failure in AllConfigurations stating that the nuget dependency is not found in nuget.org.

This happens because the nuget packages created the previous month have not yet been pushed to nuget (this is expected) due to the previous month's GA date (which is the day we push them) happening after the current month's Code Complete date.

The problem gets worse if we end up merging such PR, because now the failure propagates to the servicing rolling builds and subsequent PRs.

Here is an example: #81914

To prevent this problem in the future, we have decided to separate branding from resetting the property. Here are two tasks to achieve this:

  • We will write a GitHub action to automatically create a PR that finds all the csproj files under src/libraries that belong to OOB packages, and change <GeneratePackageOnBuild> to false.
  • We will trigger such GitHub action at the same time as the branding PRs are created. We would like to modify the branding scripts created by @vseanreesermsft to achieve this.

These PRs would be the last ones we would merge on the Code Complete day. We will also be able to consider the official closing of the servicing branches for that month. Doing this will prevent having the servicing rolling builds and the PR CI runs in red due to nuget failures. Note: we might have some servicing rolling builds failing, but once the nuget packages get pushed, they should go away. Additionally, we will request the possibility of aligning the GA and Code Complete dates, to prevent red builds completely.

Fail when a Microsoft.Windows.Compatibility dependency is modified

The M.W.C. package is a package with no source code that depends on a bunch of other packages. If a new version of one of its dependencies gets built, we need to make sure to also build a new version of M.W.C., and push both new packages to nuget. We currently don't have an easy way to remind ourselves to do this, and it has already happened in the past that we forget to build M.W.C. and we only hear about it after a customer asks for the update.

To prevent forgetting, we have decided to take some steps:

Author: carlossanlop
Assignees: carlossanlop
Labels:

area-Infrastructure-libraries

Milestone: 8.0.0

@carlossanlop carlossanlop changed the title [6.0 & 7.0] Proposed tasks to improve the OOB nuget build process in servicing branches Proposed tasks to improve the OOB nuget build process in servicing branches Feb 10, 2023
@ViktorHofer
Copy link
Member

Closing as M.W.C was moved to windowsdesktop and we started using different branches for servicing.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 4, 2023
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

2 participants