Commit Graph

37 Commits

Author SHA1 Message Date
Nate McMaster 968df9578b
Refactor shared framework projects targets and project layout (#3703)
This refactors the targets used to build the shared framework and its .zip files. There are lots of reasons motivating this: Arcade convergence, migration to VSTS, making it easier to build this locally, etc.

Changes:
* Moves move content of build/Sharedfx.{props/targets} into eng/targets/SharedFx.Common.{props/targets}
* Update the build to produce a `runtime.$rid.Microsoft.AspNetCore.App` package (not just the one with symbols in it)
* Refactor the targets which produce .tar.gz/.zip files into separate projects in `src/Installers/`
* Refactor installers, unit tests, and the framework projects to use ProjectReference to flow dependencies between different parts of the build.
* Makes it easier to build the shared framework locally (for the inner dev loop, you can run `dotnet build -p src/Framework/Microsoft.AspNetCore.App/src/ -r win-x64`)
2018-10-24 15:42:06 -07:00
Nate McMaster eaad1eb3aa
Remove tasks for analyzing the repo graph (#1469)
As a part of converging repos, we no longer need this code. It is currently buggy and slow, and we can get away without by hard-coding the repo graph (which rarely changes)
2018-10-09 12:01:41 -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
Nate McMaster bf03fee4be
Refactor LZMA generation to support Docker and Antares usage
List explicitly as .csproj files the scenarios for which the offline package cache is important

Produces new artifacts designed for various scenarios, such as:
 * Docker (where xml doc files are not needed)
 * Azure web apps (where 1.x SDKs must still be supported, but xml docs are not needed)
2018-07-06 13:15:23 -07:00
John Luo 25bbb466db Create compressed delta lzma for antares
- The delta lzma is packaged as a zip
- Only new content that's not present in the LKG lzma is included
- Xmls are removed
2018-06-08 11:08:09 -07:00
Nate McMaster da8ca36fe8
Pin to stable 2.1.0 corefx packages (#1188)
* Pin to stable 2.1.0 corefx packages
* Ensures ProdCon overrides passed to us match our expectations about which variables will be set
2018-05-30 13:42:36 -07:00
Nate McMaster faf600ce71
Fixup the effect of cascading versions (#1187)
The PR #1175 was incomplete. This fixes the cascading effect of patching to 2.1.1

Changes:
 - add CheckRepoGraph (ported directly from the release/2.0 branch)
 - Update submodules
2018-05-30 10:58:10 -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 0f765534cb
Remove duplicate copies of files from artifact output 2018-03-23 16:37:40 -07:00
John Luo 1ce0e6ecdf Add lzma repo task 2018-03-13 12:25:22 -07:00
= c45864d299 Remove HostingStartup infrastructure from Universe 2018-03-05 12:23:59 -08:00
Nate McMaster 68b3df8fe9
Don't ship global CLI tool packages to nuget.org or put into LZMA (#906) 2018-02-22 14:49:24 -08:00
John Luo b7c61128af Resolve portable pdbs from symbols packages 2018-02-13 14:17:57 -08:00
Nate McMaster 05174814f6
Ensure the LZMA includes CLI global tools .nupkg, nupkg.sha512, and .nuspec files (#829) 2018-01-30 15:22:31 -08:00
Nate McMaster 723e2d854d
Update publish to include more metadata in the manifest (#826)
* Update publish to include more metadata in the manifest
* Update build tools to 2.1.0-preview1-1009
2018-01-30 13:36:39 -08:00
Nate McMaster baa665db81
Include global CLI tool packages in the LZMA (#809)
Fixes #803
2018-01-25 18:04:40 -08:00
Nate McMaster 230e4a02ef
Split compilation and tests into separate phases (#779)
* Split compilation and tests into separate phases
* Ensure template tests are skipped, and reduce duplication between test/build repo targets
* Show summary at the end of which repos failed
2018-01-12 09:46:36 -08:00
Nate McMaster a54852fe6e Add targets to deploy all known installers to an azure blob feed
- Add PublishToAzureBlob task
 - Move badge/version txt file generation to publish step
2018-01-08 18:23:24 -08:00
= 83d26d660e Remove runtime store related build steps 2018-01-08 11:51:04 -08:00
John Luo e0daa126e2 Produce aspnetcore shared framework 2017-12-05 12:15:30 -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 4bb84cf6d0 Ensure the deb/rpm installers use the same dotnet-core version
- Remove unnecessary tasks and scripts
 - Ensure the KOREBUILD_DOTNET_* environment variables are preserved in the docker build context
 - Other MSBuild cleanup of the targets
2017-10-17 15:46:53 -07:00
= a4e87d1dd8 Build runtime store installers
- hosting tar.gz archives
- rpm installers for generic and red hat
- deb installers for debian.8, ubuntu 14.04, ubuntu 16.04, ubuntu 16.10

Create hosting targz archives
2017-10-13 17:00:46 -07:00
John Luo 91d4be47b9 Produce separate reference package for runtime store generation 2017-10-12 19:12:37 -07:00
John Luo afba40b573 Build LZMA
- Update metapackage reference insertion
2017-10-11 16:11:12 -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
= 11b25e7c87 Build and pack Runtime Store
- Also add targets to build all metapackage.
2017-10-02 16:43:30 -07:00
Nate McMaster 372be2f638 Generate and set DotNetRestoreSourcePropsPath 2017-10-02 14:12:41 -07:00
Nate McMaster d2e49a726c Generate the package version props file 2017-09-29 14:39:58 -07:00
Nate McMaster 8922f69532 Mirror external dependencies 2017-09-20 15:05:21 -07:00
Nate McMaster 177fa71634 Copy packages to ship/noship and verify coherent versions (#560) 2017-09-18 16:44:12 -07:00
Nate McMaster 4fa08287a2 Remove dead code and ensure source code is cloned when building on CI 2017-09-18 12:39:27 -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 8f25a559a5 Begin implementation of build graph analysis 2017-09-14 17:13:57 -07:00
Nate McMaster 52757943ac Backport improvements from dev branch to repo tasks
- CalculateBuildGraph
 - PinVersion tool
 - Ensuring sub-repositories build with the same version of KoreBuild executing in Universe
2017-09-14 15:23:27 -07:00
Nate McMaster 9eb27fa53f Stub out a task to validate cascading version effects (#557) 2017-09-14 14:48:11 -07:00
Pranav K aa25401a50 Make the calculation of the build graph a task so we can pass metadata around 2017-07-11 18:51:46 -07:00