Skip to content

Commit 32ee668

Browse files
authored
Get rid of package baseline (#64336)
1 parent c4f8522 commit 32ee668

17 files changed

+2
-1647
lines changed

AspNetCore.slnx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
</Configurations>
88
<Folder Name="/eng/" />
99
<Folder Name="/eng/tools/">
10-
<Project Path="eng/tools/BaselineGenerator/BaselineGenerator.csproj" />
1110
<Project Path="eng/tools/RepoTasks/RepoTasks.csproj" />
1211
</Folder>
1312
<Folder Name="/src/" />

Directory.Build.targets

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@
5353
'$(IsBenchmarkProject)' == 'true' OR '$(IsSampleProject)' == 'true' OR '$(IsMicrobenchmarksProject)' == 'true') ">false</IsPackable>
5454
</PropertyGroup>
5555

56-
<Import Project="eng\Baseline.Designer.props" />
57-
5856
<PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(IsServicingBuild)' == 'true' ">
5957
<IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">true</IsPackageInThisPatch>
6058
<!-- Used to distinguish between packages building -->
@@ -73,24 +71,6 @@
7371
<PackageVersionForPackageVersionInfo>$(PackageVersion)</PackageVersionForPackageVersionInfo>
7472
</PropertyGroup>
7573

76-
<PropertyGroup Condition=" '$(IsPackageInThisPatch)' != 'true' AND '$(BaselinePackageVersion)' != '' AND '$(IsServicingBuild)' == 'true' ">
77-
<!-- This keeps assembly and package versions consistent across patches. If a package is not included in a patch, its version should stay at the baseline. -->
78-
<AssemblyVersion Condition="$(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion.Substring(0, $(BaselinePackageVersion.IndexOf('-')))).0</AssemblyVersion>
79-
<AssemblyVersion Condition="! $(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion).0</AssemblyVersion>
80-
<!--
81-
Ideally, we would also set the project version to match the baseline in case NuGet turns a ProjectReference into a nuspec depenendency, but
82-
NuGet does not currently handle conflicts between packages and projects which have the same package id/version.
83-
See https://github.com/NuGet/Home/issues/6795.
84-
85-
Because we still use static analysis to scrape versions, only set this during static analysis, which can be detected by checking for both NoBuild and DesignTimeBuild.
86-
-->
87-
<Version Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</Version>
88-
<PackageVersion Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</PackageVersion>
89-
90-
<!-- For servicing builds, we want to resolve baseline versions of project packages that aren't building, always -->
91-
<PackageVersionForPackageVersionInfo>$(BaselinePackageVersion)</PackageVersionForPackageVersionInfo>
92-
</PropertyGroup>
93-
9474
<PropertyGroup>
9575
<!-- Implementation projects are the projects which produce nuget packages or shipping assemblies. -->
9676
<IsImplementationProject Condition=" '$(IsImplementationProject)' == '' AND

