Commit Graph

29 Commits

Author SHA1 Message Date
Nate McMaster 555f10b5f9
Fix #650 - remove the BuildGraphOf property (#1302) 2018-08-10 09:42:43 -07:00
Nate McMaster 2e96271e69
Merge branch 'release/2.1' into release/2.2 2018-07-25 09:29:48 -07:00
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
Doug Bunting f47e86439d Support packages both built in Universe and used as external dependencies
- `AnalyzeBuildGraph` fix should correct Update Universe build break
- `VerifyCoherentVersions` fix should correct UniverseCoherence build break

nits:
- add and rename a couple of variables for clarity and reduced repetition
- remove and sort `using`s
2018-06-23 00:34:33 -07:00
Nate McMaster 3fa5a7cd79
Fix ArgumentOutOfRangeException in analyzing the build graph 2018-04-13 09:33:28 -07:00
Nate McMaster aff2d08d04
Remove unused external dependencies (#1043) 2018-04-09 09:57:57 -07:00
Pavel Krymets f828c9d6aa
Merge release/2.1 into dev (#1030) 2018-04-03 10:45:17 -07:00
Nate McMaster 349acb5bb3
Condense restore feed configuration to single location and remove package mirroring (#945) 2018-03-13 10:56:09 -07:00
Nate McMaster 0b2f053ad8 Fix #785 - publish nuget packages and the shared runtime at the same time 2018-02-07 14:40:08 -08:00
Nate McMaster 804ab764c2 Re-enable the version consistency check 2017-12-13 10:49:48 -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 ee5178160e Account for .Sources packages when computing the repo graph 2017-11-09 14:08:13 -08:00
Nate McMaster 3d4d724b6f Remove unused tasks and make inconsistent package versions a warning not error 2017-11-09 11:30:43 -08:00
Nate McMaster c8068b7d1c Use submodules for source dependencies
As a part of making builds more reproducible, we want to start committing the exact sha of source dependencies used to build aspnetcore. This implements that using git submodules, and removes targets that were previously used to clone source on demand.
2017-10-11 15:48:50 -07:00
Nate McMaster c76125af0e Add previously-built aspnetcore artifacts as external dependencies 2017-10-09 12:55:14 -07:00
Nate McMaster 611b6a23ad Update how PackageReference versions are set
Changes:
 - Remove floating versions
 - Disable myget feeds during a Universe build
 - Use package-specific MSBuild variables. Pattern = `packageId.Pascalize() + "PackageVersion"`, with a few exceptions.
 - Remove myget feeds during build
 - Remove obsolete 'GenerateLineup' targets/tasks
2017-10-09 11:32:21 -07:00
Nate McMaster 951dc99d5b Verify external dependencies (#561) 2017-09-20 14:58:15 -07:00
Nate McMaster 351156f455 Include DotNetCliToolReference's when computing the build order 2017-09-18 14:04:24 -07:00
Nate McMaster 4924f79efc Update PackageReferences to non-floating versions when building multiple repos 2017-09-18 12:05:12 -07:00
Nate McMaster 51dbdbeac2 Code cleanup 2017-09-18 11:15:51 -07:00
Nate McMaster a10ba83751 Add /t:UpdateRepoLineups which will automatically update the build/dependencies.targets file with appropriate versions 2017-09-18 10:33:48 -07:00
Nate McMaster dc50526a6d Rename target, remove unused parameter, and add comments to the AnalyzeBuildGraph task 2017-09-18 09:37:12 -07:00
Nate McMaster 7568441acc Update analysis to account for non-shipping package references (samples, tests) 2017-09-15 17:45:55 -07:00
Nate McMaster a0547c7b9f Generate a file that contains all of the dependencies and their versions 2017-09-15 16:10:24 -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 8276bd163e Analyze repository build order from AnalyzeBuildGraph 2017-09-15 11:12:02 -07:00
Nate McMaster 8f25a559a5 Begin implementation of build graph analysis 2017-09-14 17:13:57 -07:00