Skip to content

Commit 0febe21

Browse files
authored
Merge branch 'main' into merge/release/8.0-to-main
2 parents 7c043b0 + 280cc96 commit 0febe21

File tree

195 files changed

+999
-876
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+999
-876
lines changed

.azure/pipelines/ci.yml

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,14 @@ variables:
144144
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
145145
- name: _SignType
146146
value: test
147-
- name: runCodeQL3000
148-
value: ${{ or(eq(variables['Build.Reason'], 'Schedule'), and(eq(variables['Build.Reason'], 'Manual'), eq(parameters.runCodeQL3000, 'true'))) }}
147+
- ${{ if or(eq(variables['Build.Reason'], 'Schedule'), and(eq(variables['Build.Reason'], 'Manual'), eq(parameters.runCodeQL3000, 'true'))) }}:
148+
- name: runCodeQL3000
149+
value: true
150+
- ${{ else }}:
151+
- name: runCodeQL3000
152+
value: false
153+
- name: Codeql.Enabled
154+
value: false
149155
- template: /eng/common/templates/variables/pool-providers.yml
150156

151157
stages:
@@ -277,17 +283,15 @@ stages:
277283
$(WindowsArm64LogArgs)
278284
displayName: Build ARM64
279285

280-
# Submit a manual build (in public or internal project) to validate changes to site extensions.
281-
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
282-
- script: .\src\SiteExtensions\build.cmd
283-
-ci
284-
-noBuildRepoTasks
285-
-pack
286-
-noBuildDeps
287-
-noBuildNative
288-
$(_BuildArgs)
289-
$(_InternalRuntimeDownloadArgs)
290-
displayName: Build SiteExtension
286+
- script: .\src\SiteExtensions\build.cmd
287+
-ci
288+
-noBuildRepoTasks
289+
-pack
290+
-noBuildDeps
291+
-noBuildNative
292+
$(_BuildArgs)
293+
$(_InternalRuntimeDownloadArgs)
294+
displayName: Build SiteExtension
291295

292296
# This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If
293297
# https://github.com/dotnet/arcade/issues/1957 is resolved, consider running code-signing inline with the other

.azure/pipelines/helix-matrix.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ schedules:
1313
include:
1414
- release/6.0
1515
- release/7.0
16+
- release/8.0
1617
always: false
1718

1819
variables:

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"remoteEnv": {
3838
"PATH": "${containerWorkspaceFolder}/.dotnet:${containerEnv:PATH}",
3939
"DOTNET_MULTILEVEL_LOOKUP": "0",
40-
"TARGET": "net8.0",
40+
"TARGET": "net9.0",
4141
"DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER": "true"
4242
},
4343
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.

