You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<PropertyGroupCondition=" '$(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. -->
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
-
<VersionCondition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</Version>
88
-
<PackageVersionCondition="'$(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 -->
Copy file name to clipboardExpand all lines: docs/ReferenceResolution.md
-19Lines changed: 0 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,6 @@ The requirements that led to this system are:
12
12
13
13
* Versions of external dependencies should be consistent and easily discovered.
14
14
* 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.
16
15
* Servicing releases should not add or remove dependencies in existing packages.
17
16
18
17
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
26
25
* Only use `<ProjectReference>` in test projects.
27
26
* Name the .csproj file to match the assembly name.
28
27
* 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>`.
31
28
32
29
## Important files
33
30
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).
36
31
*[eng/Dependencies.props](/eng/Dependencies.props) - contains a list of all package references that might be used in the repo.
37
32
*[eng/ProjectReferences.props](/eng/ProjectReferences.props) - lists which assemblies or packages might be available to be referenced as a local project.
38
33
*[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
86
81
The attribute value should be `"Microsoft.CodeAnalysis.Razor"` for dotnet/runtime dependencies in
87
82
dotnet/aspnetcore-tooling.
88
83
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
-
- <ReferenceInclude="Microsoft.AspNetCore.Orange" /> <!-- the old dependency -->
98
-
+ <ReferenceInclude="Microsoft.AspNetCore.BetterThanOrange" /> <!-- the new dependency -->
99
-
+ <SuppressBaselineReferenceInclude="Microsoft.AspNetCore.Orange" /> <!-- suppress as a known breaking change -->
100
-
</ItemGroup>
101
-
```
102
-
103
84
## A darc cheatsheet
104
85
105
86
`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).
Copy file name to clipboardExpand all lines: docs/UpdatingMajorVersionAndTFM.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,6 @@ Typically, we will update the Major Version before updating the TFM. This is bec
21
21
* 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.
22
22
* 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.
23
23
* 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.
25
24
***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.
26
25
* 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.
27
26
* This should be done in `main` as well as the relevant release branch.
0 commit comments