Commit Graph

83 Commits

Author SHA1 Message Date
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
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
Nate McMaster 62ea0264e4
Ensure trx logging is reported correctly when building in TeamCity 2018-07-05 10:14:35 -07:00
Nate McMaster a7811c5656
Ensure .NET Core runtimes are install in alpine builds to tests can run 2018-07-03 12:26:20 -07:00
Nate McMaster d2d9a47686
Invoke dotnet vstest directly instead of using the VSTest target
Attempt to workaround Microsoft/vstest#1503 which causes test failure output to be swallowed
2018-07-03 10:08:25 -07:00
Nate McMaster 91a1d2de50
Add unit tests for the shared framework (#1228)
Changes:
* Add a test project with simple unit tests for the shared framework
* Add root-level Directory.Build.props/targets files
* Cleanup .csproj files to reduce duplication
2018-06-27 14:56:10 -07:00
Nate McMaster 10dff2410f
Fix tests on linux-musl-x64 2018-06-08 16:58:48 -07:00
Nate McMaster b1b92385c0
Add unit tests for the shared framework
Changes:
* Add a test project with simple unit tests for the shared framework
* Add root-level Directory.Build.props/targets files
* Cleanup .csproj files to reduce duplication
2018-06-08 10:33:31 -07:00
Nate McMaster ca73b4aa18
Merge branch 'release/2.1' into dev 2018-06-08 10:30:32 -07:00
Nate McMaster cf24fb23e7
Fix bug in generating .version file in the shared frameworks 2018-06-07 11:42:27 -07:00
Nate McMaster f9e6ebfd51
Merge branch 'release/2.1' into dev 2018-05-31 12:42:06 -07:00
Nate McMaster 309e9e3077
Widen dependency version range on Microsoft.AspNetCore.App to allow patch updates (#1186)
Originally, we thought using exact version ranges on the dependencies of Microsoft.AspNetCore.App
would help protect consumers from lifting binaries out of the shared framework. However,
this makes it difficult for consumers to use packages that share a dependency with .App.
When users tried to mix Microsoft.EntityFramework.SQLite 2.1.1 with Microsoft.AspNetCore.App 2.1.0,
NuGet errors and warnings made it difficult to reason about what was wrong, and how to resolve it.

This changes the dependency version range to allow uses to upgrade within the major.minor patch family
without needing to override NuGet warnings. This removes some of the protections against users
unintentionally lifting to a binary newer than the shared framework, however, after lots of discussion,
we believe this is a better user experience.
2018-05-31 12:40:52 -07:00
Nate McMaster 6beb419a02 Upgrade metapackages, shared framework, and installers to netcoreapp2.2 2018-05-09 11:51:06 -07:00
Nate McMaster fd9a93a35a
Upgrade to SQLitePCLRaw 1.1.11 (#1134)
This contains support for the linux-musl-x64 RID.
2018-05-02 17:35:46 -07:00
Nate McMaster fefae2682b
Add linux-musl-x64 shared runtime (#1104) 2018-04-23 16:57:33 -07:00