Commit Graph

15 Commits

Author SHA1 Message Date
Nate McMaster e69a47f230
Implement patch policies per repo and set default to ProductChangesOnly
Our policy since 1.0.0 has been to always cascade version updates in the packages we own. e.g. if Logging has a product change in 2.1.x, then Kestrel, EF Core, Mvc, etc also re-ship with the updated Logging dependency. This has been done for a variety of reasons:

* NuGet does not show updates for transitive dependencies, only direct ones
* NuGet does resolves the lowest compatible transitive dependencies
* ASP.NET Core ships to both .NET Framework (where transitive dependency version matters) and .NET Core (where it matters less if you use the shared framework)

While transitive dependencies is still an important scenario, this practice of always patching has led to bigger issues.

* High probability users will unintentionally upgrade out of the shared framework: #3307
* Conflicts with metapackages that attempt to use exact version constraints: aspnet/Universe#1180
* A quality perception issue: the high volume of new versions in servicing updates with only metadata changes has created the impression that new versions of packages may not be very important. It's also made it appear like there are more issues product than there really are.
* High volume of packages changing with only metadata changes. Of the last 301 packages published in a servicing update, only 11 contained actual changes to the implementation assemblies. (3.5%)

This change implements a system to verify a new, non-cascading versioning policy for servicing updates. This required changes to repos to pin version variables to that matter per-repo,
and to remove some of the restrictions and checks.

Incidentally, this should make defining new patches easier because it automatically determines which packages are or are not patching in the release.
2018-07-12 21:33:50 -07:00
Nate McMaster 6586c921f0
Fix compiler error introduced by merge conflict 2018-06-04 10:39:30 -07:00
Nate McMaster d5d1246c46
Fixup bad changes from merge 2018-06-01 17:16:43 -07:00
Nate McMaster ca4e81b975
Merge branch 'release/2.0' into release/2.1 2018-06-01 17:08:08 -07:00
Nate McMaster 695bf56afc
Run VerifyCoherentVersions check (#1156)
All packages were being ignored. This adds an error if 0 packages are found, and also fixes the folder scanned for coherence.

This also required removing the 'Private' designation from external dependencies, because we no longer scan just shipping packages,

Removed unused NoWarn metadata as well.
2018-05-08 16:51:26 -07:00
Nate McMaster 9f7e295af8
Add task to generate the repo to repo graph (#1036) 2018-04-05 13:24:49 -07:00
Nate McMaster f76d2f8d92 Update dependencies to prodcon build 20180208-05-1367307 (#867)
* Updates packages to 20180208-05-1367307 prodcon output
* Updates corefxlab packages to 0.1.0-preview1-180208-1
* Add script to automate updates from prodcon build manifest
2018-02-13 14:14:16 -08:00
Nate McMaster 88e66f2b21 Prepare the 2.0.5 patch and add task to ensure repo versions cascade 2017-12-07 22:52:46 -08:00
Nate McMaster 0ade3698b4 Identify the difference between skipped and shipped repositories 2017-12-07 22:36:44 -08:00
Nate McMaster e020988b70 Ensure Configuration is set correctly during design-time builds 2017-11-21 15:13:06 -08:00
Nate McMaster a24bed01d7 Identify the difference between skipped and shipped repositories 2017-11-10 13:46:25 -08:00
Nate McMaster 177fa71634 Copy packages to ship/noship and verify coherent versions (#560) 2017-09-18 16:44:12 -07:00
Nate McMaster 4220c516bc Ensure PackageReference versions are consistent with artifacts that will be produced 2017-09-15 14:52:47 -07:00
Nate McMaster a43fb2271e Use artifact info to correctly analyze the packages produced from a repository 2017-09-15 13:17:49 -07:00
Nate McMaster 8f25a559a5 Begin implementation of build graph analysis 2017-09-14 17:13:57 -07:00