Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
d8e8436
[release/7.0-rc1] Fix leak caused by not disposing the scoped parent …
github-actions[bot] Aug 22, 2022
e69c9d0
[release/7.0-rc1] Change signature for diagnostic binaries (#74323)
github-actions[bot] Aug 22, 2022
d42d9fe
[release/7.0-rc1] [Mono] Only enable Arm intrinsics for full aot mode…
github-actions[bot] Aug 22, 2022
0df231c
[release/7.0-rc1] Roll forward to the latest 6.0.x builds (#74288)
lewing Aug 22, 2022
9272ca3
Update ComponentResources versions and list (#74365)
lewing Aug 22, 2022
5ddbb7c
Bump intellisense package version to Preview7 (#74356)
github-actions[bot] Aug 22, 2022
40dc057
[release/7.0-rc1] Fix mono package versions during stabilization (#74…
github-actions[bot] Aug 23, 2022
12cc3d4
Update workload manifest paths (#74364)
lewing Aug 23, 2022
7193b90
[release/7.0-rc1] hold reference to SslContextHandle to prevent crash…
github-actions[bot] Aug 23, 2022
516f061
[release/7.0-rc1] Improve DOTNET_JitDisasm and introduce DOTNET_JitDi…
EgorBo Aug 23, 2022
1356e44
Update dependencies from https://github.com/dotnet/emsdk build 202208…
dotnet-maestro[bot] Aug 24, 2022
430c42a
[release/7.0-rc1][mini] double quote linker path in defined(LD_NAME) …
lambdageek Aug 24, 2022
f0dbf37
Update dependencies from https://github.com/dotnet/emsdk build 202208…
dotnet-maestro[bot] Aug 24, 2022
7b1acce
Move all build pools to -Svc equivalents (except eng/common; this nee…
MattGal Aug 25, 2022
e486741
Merge branch 'release/7.0' into merge/release/7.0-rc1-to-release/7.0
lewing Aug 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/design/features/OsrDetailsAndDebugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ Note if a Tier0 method is recursive and has loops there can be some interesting

### Seeing which OSR methods are created

* `DOTNET_DumpJittedMethods=1` will specially mark OSR methods with the inspiring IL offsets.
* `DOTNET_JitDisasmSummary=1` will specially mark OSR methods with the inspiring IL offsets.

For example, running a libraries test with some stressful OSR settings, there ended up being 699 OSR methods jitted out of 160675 total methods. Grepping for OSR in the dump output, the last few lines were:

Expand Down
41 changes: 8 additions & 33 deletions eng/Signing.props
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<Project InitialTargets="SetupFilesToSign">

<Project>
<PropertyGroup>
<!--
Windows arm/arm64 jobs don't have MSIs to sign. Keep it simple: allow not finding any matches
Expand All @@ -20,6 +19,13 @@
<!-- apphost and comhost template files are not signed, by design. -->
<FileSignInfo Include="apphost.exe;singlefilehost.exe;comhost.dll" CertificateName="None" />

<!--
The DAC and the DBI must go through special signing provisioning using a system separate
from MicroBuild.
-->
<FileSignInfo Include="mscordaccore.dll" CertificateName="None" />
<FileSignInfo Include="mscordbi.dll" CertificateName="None" />

<!-- We don't need to code sign .js files because they are not used in Windows Script Host. -->
<!-- WARNING: Needs to happed outside of any target -->
<FileExtensionSignInfo Update=".js" CertificateName="None" />
Expand All @@ -31,8 +37,6 @@
<FileSignInfo Include="Mono.Cecil.Pdb.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="Mono.Cecil.Rocks.dll" CertificateName="3PartySHA2" />

<FileSignInfo Include="mscordaccore.dll" CertificateName="MicrosoftSHA2" />

<!-- Exclude symbol packages from have a NuGet signature. These are never pushed to NuGet.org or
other feeds (in fact, that have identical identity to their non-symbol variant) -->
<DownloadedSymbolPackages Include="$(DownloadDirectory)**\*.symbols.nupkg" />
Expand Down Expand Up @@ -61,33 +65,4 @@
<ItemsToSignPostBuild Include="@(ItemsToSignWithoutPaths->Distinct())" Condition="'$(PostBuildSign)' == 'true'" />
<ItemsToSign Include="@(ItemsToSignWithPaths->Distinct())" Condition="'$(PostBuildSign)' != 'true'" />
</ItemGroup>

<Target Name="SetupFilesToSign">
<!-- Ensure that we don't miss the DAC or DBI with the globbing below -->
<PropertyGroup Condition="'$(SignDiagnostics)' == 'true' or '$(SignDiagnosticsPackages)' == 'true'">
<AllowEmptySignList>false</AllowEmptySignList>
</PropertyGroup>

<ItemGroup Condition="'$(SignDiagnostics)' == 'true'">
<ItemsToSign Include="$(DiagnosticsFilesRoot)\**\mscordaccore*.dll" />
<ItemsToSign Include="$(DiagnosticsFilesRoot)\**\mscordbi.dll" />
<!--
The DAC should be signed with the SHA2 cert (both long and short name).
We already add the short-name DAC above, so add the long-name DAC here.
-->
<DacFileSignInfo Include="@(ItemsToSign->'%(FileName)%(Extension)')"
Condition="$([System.String]::new('%(FileName)').StartsWith('mscordaccore'))" />
<FileSignInfo Include="@(DacFileSignInfo->ClearMetadata()->Distinct())"
Exclude="mscordaccore.dll"
CertificateName="MicrosoftSHA2" />
</ItemGroup>

<ItemGroup Condition="'$(SignDiagnosticsPackages)' == 'true'">
<!-- The cross OS diagnostics symbol packages need to be signed as they are the only packages
that have a specific version of assets that are only meant to be indexed in symbol servers.
Since only *symbols.nupkg get indexed, and installer doesn't produce these, we need to glob them for signing. -->
<ItemsToSign Include="$(PackagesFolder)\**\*CrossOsDiag*.nupkg" />
</ItemGroup>
</Target>

</Project>
4 changes: 2 additions & 2 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<MinorVersion>0</MinorVersion>
<PatchVersion>0</PatchVersion>
<SdkBandVersion>7.0.100</SdkBandVersion>
<PackageVersionNet6>6.0.8</PackageVersionNet6>
<PackageVersionNet6>6.0.9</PackageVersionNet6>
<PreReleaseVersionLabel>rc</PreReleaseVersionLabel>
<PreReleaseVersionIteration>2</PreReleaseVersionIteration>
<!-- Set assembly version to align with major and minor version,
Expand Down Expand Up @@ -174,7 +174,7 @@
<!--<SdkVersionForWorkloadTesting>7.0.100-rc.1.22402.35</SdkVersionForWorkloadTesting>-->
<CompilerPlatformTestingVersion>1.1.2-beta1.22403.2</CompilerPlatformTestingVersion>
<!-- Docs -->
<MicrosoftPrivateIntellisenseVersion>7.0.0-preview-20220721.1</MicrosoftPrivateIntellisenseVersion>
<MicrosoftPrivateIntellisenseVersion>7.0.0-preview-20220822.1</MicrosoftPrivateIntellisenseVersion>
<!-- ILLink -->
<MicrosoftNETILLinkTasksVersion>7.0.100-1.22423.4</MicrosoftNETILLinkTasksVersion>
<MicrosoftNETILLinkAnalyzerPackageVersion>$(MicrosoftNETILLinkTasksVersion)</MicrosoftNETILLinkAnalyzerPackageVersion>
Expand Down
3 changes: 2 additions & 1 deletion eng/pipelines/common/evaluate-default-paths.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ jobs:
- src/mono/wasm/host/*
- src/mono/wasm/runtime/*
- src/mono/wasm/templates/*
- src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/*
- src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/*
- src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/*
- src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/*
- src/mono/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/*
- src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/*
Expand Down
8 changes: 4 additions & 4 deletions eng/pipelines/common/xplat-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,12 +135,12 @@ jobs:
pool:
# Public Linux Build Pool
${{ if and(or(in(parameters.osGroup, 'Linux', 'FreeBSD', 'Android', 'Tizen'), eq(parameters.jobParameters.hostedOs, 'Linux')), eq(variables['System.TeamProject'], 'public')) }}:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open

# Official Build Linux Pool
${{ if and(or(in(parameters.osGroup, 'Linux', 'FreeBSD', 'Browser', 'Android', 'Tizen'), eq(parameters.jobParameters.hostedOs, 'Linux')), ne(variables['System.TeamProject'], 'public')) }}:
name: NetCore1ESPool-Internal
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64

# OSX Build Pool (we don't have on-prem OSX BuildPool
Expand All @@ -149,12 +149,12 @@ jobs:

# Official Build Windows Pool
${{ if and(eq(parameters.osGroup, 'windows'), ne(variables['System.TeamProject'], 'public')) }}:
name: NetCore1ESPool-Internal
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals windows.vs2022.amd64

# Public Windows Build Pool
${{ if and(or(eq(parameters.osGroup, 'windows'), eq(parameters.jobParameters.hostedOs, 'windows')), eq(variables['System.TeamProject'], 'public')) }}:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals windows.vs2022.amd64.open


Expand Down
24 changes: 6 additions & 18 deletions eng/pipelines/coreclr/templates/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -261,25 +261,12 @@ jobs:
targetFolder: $(buildProductRootFolderPath)/sharedFramework
overWrite: true

# Sign diagnostic files on Windows
- ${{ if and(eq(parameters.osGroup, 'windows'), eq(parameters.signBinaries, true)) }}:
- powershell: >-
eng\common\build.ps1 -ci -sign -restore -configuration:$(buildConfig) -warnaserror:0 $(officialBuildIdArg)
/p:DiagnosticsFilesRoot="$(buildProductRootFolderPath)"
/p:SignDiagnostics=true
/p:DotNetSignType=$(SignType)
-noBl
/bl:$(Build.SourcesDirectory)/artifacts/log/$(buildConfig)/SignDiagnostics.binlog
-projects $(Build.SourcesDirectory)\eng\empty.csproj
displayName: Sign Diagnostic Binaries

- task: PublishPipelineArtifact@1
displayName: Publish Signing Logs
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/log/'
artifactName: ${{ format('SignLogs_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
continueOnError: true
condition: always()
- template: /eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
parameters:
basePath: $(buildProductRootFolderPath)
isOfficialBuild: ${{ parameters.signBinaries }}
timeoutInMinutes: 30

# Builds using gcc are not tested, and clrTools unitests do not publish the build artifacts
- ${{ if and(ne(parameters.compilerName, 'gcc'), ne(parameters.testGroup, 'clrTools'), ne(parameters.disableClrTest, true)) }}:
Expand All @@ -300,6 +287,7 @@ jobs:
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
isOfficialBuild: ${{ parameters.signBinaries }}
${{ if eq(parameters.archType, 'arm') }}:
hostArchType: x86
${{ else }}:
Expand Down
7 changes: 7 additions & 0 deletions eng/pipelines/coreclr/templates/crossdac-build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
parameters:
archType: ''
isOfficialBuild: false
osGroup: ''
osSubgroup: ''
hostArchType: ''
Expand Down Expand Up @@ -52,6 +53,12 @@ steps:

displayName: Gather CrossDac Artifacts

- template: /eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
parameters:
basePath: $(crossDacArtifactPath)
isOfficialBuild: ${{ parameters.isOfficialBuild }}
timeoutInMinutes: 30

- ${{ if eq(parameters.osGroup, 'Linux') }}:
- task: CopyFiles@2
displayName: Gather runtime for CrossDac
Expand Down
23 changes: 0 additions & 23 deletions eng/pipelines/coreclr/templates/crossdac-pack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,6 @@ jobs:
- ${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_product_build_${{ platform }}_${{ parameters.buildConfig }}

steps:
# Install MicroBuild for signing the package
- ${{ if eq(parameters.isOfficialBuild, true) }}:
- template: /eng/pipelines/common/restore-internal-tools.yml

- task: MicroBuildSigningPlugin@2
displayName: Install MicroBuild plugin for Signing
inputs:
signType: $(SignType)
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
continueOnError: false
condition: and(succeeded(), in(variables['SignType'], 'real', 'test'))

- task: DownloadBuildArtifacts@0
displayName: Download CrossDac artifacts
inputs:
Expand All @@ -77,16 +64,6 @@ jobs:
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset crossdacpack -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) $(crossDacArgs) -ci
displayName: Build crossdac packaging

# Sign diagnostic files
- ${{ if eq(parameters.isOfficialBuild, true) }}:
- powershell: >-
eng\common\build.ps1 -ci -sign -restore -configuration:$(buildConfig) -warnaserror:0 $(officialBuildIdArg)
/p:PackagesFolder="$(Build.SourcesDirectory)/artifacts/packages/$(buildConfig)"
/p:SignDiagnosticsPackages=true
/p:DotNetSignType=$(SignType)
-projects $(Build.SourcesDirectory)\eng\empty.csproj
displayName: Sign CrossDac package and contents

# Save packages using the prepare-signed-artifacts format.
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
parameters:
Expand Down
80 changes: 80 additions & 0 deletions eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
parameters:
basePath: ''
isOfficialBuild: ''
timeoutInMinutes: ''

steps:
- ${{ if and(eq(parameters.isOfficialBuild, true), ne(variables['Build.Reason'], 'PullRequest')) }}:
- task: UseDotNet@2
displayName: Install .NET 6 SDK for signing.
inputs:
packageType: 'sdk'
version: '6.0.x'
installationPath: '$(Agent.TempDirectory)/dotnet'

- task: EsrpCodeSigning@1
displayName: Sign Diagnostic Binaries
inputs:
ConnectedServiceName: 'dotnetesrp-diagnostics-dnceng'
FolderPath: ${{ parameters.basePath }}
Pattern: |
**/mscordaccore*.dll
**/mscordbi*.dll
UseMinimatch: true
signConfigType: 'inlineSignParams'
inlineOperation: >-
[
{
"keyCode": "CP-471322",
"operationCode": "SigntoolSign",
"parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"PageHash": "/NPH",
"FileDigest": "/fd sha256",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"toolName": "sign",
"toolVersion": "1.0"
},
{
"KeyCode": "CP-471322",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
SessionTimeout: ${{ parameters.timeoutInMinutes }}
MaxConcurrency: '50'
MaxRetryAttempts: '5'
env:
DOTNET_MULTILEVEL_LOOKUP: 0
DOTNET_ROOT: '$(Agent.TempDirectory)/dotnet'
DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR: '$(Agent.TempDirectory)/dotnet'

- powershell: |
$filesToSign = $(Get-ChildItem -Recurse ${{ parameters.basePath }} -Include mscordaccore*.dll, mscordbi*.dll)
foreach ($file in $filesToSign) {
$signingCert = $(Get-AuthenticodeSignature $file).SignerCertificate
if ($signingCert -eq $null)
{
throw "File $file does not contain a signature."
}

if ($signingCert.Subject -ne "CN=.NET DAC, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" `
-or $signingCert.Issuer -ne "CN=Microsoft Code Signing PCA 2010, O=Microsoft Corporation, L=Redmond, S=Washington, C=US")
{
throw "File $file not in expected trust chain."
}

$certEKU = $signingCert.Extensions.Where({ $_.Oid.FriendlyName -eq "Enhanced Key Usage" }) | Select -First 1

if ($certEKU.EnhancedKeyUsages.Where({ $_.Value -eq "1.3.6.1.4.1.311.84.4.1" }).Count -ne 1)
{
throw "Signature for $file does not contain expected EKU."
}

Write-Host "$file is correctly signed."
}
displayName: Validate diagnostic signatures
2 changes: 1 addition & 1 deletion eng/pipelines/libraries/enterprise/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- job: EnterpriseLinuxTests
timeoutInMinutes: 120
pool:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
steps:
- bash: |
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/libraries/stress/http.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
variables:
DUMPS_SHARE_MOUNT_ROOT: "/dumps-share"
pool:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals 1es-ubuntu-1804-open

steps:
Expand Down Expand Up @@ -96,7 +96,7 @@ jobs:
variables:
DUMPS_SHARE_MOUNT_ROOT: "C:/dumps-share"
pool:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals 1es-windows-2022-open

steps:
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/libraries/stress/ssl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
displayName: Docker Linux
timeoutInMinutes: 120
pool:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open

steps:
Expand All @@ -54,7 +54,7 @@ jobs:
displayName: Docker NanoServer
timeoutInMinutes: 120
pool:
name: NetCore1ESPool-Public
name: NetCore1ESPool-Svc-Public
demands: ImageOverride -equals 1es-windows-2022-open

steps:
Expand Down
3 changes: 2 additions & 1 deletion eng/pipelines/mono/templates/workloads-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ jobs:
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvos-*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvossimulator-*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.Manifest*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoTargets.Sdk*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoAOTCompiler.Task*.nupkg
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Sdk*.nupkg
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/official/jobs/prepare-signed-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
displayName: Prepare Signed Artifacts
dependsOn: ${{ parameters.dependsOn }}
pool:
name: NetCore1ESPool-Internal
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-windows-2022
# Double the default timeout.
timeoutInMinutes: 240
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/official/stages/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ stages:
publishUsingPipelines: true
dependsOn: PrepareSignedArtifacts
pool:
name: NetCore1ESPool-Internal
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-windows-2022

# Stages-based publishing entry point
Expand Down
3 changes: 3 additions & 0 deletions eng/testing/tests.wasm.targets
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,11 @@
/>

<WorkloadCombinationsToInstall Include="net7" Variants="net7" />
<!-- Latest net6 6.0.x versions are not available in feed currently so don't install them -->
<!--
<WorkloadCombinationsToInstall Include="net6" Variants="net6" />
<WorkloadCombinationsToInstall Include="net6+7" Variants="net6;net7" />
-->
<!--<WorkloadCombinationsToInstall Include="none" />-->

<WasmExtraFilesToDeploy Condition="'$(_UseWasmSymbolicator)' == 'true'" Include="$(MonoProjectRoot)wasm\data\wasm-symbol-patterns.txt" />
Expand Down
Loading