Commit Graph

42 Commits

Author SHA1 Message Date
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 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 cf24fb23e7
Fix bug in generating .version file in the shared frameworks 2018-06-07 11:42:27 -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 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
Nate McMaster 699d17fdeb
Don't generate crossgen symbols if the framework is not crossgen-ed 2018-04-06 15:02:32 -07:00
Nate McMaster 50ce20f0f9
Generate an arm32 shared framework without crossgen (#1037) 2018-04-06 13:49:22 -07:00
Justin Kotalik fd6c217336 Revert "Build runtime specific metapackages"
This reverts commit ec184bc361.
2018-03-30 13:02:45 -07:00
John Luo ec184bc361 Build runtime specific metapackages 2018-03-23 13:40:27 -07:00
Nate McMaster c569d163c4
Filter osx from symbols packages and include npm artifacts in prodcon 2018-03-22 15:20:10 -07:00
Nate McMaster 5aae1f91a8
Include symbols in published output 2018-03-22 15:20:09 -07:00
Nate McMaster 016fa66640
Map properties DotNetRestoreSources => RestoreSources for metapackage builds (#955) 2018-03-13 12:23:18 -07:00
= c46f164c26 Fix shared fx symbols name 2018-03-07 12:42:29 -08:00
Nate McMaster 48ea4a6699
Force restore when building sharedfx csproj file 2018-03-01 13:00:35 -08:00
Nate McMaster 0276bb199e
Produce an Alpine Linux version of the ASP.NET Core shared framework (#931)
Required changes:
 - Update to SQLitePCLRaw 1.1.10-pre20180223200113
 - Add alpine.3.6-x64 as a new RID
 - Add new external dependencies
2018-03-01 10:55:53 -08:00
Nate McMaster c44cf5bdc5 Merge branch release/2.1 into dev 2018-02-15 15:58:13 -08:00
John Luo 989afa53ae Undo typo 2018-02-13 14:17:57 -08:00
John Luo b7c61128af Resolve portable pdbs from symbols packages 2018-02-13 14:17:57 -08:00
John Luo a37e712579 Build RID specific .All and .App symbols packages 2018-02-13 14:17:57 -08:00
= b674549e4f Revert "Build RID specific .All and .App symbols packages"
This reverts commit f5dc3f71f2.
2018-02-13 14:17:31 -08:00
= 0e67bc83c8 Build RID specific .All and .App symbols packages 2018-02-13 14:16:32 -08:00
John Luo e4e837fa24 Flatten dependencies of Microsoft.AspNetCore.All metapackage
Remove BrowserLink from Microsoft.AspNetCore.App
Remove version locking in .All metapackage
2018-02-01 11:51:27 -08:00
Nate McMaster 2233481d34 Ensure all packages are included in ArtifactInfo 2018-02-01 10:24:07 -08:00
John Luo 13b3d51b80 Exclude native assets from Microsoft.NETCore.App 2018-01-23 16:46:06 -08:00
John Luo cc3c24417c Remove duplicated assemblies from .All shared framework 2018-01-23 10:42:23 -08:00
Pranav K b960818247 Build metapackages in sequence since they rely on each other. 2018-01-22 14:57:41 -08:00
Pranav K 13cf9f76bd Add support for building Microsoft.AspNetCore.Analyzers metapackage 2018-01-22 13:54:50 -08:00
= 564e049ae9 Build Microsoft.AspNetCore.App
- Produce .App and .All metapackages and shared frameworks
2018-01-19 11:32:30 -08:00
John Luo 871debe753 Use platform assemblies paths instead of app paths for crossgen 2018-01-10 12:20:15 -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
= 96060d8b63 Generate cumulative archives for all platforms
- Add runtime store to cumulative archives
2018-01-08 13:09:04 -08:00
Nate McMaster 7bbfd2dcad
Rename intermediate sharedfx archive to avoid conflicts with final file (#755) 2018-01-05 16:34:39 -08:00
John Luo 12806465d8 Crossgen SharedFx
- And produce symbols for crossgen'ed binaries
2018-01-05 10:57:46 -08:00
Nate McMaster 69f87610ce
Produce the Windows sharedfx as win-x64/x64 for consistency with Microsoft.NETCore.App (#731) 2017-12-28 15:09:00 -08:00
Nate McMaster 50391c0341 Ensure PackageVersion is set when computing sharedfx output path 2017-12-27 13:30:48 -08:00
Nate McMaster ababb64d51 Change output of sharedfx build to match feed layout
- Upgrade build tools
- Produce an SVG badge for the sharedfx
- Produce the 'latest.aspnetcore.version' file for the dotnet-install.ps1/sh downloader script
- Change layout of output for sharefx build
- Use KoreBuild's bundled package folder for internal build tools packages
2017-12-27 11:12:02 -08:00
= 35d4ad0f30 Always produce shared framework zips
Coherence-Signed has trouble working with tar.gz archives
2017-12-08 00:46:55 -08:00
John Luo e0daa126e2 Produce aspnetcore shared framework 2017-12-05 12:15:30 -08:00