docs/PreparingPatchUpdates.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,3 @@ In order to prepare this repo to build a new servicing update, the following cha
99
- <AspNetCorePatchVersion>7</AspNetCorePatchVersion>
1010
+ <AspNetCorePatchVersion>8</AspNetCorePatchVersion>
1111
```
12-
13-
* Update the package baselines. This is used to ensure packages keep a consistent set of dependencies between releases.
14-
See [eng/tools/BaselineGenerator/](/eng/tools/BaselineGenerator/README.md) for instructions on how to run this tool.

docs/ReferenceResolution.md

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ The requirements that led to this system are:
1212

1313
* Versions of external dependencies should be consistent and easily discovered.
1414
* Newer versions of packages should not have lower dependency versions than previous releases.
15-
* Minimize the cascading effect of servicing updates where possible by keeping a consistent baseline of dependencies.
1615
* Servicing releases should not add or remove dependencies in existing packages.
1716

1817
As a minor point, the current system also makes our project files somewhat less verbose.
@@ -26,13 +25,9 @@ As a minor point, the current system also makes our project files somewhat less
2625
* Only use `<ProjectReference>` in test projects.
2726
* Name the .csproj file to match the assembly name.
2827
* Run `eng/scripts/GenerateProjectList.ps1` (or `build.cmd /t:GenerateProjectList`) when adding new projects
29-
* Use [eng/tools/BaseLineGenerator/](/eng/tools/BaselineGenerator/README.md) if you need to update baselines.
30-
* If you need to make a breaking change to dependencies, you may need to add `<SuppressBaselineReference>`.
3128

3229
## Important files
3330

34-
* [eng/Baseline.xml](/eng/Baseline.xml) - this contains the 'baseline' of the latest servicing release for this branch.
35-
It should be modified and used to update the generated file, [eng/Baseline.Designer.props](eng/Baseline.Designer.props).
3631
* [eng/Dependencies.props](/eng/Dependencies.props) - contains a list of all package references that might be used in the repo.
3732
* [eng/ProjectReferences.props](/eng/ProjectReferences.props) - lists which assemblies or packages might be available to be referenced as a local project.
3833
* [eng/Versions.props](/eng/Versions.props) - contains a list of versions which may be updated by automation. This is used by MSBuild to restore and build.
@@ -86,20 +81,6 @@ Steps for adding a new package dependency to an existing project. Let's say I'm
8681
The attribute value should be `"Microsoft.CodeAnalysis.Razor"` for dotnet/runtime dependencies in
8782
dotnet/aspnetcore-tooling.
8883

89-
## Example: make a breaking change to references
90-
91-
If Microsoft.AspNetCore.Banana in 2.1 had a reference to `Microsoft.AspNetCore.Orange`, but in 3.1 or 5.0 this reference
92-
is changing to `Microsoft.AspNetCore.BetterThanOrange`, you would need to make these changes to the .csproj file
93-
94-
```diff
95-
<!-- in Microsoft.AspNetCore.Banana.csproj -->
96-
<ItemGroup>
97-
- <Reference Include="Microsoft.AspNetCore.Orange" /> <!-- the old dependency -->
98-
+ <Reference Include="Microsoft.AspNetCore.BetterThanOrange" /> <!-- the new dependency -->
99-
+ <SuppressBaselineReference Include="Microsoft.AspNetCore.Orange" /> <!-- suppress as a known breaking change -->
100-
</ItemGroup>
101-
```
102-
10384
## A darc cheatsheet
10485

10586
`darc` is a command-line tool that is used for dependency management in the dotnet ecosystem of repos. `darc` can be installed using the `darc-init` scripts located inside the `eng/common` directory. Once `darc` is installed, you'll need to set up the appropriate access tokens as outlined [in the official Darc docs](https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#setting-up-your-darc-client).

docs/UpdatingMajorVersionAndTFM.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ Typically, we will update the Major Version before updating the TFM. This is bec
2121
* Mark APIs from the previous release as Shipped by running `.\eng\scripts\mark-shipped.cmd`. **Note that it's best to do this as early as possible after the API surface is finalized from the previous release** - make sure to be careful that any new API in `main` that isn't shipped as part of the previous release, stays in `PublicAPI.Unshipped.txt` files.
2222
* One way to ensure this is to check out the release branch shipping the previous release (**after API surface area has been finalized**), run `.\eng\scripts\mark-shipped.cmd` there, copy over all of the `PublicAPI.Unshipped.txt` and `PublicAPI.Shipped.txt` files into a new branch based off of `main`, and build the repo. Any failures there will tell you whether or not there are new APIs in main that need to be put back into the `PublicAPI.Unshipped.txt` files.
2323
* The result of `.\eng\scripts\mark-shipped.cmd` should be checked in to the release branch as well, as part of the RTM release.
24-
* Update `.\eng\Baseline.xml` to reflect the set of RTM packages that were just shipped. Then, `dotnet run` `.\eng\tools\BaselineGenerator\BaselineGenerator.csproj`, which will update `.\eng\Baseline.Designer.props`. If RTM hasn't shipped yet, do this in a separate PR once it has. See https://github.com/dotnet/aspnetcore/pull/49269.
2524
* **In the new release branch**, add files named `.\eng\PlatformManifest.txt` and `.\eng\PackageOverrides.txt`. These files should be found by downloading the just released RTM version of the `Microsoft.AspNetCore.App.Ref` package, and copying over the files from the `data` folder.
2625
* Update [helix-matrix.yml](https://github.com/dotnet/aspnetcore/blob/436556163a671259c8b14ae1c90d72767af62d18/.azure/pipelines/helix-matrix.yml#L12-L16) to list the currently active release branches.
2726
* This should be done in `main` as well as the relevant release branch.

0 commit comments

Comments
 (0)