aspnetcore/build
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
..
docker Ensure .NET Core runtimes are install in alpine builds to tests can run 2018-07-03 12:26:20 -07:00
lineups Merge branch 'release/2.0' into release/2.1 2018-06-01 17:08:08 -07:00
tasks Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
tools Refactor LZMA generation to support Docker and Antares usage 2018-07-06 13:15:23 -07:00
AzureIntegration.targets
GenerateCode.targets
Key.snk
PackageArchive.targets Do not restore in parallel - workaround for race condition in /t:Restore 2018-07-06 15:34:05 -07:00
Publish.targets Refactor LZMA generation to support Docker and Antares usage 2018-07-06 13:15:23 -07:00
RepositoryBuild.targets Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
SharedFx.props Refactor property names for computing .deb/.rpm file names and dependencies 2018-05-31 17:49:19 -07:00
SharedFx.targets Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
SharedFxInstaller.targets Refactor property names for computing .deb/.rpm file names and dependencies 2018-05-31 17:49:19 -07:00
artifacts.props Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
buildorder.props Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
common.props Add unit tests for the shared framework (#1228) 2018-06-27 14:56:10 -07:00
dependencies.props Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
external-dependencies.props Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
repo.beforecommon.props
repo.props Refactor LZMA generation to support Docker and Antares usage 2018-07-06 13:15:23 -07:00
repo.targets Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00
sources.props Update xunit.runner.visualstudio to 2.4.0-rc.1.build4038 2018-07-05 14:56:52 -07:00
submodules.props Implement patch policies per repo and set default to ProductChangesOnly 2018-07-12 21:33:50 -07:00