.github/fabricbot.json

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,7 +1496,7 @@
14961496
]
14971497
},
14981498
{
1499-
"label": "area-runtime",
1499+
"label": "area-networking",
15001500
"pathFilter": [
15011501
"src/Servers/",
15021502
"src/Http/",
@@ -1633,7 +1633,7 @@
16331633
{
16341634
"name": "addedToMilestone",
16351635
"parameters": {
1636-
"milestoneName": ".NET 8 Planning"
1636+
"milestoneName": ".NET 9 Planning"
16371637
}
16381638
},
16391639
{
@@ -1649,12 +1649,12 @@
16491649
"issues",
16501650
"project_card"
16511651
],
1652-
"taskName": "Comment when an investigation issue moved to .NET 8 Planning",
1652+
"taskName": "Comment when an investigation issue moved to .NET 9 Planning",
16531653
"actions": [
16541654
{
16551655
"name": "addReply",
16561656
"parameters": {
1657-
"comment": "To learn more about what this message means, what to expect next, and how this issue will be handled you can read our [Triage Process document](https://github.com/dotnet/aspnetcore/blob/main/docs/TriageProcess.md).\nWe're moving this issue to the .NET 8 Planning milestone for future evaluation / consideration. Because it's not immediately obvious what is causing this behavior, we would like to keep this around to collect more feedback, which can later help us determine how to handle this. We will re-evaluate this issue, during our next planning meeting(s).\nIf we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact work."
1657+
"comment": "To learn more about what this message means, what to expect next, and how this issue will be handled you can read our [Triage Process document](https://github.com/dotnet/aspnetcore/blob/main/docs/TriageProcess.md).\nWe're moving this issue to the .NET 9 Planning milestone for future evaluation / consideration. Because it's not immediately obvious what is causing this behavior, we would like to keep this around to collect more feedback, which can later help us determine how to handle this. We will re-evaluate this issue, during our next planning meeting(s).\nIf we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact work."
16581658
}
16591659
}
16601660
]
@@ -2491,7 +2491,7 @@
24912491
{
24922492
"name": "addMilestone",
24932493
"parameters": {
2494-
"milestoneName": "8.0-rc1"
2494+
"milestoneName": "9.0-preview1"
24952495
}
24962496
}
24972497
],
@@ -2510,7 +2510,7 @@
25102510
{
25112511
"name": "addedToMilestone",
25122512
"parameters": {
2513-
"milestoneName": ".NET 8 Planning"
2513+
"milestoneName": ".NET 9 Planning"
25142514
}
25152515
},
25162516
{
@@ -2531,12 +2531,12 @@
25312531
"issues",
25322532
"project_card"
25332533
],
2534-
"taskName": "Comment when an issue is moved to `.NET 8 Planning` milestone",
2534+
"taskName": "Comment when an issue is moved to `.NET 9 Planning` milestone",
25352535
"actions": [
25362536
{
25372537
"name": "addReply",
25382538
"parameters": {
2539-
"comment": "Thanks for contacting us.\n\nWe're moving this issue to the `.NET 8 Planning` milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). \nIf we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.\nTo learn more about what to expect next and how this issue will be handled you can read more about our triage process [here](https://github.com/dotnet/aspnetcore/blob/main/docs/TriageProcess.md)."
2539+
"comment": "Thanks for contacting us.\n\nWe're moving this issue to the `.NET 9 Planning` milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). \nIf we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.\nTo learn more about what to expect next and how this issue will be handled you can read more about our triage process [here](https://github.com/dotnet/aspnetcore/blob/main/docs/TriageProcess.md)."
25402540
}
25412541
}
25422542
]
@@ -3236,7 +3236,7 @@
32363236
{
32373237
"name": "addMilestone",
32383238
"parameters": {
3239-
"milestoneName": "6.0.22"
3239+
"milestoneName": "6.0.23"
32403240
}
32413241
}
32423242
]
@@ -3280,7 +3280,7 @@
32803280
{
32813281
"name": "addMilestone",
32823282
"parameters": {
3283-
"milestoneName": "7.0.11"
3283+
"milestoneName": "7.0.12"
32843284
}
32853285
}
32863286
]
@@ -3304,7 +3304,7 @@
33043304
{
33053305
"name": "prTargetsBranch",
33063306
"parameters": {
3307-
"branchName": "release/8.0-preview7"
3307+
"branchName": "release/8.0-rc2"
33083308
}
33093309
}
33103310
]
@@ -3315,7 +3315,7 @@
33153315
"issues",
33163316
"project_card"
33173317
],
3318-
"taskName": "[Milestone Assignments] Assign Milestone to PRs merged to release/8.0-preview7 branch",
3318+
"taskName": "[Milestone Assignments] Assign Milestone to PRs merged to release/8.0-rc2 branch",
33193319
"actions": [
33203320
{
33213321
"name": "removeMilestone",
@@ -3324,7 +3324,51 @@
33243324
{
33253325
"name": "addMilestone",
33263326
"parameters": {
3327-
"milestoneName": "8.0-preview7"
3327+
"milestoneName": "8.0-rc2"
3328+
}
3329+
}
3330+
]
3331+
}
3332+
},
3333+
{
3334+
"taskType": "trigger",
3335+
"capabilityId": "IssueResponder",
3336+
"subCapability": "PullRequestResponder",
3337+
"version": "1.0",
3338+
"config": {
3339+
"conditions": {
3340+
"operator": "and",
3341+
"operands": [
3342+
{
3343+
"name": "isAction",
3344+
"parameters": {
3345+
"action": "merged"
3346+
}
3347+
},
3348+
{
3349+
"name": "prTargetsBranch",
3350+
"parameters": {
3351+
"branchName": "release/8.0"
3352+
}
3353+
}
3354+
]
3355+
},
3356+
"eventType": "pull_request",
3357+
"eventNames": [
3358+
"pull_request",
3359+
"issues",
3360+
"project_card"
3361+
],
3362+
"taskName": "[Milestone Assignments] Assign Milestone to PRs merged to release/8.0 branch",
3363+
"actions": [
3364+
{
3365+
"name": "removeMilestone",
3366+
"parameters": {}
3367+
},
3368+
{
3369+
"name": "addMilestone",
3370+
"parameters": {
3371+
"milestoneName": "8.0.0"
33283372
}
33293373
}
33303374
]
@@ -3357,7 +3401,7 @@
33573401
{
33583402
"name": "addReply",
33593403
"parameters": {
3360-
"comment": "Thank you for filing this issue. In order for us to investigate this issue, please provide [a minimalistic repro project](https://github.com/dotnet/aspnetcore/blob/main/docs/repro.md) that illustrates the problem."
3404+
"comment": "Thank you for filing this issue. In order for us to investigate this issue, please provide [a minimal repro project](https://github.com/dotnet/aspnetcore/blob/main/docs/repro.md) that illustrates the problem without unnecessary code. Please share with us in a public GitHub repo because we cannot open ZIP attachments, and don't include any confidential content."
33613405
}
33623406
},
33633407
{

.github/workflows/markdownlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515

1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1818
- name: Use Node.js
1919
uses: actions/setup-node@v3
2020
with:

.github/workflows/runtime-sync.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ jobs:
2121
runs-on: windows-latest
2222
steps:
2323
- name: Checkout aspnetcore
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2525
with:
2626
# Test this script using changes in a fork
2727
repository: 'dotnet/aspnetcore'
2828
path: aspnetcore
2929
ref: main
3030
- name: Checkout runtime
31-
uses: actions/checkout@v3
31+
uses: actions/checkout@v4
3232
with:
3333
# Test this script using changes in a fork
3434
repository: 'dotnet/runtime'

Directory.Build.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<Project>
22
<Import Project="eng\Common.props" />
33

4+
<PropertyGroup>
5+
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
6+
</PropertyGroup>
7+
48
<PropertyGroup>
59
<!-- $(RepoRoot) is normally set globally and Arcade overrides it to ensure a trailing slash. -->
610
<RepoRoot Condition=" '$(RepoRoot)' == '' OR !HasTrailingSlash('$(RepoRoot)') ">$(MSBuildThisFileDirectory)</RepoRoot>

NuGet.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<clear />
55
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
66
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
7+
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
8+
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
79
<add key="dotnet8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
810
<add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />
911
<add key="dotnet8-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json" />

docs/UpdatingMajorVersionAndTFM.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ Typically, we will update the Major Version before updating the TFM. This is bec
1515
2. Change `PreReleaseVersionIteration` to `1`.
1616
3. Change `PreReleaseVersionLabel` to `alpha`.
1717
4. Change `PreReleaseBrandingLabel` to `Alpha $(PreReleaseVersionIteration)`.
18-
* In [src/Framework/test/TestData.cs](/src/Framework/test/TestData.cs), update `ListedTargetingPackAssemblies` by incrementing the AssemblyVersion of all aspnetcore assemblies by 1 major version. Once dotnet/runtime updates their AssemblyVersions, we also need to update those in this file. They typically make that change at the same time as their TFM update, but we change our AssemblyVersions as soon as we update branding.
1918
* Add entries to [NuGet.config](/NuGet.config) for the new Major Version's feed. This just means copying the current feeds (e.g. `dotnet8` and `dotnet8-transport`) and adding entries for the new feeds (`dotnet9` and `dotnet9-transport`). Make an effort to remove old feeds here at the same time.
2019
* In [src/ProjectTemplates/Shared/TemplatePackageInstaller.cs](/src/ProjectTemplates/Shared/TemplatePackageInstaller.cs), add an entry to `_templatePackages` for `Microsoft.DotNet.Web.ProjectTemplates` matching the new version.
2120
* In [eng/targets/CSharp.Common.props](/eng/targets/CSharp.Common.props) for the previous release branch, modify the `<LangVersion>` to be a hardcoded version instead of `preview`. (e.g. If main is being updated to 8.0.0 modify the `<LangVersion>` in the release/7.0 branch). See https://learn.microsoft.com/dotnet/csharp/language-reference/configure-language-version#defaults to find what language version to use.
@@ -24,6 +23,7 @@ Typically, we will update the Major Version before updating the TFM. This is bec
2423
* The result of `.\eng\scripts\mark-shipped.cmd` should be checked in to the release branch as well, as part of the RTM release.
2524
* 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.
2625
* Update `.\eng\PlatformManifest.txt` and `.\eng\PackageOverrides.txt`. Download the just released RTM version of the `Microsoft.AspNetCore.App.Ref` package, and copy over the files from the `data` folder. This can be done in the same PR as the one updating `.\eng\Baseline.xml` and `.\eng\Baseline.Designer.props` (see https://github.com/dotnet/aspnetcore/pull/49269).
26+
* 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
2727

2828
### Validation
2929

@@ -33,11 +33,12 @@ Typically, we will update the Major Version before updating the TFM. This is bec
3333

3434
## Updating TFM
3535

36-
Once dotnet/runtime has updated their TFM, we update ours in the dependency update PR ingesting that change. We won't be able to ingest new dotnet/runtime dependencies in `main` until this is done. For an example, [this](https://github.com/dotnet/aspnetcore/pull/36328) is the PR where we updated our TFM to `net8.0`. This step can be tricky - we have workarounds in [eng/tools/GenerateFiles/Directory.Build.targets.in](/eng/tools/GenerateFiles/Directory.Build.targets.in) to make the build work before we get an SDK containing runtime references with the new TFM. We copy the `KnownFrameworkReference`, `KnownRuntimePack`, and `KnownAppHostPack` from the previous TFM, give them the incoming runtime dependency versions, and give them the new TFM (these TFMs no-op most of the time - they only apply during this period when we're using an SDK that doesn't know about the new TFM). These workarounds allow us to build against the new TFM before we get an SDK with a reference to it, but there are often problems that arise in this area. The best way to debug build errors related to FrameworkReferences it to get a binlog of a failing project (`dotnet build /bl`) and look at the inputs to the task that failed. Confirm that the `Known___` items look as expected (there is an entry with the current TFM & the current dotnet/runtime dependency version), and look at the source code of the task in [dotnet/sdk](https://github.com/dotnet/sdk) for hints.
36+
Once dotnet/runtime has updated their TFM, we update ours in the dependency update PR ingesting that change. We won't be able to ingest new dotnet/runtime dependencies in `main` until this is done. For an example, [this](https://github.com/dotnet/aspnetcore/pull/36328) is the PR where we updated our TFM to `net7.0`. This step can be tricky - we have workarounds in [eng/tools/GenerateFiles/Directory.Build.targets.in](/eng/tools/GenerateFiles/Directory.Build.targets.in) to make the build work before we get an SDK containing runtime references with the new TFM. We copy the `KnownFrameworkReference`, `KnownRuntimePack`, and `KnownAppHostPack` from the previous TFM, give them the incoming runtime dependency versions, and give them the new TFM (these TFMs no-op most of the time - they only apply during this period when we're using an SDK that doesn't know about the new TFM). These workarounds allow us to build against the new TFM before we get an SDK with a reference to it, but there are often problems that arise in this area. The best way to debug build errors related to FrameworkReferences it to get a binlog of a failing project (`dotnet build /bl`) and look at the inputs to the task that failed. Confirm that the `Known___` items look as expected (there is an entry with the current TFM & the current dotnet/runtime dependency version), and look at the source code of the task in [dotnet/sdk](https://github.com/dotnet/sdk) for hints.
3737

3838
### Required changes
3939

4040
* In [eng/Versions.props](/eng/Versions.props), increment `DefaultNetCoreTargetFramework` by 1.
41+
* In [eng/SourceBuild.props](/eng/SourceBuild.props), update `SourceBuildTargetFrameworkFilter` to include the current TFM.
4142
* Do a global repo search for the current version string, and update almost everything by 1 (e.g. find `net8`, replace with `net9`). See the PR linked above for examples - this shouldn't be done blindly, but on a case-by-case basis. Most things should be updated, and most choices should be obvious.
4243
* Exceptions to this are [eng/tools/RepoTasks/RepoTasks.csproj](/eng/tools/RepoTasks/RepoTasks.csproj) and [eng/tools/RepoTasks/RepoTasks.tasks](/eng/tools/RepoTasks/RepoTasks.tasks). These build without the workarounds from [eng/tools/GenerateFiles/Directory.Build.targets.in](/eng/tools/GenerateFiles/Directory.Build.targets.in), and need to be kept at the previous TFM until we get an SDK containing a runtime with the new TFM. Generally this means we have to hard-code the previous TFM for these files, rather than using `DefaultNetCoreTargetFramework`.
4344
* Add a reference to the new `SiteExtensions` package for the previous Major Version.

0 commit comments

Comments
 (0)