Commit Graph

96 Commits

Author SHA1 Message Date
Pavel Krymets 2a5403b730
Add runtime project back to sharedfx project list (#8093) 2019-03-01 14:44:41 -08:00
Nate McMaster e7b00a5508
Deprecate the Microsoft.AspNetCore.App metapackage in favor of targeting and runtime packs (#7832)
* Deprecate the Microsoft.AspNetCore.App metapackage in favor of targeting and runtime packs
* Stop producing Microsoft.AspNetCore.App, and runtime.$(rid).Microsoft.AspNetCore.App
* Generate the shared framework without using 'NuGet' restore
* Stop producing intermediate packages for shared-framework only assemblies
* Put the platform manifest into the targeting pack (data/Microsoft.AspNetCore.App.PlatformManifest.txt)
* Create well-known, shared intermediate directories that installers can use to bundle content
2019-02-28 10:14:18 -08:00
Nate McMaster d2d60000eb
Create Linux installers for the aspnetcore targeting pack (#7776)
This creates 3 new build outputs:

* aspnetcore-targeting-pack-$(version).tar.gz
* aspnetcore-targeting-pack-$(version)-linux-x64.deb
* aspnetcore-targeting-pack-$(version)-linux-x64.rpm

Other changes:
* Make RPM packaging consistent with other installers. Vendor == Microsoft Corporation
* Add shared properties for building the targeting pack (or not building it in a servicing build)
2019-02-25 12:00:36 -08:00
Nate McMaster 2ac4619635
Replace custom targets for generating assembly attributes and source control info by using SDK features (#7504) 2019-02-13 10:22:03 -08:00
Nate McMaster 6081fec894
Add new build.cmd/sh options for suppressing restore, NodeJS, setting target arch and OS name, and more (#7137)
Add new command line parameters for working with the project:

* `-NoBuild`, `-NoRestore` - these already existed, but users found it hard to discover this powershell syntax: '-build:$false'
* `-Arch`/`--arch` - set the target CPU architecture to build. Defaults to x64
* `--os-name` - on non-Windows builds, manually specify if the build should target Alpine. generic Linux, or MacOS
* Rename flags used to build specific project types. The pattern now is `--build-$(group)` or `--no-build-$(group)` (In PowerShell its `-Build$(Group)` or `-NoBuild$(Group). Example: -NoBuildJava

Changes to build definitions:
* Update the ci build definition to build all supported architectures
* Support publishing multiple artifacts per job

Other changes:
* `-NoBuild` implies `-NoRestore`
* Add new properties, `TargetArchitecture`, `TargetOsName`, and `TargetRuntimeIdentifier`
* Replace usages of `SharedFxRid` with these new properties
* To make `--no-build-nodejs` actually work, replaced Components.Browser.JS.csproj with Components.Browser.JS.npmproj
* Fix errors when building for win-arm on a clean machine
* Fix a few other project errors, like using the wrong syntax for DefaultItemExcludes, or using the wrong Platform value for x86
2019-01-31 15:47:47 -08:00
Nate McMaster ac04019e42
Remove obsolete build infrastructure (#6995)
Changes:

* Remove obsolete targets which are unnecessary now that this repo no longer builds git submodules in a separate build process
* Remove the need for static analysis of 'ArtifactInfo' items
* Simplify how the code signing task is configured
* Remove unused repo tasks
* Remove duplicate lists of external dependencies and packages to be produced
* Remove obsolete build definition
* Remove obsolete build script parameters
* Add VisualStudioSetupOutputPath
2019-01-28 09:57:59 -08:00
Nate McMaster 922512a9fb
Convert the artifacts folder layout to match Arcade (#6850)
Changes:
* IsProductPackage => IsShippingPackage
* artifacts/$config/packages => artifacts/packages/$config
* packages/product => packages/Shipping
* packages/internal => packages/NonShipping
* Renamed MSBuild properties used for output folders
* Update build tools to use 2 spaces in global.json
2019-01-18 13:38:24 -08:00
Pavel Krymets 70b2ff7551 Merge remote-tracking branch 'origin/release/2.2' 2019-01-17 11:29:56 -08:00
Pavel Krymets 829cd7271e
Fix signing for 2.2 site extensions (#6777) 2019-01-17 10:42:58 -08:00
Pavel Krymets f44c175ec6
Enable logging branch SiteExtension (#6715) 2019-01-16 08:56:12 -08:00
John Luo 8f1eedf5a9 Merge branch 'release/2.1' into release/2.2 2019-01-14 19:04:39 -08:00
Pavel Krymets 8aa8c6b2b0
Build branch logging SE in main build (#6312) 2019-01-14 08:42:53 -08:00
Nate McMaster c3beb1f9b1
build.cmd/sh changes (#5958)
Update the build scripts to support building subfolders or subgroups of projects

* Add build scripts for ci
* Remove obsolete scripts
* Add flags like --test and --pack to control running just test or packaging
* Add flags like --managed and --native to control building sub-types of projects
* Remove KoreBuild bootstrapper flags
* Update to extensions 3.0.0-preview.18619.1 (needed to get a fix for aspnet/Extensions#815 to make this change work on MSBuild.exe)
2018-12-20 16:52:15 -08:00
Nate McMaster 686ce02cc8
Remove code for building an analyzers package that never shipped (#6053)
Microsoft.AspNetCore.Analyzers didn't ship in 2.1, and we don't have plans to every ship it in a 2.1.x release.
2018-12-20 10:53:42 -08:00
Pavel Krymets 19c8980deb
Move SiteExtension sdk into AspNetCore (#6041) 2018-12-20 10:25:35 -08:00
Pavel Krymets d585469b05
Set BuildInParallel=false for sharedfx packing (#6017) 2018-12-19 13:56:35 -08:00
Nate McMaster 691ab4b37d
Allow disabling the site extension projects (#6010) 2018-12-19 13:23:40 -08:00
Pavel Krymets 55b8818540
Move logging site extension (#4005) 2018-12-19 09:35:06 -08:00
Nate McMaster 335c9be7b4
Update the artifacts directory organization and simplify publishing targets (#5701)
This simplifies the way that we publish files to our network drop share.

Changes:
* Instead of explicitly listing every file that needs to publish, use directories to classify packages and artifacts into different categories.
* Add documentation for the expected layout of artifacts/
* Remove the need for static analysis to determine which packages go to which project
* Add the MSBuild property "IsProductPackage" to .csproj files which ship as a package to NuGet.org.
2018-12-18 11:40:13 -08:00
Nate McMaster 85e2147ff0
Merge branch 'release/2.2' 2018-12-07 11:11:44 -08:00
Nate McMaster 569a14ecb8
Merge branch 'release/2.1' into release/2.2 2018-12-06 17:09:03 -08:00
Nate McMaster 1b9a6b093d
Replace PackNuspec with a dummy .csproj file 2018-12-05 17:59:29 -08:00
Justin Kotalik 736083c2f2
Make HttpSys use ProjectReference and move HttpSys into Servers folder (#4335) 2018-12-04 16:44:07 -08:00
Nate McMaster 0e12274a8e
Flatten the dependency graph of Microsoft.AspNetCore.App (#4061)
This changes the way Microsoft.AspNetCore.App works to follow patterns set by Microsoft.NETCore.App. Instead of being a metapackage with dozens of dependencies, this package has no dependencies. It uses RID-splitting to deliver standalone assets for self-contained deployments.

Changes:
* Implements RID-split packages for Microsoft.AspNetCore.App.
* Update shared fx deps.json generation to only include entries for the RID-specific metapackages
* Include platform-specific packages in publish output
* Remove all nuspec dependencies of Microsoft.AspNetCore.App and collect all references into the package.
2018-11-16 15:16:15 -08:00
Nate McMaster 6cc9f6f130
Merge release/2.2 and replace submodules
* Replace the aspnet/JsonPatch git submodule and merge the master branch of its source to this repo
* Likewise for aspnet/DotNetTools
* And aspnet/HtmlAbstractions
* merge latest infrastructure changes from the release/2.2 branch
2018-11-14 22:57:10 -08:00
Nate McMaster c1c7d711b6
Merge branch 'release/2.1' into release/2.2 2018-11-14 09:27:23 -08:00
Nate McMaster 59ed8df382
Add targets and tools for ensuring consistent package versions between servicing builds 2018-11-09 13:05:31 -08:00
Pavel Krymets 89a3526769
Move runtime site extension to installers (#3954) 2018-11-08 14:13:07 -08:00
Nate McMaster cb85ffa8f6
Merge branch 'release/2.2' 2018-11-02 10:10:49 -07:00
Nate McMaster 27deb6f6f8
Remove dependency on Docker from MSBuild targets (#3866)
Changes:
* This removes MSBuild targets which invoke `docker` commands to build
   deb and rpm installers
* Remove installer targets from the KoreBuild context. Put them into
   separate project files
* Simplify the targets used to build installers by reducing duplicate
   variable names and deeply nested MSBuild contexts
* Remove unused dependencies from the Docker build context
2018-11-01 15:02:29 -07:00
Nate McMaster 178d4e63a8
Merge branch 'release/2.2' 2018-10-31 18:03:26 -07:00
Nate McMaster ee0a11d048
Update code signing configuration to account for crossgen-ed assemblies (#3783)
* Update code signing configuration to automatically skip files in Microsoft.NETCore.App
* Update code signing configuration to account for crossgen-ed assemblies
2018-10-31 18:01:32 -07:00
Nate McMaster 51c32dc4dc
Merge branch 'release/2.2' 2018-10-31 14:39:34 -07:00
Nate McMaster 569016c2c5
Code sign all packages in a single batch (#3778)
Changes:
* Sign shared fx zips
* Sign metapackages
* Disable signing on inner repo builds and instead sign all packages at the end
* Add a list of files from other Microsoft teams which can be excluded from signing
* Add a list of 3rd party assemblies which are bundled in the shared frameworks.
2018-10-31 12:12:15 -07:00
Nate McMaster c2e9ca24d3
Update build tools to 2.2.0-preview2-20181031.2 2018-10-31 10:04:25 -07:00
Nate McMaster 0ba800841b
Ensure build output is still present when crossgen is disabled
* Split targets for copying outputs and preparing the crossgen tool
* Fix version override check by only looking at the 'pinned' section
2018-10-26 16:00:48 -07:00
Nate McMaster b78ee81a1e
Flow DotNetRestoreSourcePropsPath and DotNetPackageVersionPropsPath into the shared framework build steps 2018-10-26 10:44:47 -07:00
Nate McMaster 77a3089c8d
Workaround quirks in NuGet
* Disable package analysis because it incorrectly issues NU5109 on macOS, but not windows
* Normalize file paths because if you mix slashes, NuGet will just skip the entire folder
* Normalize the project path given to restore. If it not normalized, restore skips the project and issues a warning
2018-10-25 14:27:46 -07:00
Nate McMaster dbc28c523e
Avoid double restores by invoking NuGet.targets directly 2018-10-25 13:28:19 -07:00
Nate McMaster a8a3f99f1a
Skip restore on .zipproj files
Attempting to workaround a race condition in /t:Restore when building the shared framework projects
2018-10-25 10:36:18 -07:00
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 c37a332a6a
Merge branch 'release/2.1' into release/2.2 2018-10-12 16:56:47 -07:00
Nate McMaster f09aa6eacb
Backport cleanups to infrastructure
* Fix README links to use https
* Add a bigger timeout to PushToBlobFeed
* Remove hard-coded restore source for the 2.1.4 build
* Fail the build if korebuild.json cannot be parsed
* Fix output path for sharedfx .tar.gz files to avoid max path issues
2018-10-12 16:36:34 -07:00
Nate McMaster fb3f5d95c2
Backport infrastructure changes and source reorganization
* Add build definition for Azure DevOps
* Put code for metapackages in a subfolder
* Update targets to prepare for submodules merging into this repo
* Add source code for windows installer
* Add source code for Debian installers
2018-10-12 13:59:43 -07:00
Nate McMaster 84c8c61d79
Remove temporary exclusion to output path adjustments 2018-08-20 16:29:59 -07:00
Nate McMaster d93aded1c0
Remove package version from the output path for shared runtime archives 2018-08-20 16:27:48 -07:00
Nate McMaster 28d4064cba
Add a build definition for compiling Universe in VSTS 2018-08-20 16:02: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
Nate McMaster 71de7a98f5
Merge branch 'release/2.1' into release/2.2 2018-07-05 10:21:51 -07:00