diff --git a/Directory.Build.props b/Directory.Build.props
index 767a2516b..5d0198439 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -26,7 +26,7 @@
true
true
- net8.0
+ net9.0
+
diff --git a/TestAssets/TestProjects/UseCswinrt/consolecswinrt.csproj b/TestAssets/TestProjects/UseCswinrt/consolecswinrt.csproj
index 35e8e88e2..6ed44942b 100644
--- a/TestAssets/TestProjects/UseCswinrt/consolecswinrt.csproj
+++ b/TestAssets/TestProjects/UseCswinrt/consolecswinrt.csproj
@@ -1,7 +1,7 @@
Exe
- net8.0
+ net9.0
Windows
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f9a55fc66..18afccbfc 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -5,42 +5,42 @@
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos.
The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal.
-->
-
+
https://github.com/dotnet/windowsdesktop
- 52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2
+ 16efaf8b79a8924f02a8e7500bc7d81d1253007d
-
+
https://github.com/dotnet/windowsdesktop
- 52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2
+ 16efaf8b79a8924f02a8e7500bc7d81d1253007d
-
+
https://github.com/dotnet/windowsdesktop
- 52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2
+ 16efaf8b79a8924f02a8e7500bc7d81d1253007d
-
+
https://github.com/dotnet/windowsdesktop
- 52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2
+ 16efaf8b79a8924f02a8e7500bc7d81d1253007d
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/runtime
- f8c110b8003d68cc635add4ca791d6cf2e645561
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
@@ -48,55 +48,55 @@
https://github.com/dotnet/core-setup
7d57652f33493fa022125b7f63aad0d70c52d810
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/aspnetcore
- fa54329186df2e11b40bdfec4ae08f16fdbe9d99
+ 3d83ad986828391652e48ebd037c5f485b4edd26
-
+
https://github.com/dotnet/sdk
- db5e29522ce8381a9b4c133e9001edb1f90a7d5c
+ fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4
-
+
https://github.com/dotnet/sdk
- db5e29522ce8381a9b4c133e9001edb1f90a7d5c
+ fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4
-
+
https://github.com/dotnet/sdk
- db5e29522ce8381a9b4c133e9001edb1f90a7d5c
+ fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4
-
+
https://github.com/dotnet/sdk
- db5e29522ce8381a9b4c133e9001edb1f90a7d5c
+ fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4
https://github.com/dotnet/test-templates
@@ -128,62 +128,62 @@
https://github.com/dotnet/wpf
3a8376ca92de4c85dd92b05fba8a1c0a49b14cb9
-
+
https://github.com/dotnet/fsharp
- 767ffa73e8147418ecf54df376e6685b03efd6e4
+ 736b7454a057e390bf46a05c0f2d8b5760fd5ce9
-
+
https://github.com/dotnet/fsharp
- 767ffa73e8147418ecf54df376e6685b03efd6e4
+ 736b7454a057e390bf46a05c0f2d8b5760fd5ce9
-
+
https://github.com/microsoft/vstest
- cf7d549fc0197abaabec19d61d2c20d7a7b089f8
+ 89a55b6ca9270e3e12e3e158104518c225f5ed46
-
+
https://github.com/dotnet/runtime
- 736dabeca728ccf8b911d96d1b4c575b4d0db7d2
+ b331f23f3fb62ae355a42d2ec9c8aefdd0da4073
-
+
https://github.com/dotnet/roslyn
- 79963f8a40c6429cd25667c4c62e717b4ca72098
+ 17e4696ee6ed0a077650e8cabe6f507e2497a8da
-
+
https://github.com/dotnet/msbuild
- 60ae06f6d20616f524a751373aea071df8c2ae48
+ a9341111228592c25c43ecf6858e7b39e525b5a1
-
+
https://github.com/nuget/nuget.client
- f47eb5771ee3f9a100d0b31d82ccb5ee600a56ed
+ 5ce332fb834feea1f6c974d17456c8c9d5504e09
https://github.com/Microsoft/ApplicationInsights-dotnet
53b80940842204f78708a538628288ff5d741a1d
-
+
https://github.com/dotnet/emsdk
- bebe955e9f7d392fbca594b1c76c54ba2e27027e
+ 97568ad0e2120f194df7ac3895e9589fcc8a255b
-
+
https://github.com/dotnet/deployment-tools
- 5957c5c5f85f17c145e7fab4ece37ad6aafcded9
+ 8babbda6fb22b1410c256bfffed9a8041ff87025
-
+
https://github.com/dotnet/deployment-tools
- 5957c5c5f85f17c145e7fab4ece37ad6aafcded9
+ 8babbda6fb22b1410c256bfffed9a8041ff87025
-
+
https://github.com/dotnet/source-build-externals
- 588fbcbc2a221bc6cea33f12eb73c9117994154e
+ 54ad220ef4f236325dec31f2c0c66fa48a6fce33
@@ -202,18 +202,18 @@
-
+
https://github.com/dotnet/arcade
- 1d451c32dda2314c721adbf8829e1c0cd4e681ff
+ 6a5ca678aef84f34a1fccc46f76623f41da56553
-
+
https://github.com/dotnet/arcade
- 1d451c32dda2314c721adbf8829e1c0cd4e681ff
+ 6a5ca678aef84f34a1fccc46f76623f41da56553
-
+
https://github.com/dotnet/arcade
- 1d451c32dda2314c721adbf8829e1c0cd4e681ff
+ 6a5ca678aef84f34a1fccc46f76623f41da56553
https://github.com/dotnet/arcade-services
@@ -227,14 +227,14 @@
https://github.com/dotnet/runtime
af841c8b33cecc92d74222298f1e45bf7bf3d90a
-
+
https://github.com/dotnet/source-build-reference-packages
- 26ce96327dd346534926c4551f8b8d62a6fc724f
+ 05ffbf9df6c1dc621665ee1864874c4fe6de874c
-
+
https://github.com/dotnet/xliff-tasks
- 194f32828726c3f1f63f79f3dc09b9e99c157b11
+ d66a09c8b11e1235273c8e6cd946e5c8e247f189
diff --git a/eng/Versions.props b/eng/Versions.props
index d9a7cadf1..685650048 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -39,7 +39,7 @@
- 8.0.0-beta.23463.1
+ 9.0.0-beta.23518.2
@@ -71,50 +71,50 @@
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
- 9.0.0-alpha.1.23470.9
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
+ 9.0.0-alpha.1.23512.8
0.2.0
- 9.0.100-alpha.1.23477.13
- 9.0.100-alpha.1.23477.13
- 9.0.100-alpha.1.23477.13
+ 9.0.100-alpha.1.23512.21
+ 9.0.100-alpha.1.23512.21
+ 9.0.100-alpha.1.23512.21
$(MicrosoftNETSdkPackageVersion)
$(MicrosoftNETSdkPackageVersion)
$(MicrosoftNETSdkPackageVersion)
- 4.8.0-3.23470.12
+ 4.9.0-1.23511.8
- 9.0.0-alpha.1.23470.17
+ 9.0.0-alpha.1.23512.2
- 9.0.0-alpha.1.23470.17
- 9.0.0-alpha.1.23470.17
- 9.0.0-alpha.1.23470.17
- 9.0.0-alpha.1.23470.17
- 9.0.0-alpha.1.23470.17
+ 9.0.0-alpha.1.23512.2
+ 9.0.0-alpha.1.23512.2
+ 9.0.0-alpha.1.23512.2
+ 9.0.0-alpha.1.23512.2
+ 9.0.0-alpha.1.23512.2
8.0.0-rc.1.23414.4
2.1.0
- 9.0.0-alpha.1.23456.3
- 9.0.0-alpha.1.23456.3
- 9.0.0-alpha.1.23456.3
- 9.0.0-alpha.1.23456.3
+ 9.0.0-alpha.1.23477.3
+ 9.0.0-alpha.1.23477.3
+ 9.0.0-alpha.1.23477.3
+ 9.0.0-alpha.1.23477.3
@@ -126,11 +126,11 @@
- 6.8.0-rc.112
+ 6.9.0-preview.1.13
- 2.0.0-preview.1.23463.1
+ 2.0.0-preview.1.23478.2
@@ -238,7 +238,7 @@
2.2.0-beta.19072.10
2.0.0
- 17.8.0-release-23468-02
+ 17.9.0-preview-23509-01
8.0.0-alpha.1.22557.12
8.0.0-preview.23424.2
@@ -254,7 +254,7 @@
13.3.8825-net8-rc1
16.4.8825-net8-rc1
- 9.0.0-alpha.1.23465.3
+ 9.0.0-alpha.1.23507.1
$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion)
9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`))
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 50af40cdd..2c17ba529 100755
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -105,7 +105,7 @@ while [[ $# > 0 ]]; do
-binarylog|-bl)
binary_log=true
;;
- -excludeCIBinarylog|-nobl)
+ -excludecibinarylog|-nobl)
exclude_ci_binary_log=true
;;
-pipelineslog|-pl)
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 9caf9b021..4228f202e 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -487,7 +487,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
-X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \
-X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \
-U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \
- search 'llvm*-libs' | sort | tail -1 | sed 's/-[^-]*//2g')"
+ search 'llvm*-libs' | grep -E '^llvm' | sort | tail -1 | sed 's/-[^-]*//2g')"
fi
# install all packages in one go
diff --git a/eng/common/cross/riscv64/tizen/tizen.patch b/eng/common/cross/riscv64/tizen/tizen.patch
new file mode 100644
index 000000000..eb6d1c074
--- /dev/null
+++ b/eng/common/cross/riscv64/tizen/tizen.patch
@@ -0,0 +1,9 @@
+diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
+--- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900
++++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900
+@@ -2,4 +2,4 @@
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+ OUTPUT_FORMAT(elf64-littleriscv)
+-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-riscv64-lp64d.so.1 ) )
++GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-riscv64-lp64d.so.1 ) )
diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh
index ac84173d4..ba31c9328 100644
--- a/eng/common/cross/tizen-build-rootfs.sh
+++ b/eng/common/cross/tizen-build-rootfs.sh
@@ -22,6 +22,10 @@ case "$ARCH" in
TIZEN_ARCH="x86_64"
LINK_ARCH="x86"
;;
+ riscv64)
+ TIZEN_ARCH="riscv64"
+ LINK_ARCH="riscv"
+ ;;
*)
echo "Unsupported architecture for tizen: $ARCH"
exit 1
@@ -58,4 +62,21 @@ rm -rf $TIZEN_TMP_DIR
echo ">>Start configuring Tizen rootfs"
ln -sfn asm-${LINK_ARCH} ./usr/include/asm
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
+if [[ "$TIZEN_ARCH" == "riscv64" ]]; then
+ echo "Fixing broken symlinks in $PWD"
+ rm ./usr/lib64/libresolv.so
+ ln -s ../../lib64/libresolv.so.2 ./usr/lib64/libresolv.so
+ rm ./usr/lib64/libpthread.so
+ ln -s ../../lib64/libpthread.so.0 ./usr/lib64/libpthread.so
+ rm ./usr/lib64/libdl.so
+ ln -s ../../lib64/libdl.so.2 ./usr/lib64/libdl.so
+ rm ./usr/lib64/libutil.so
+ ln -s ../../lib64/libutil.so.1 ./usr/lib64/libutil.so
+ rm ./usr/lib64/libm.so
+ ln -s ../../lib64/libm.so.6 ./usr/lib64/libm.so
+ rm ./usr/lib64/librt.so
+ ln -s ../../lib64/librt.so.1 ./usr/lib64/librt.so
+ rm ./lib/ld-linux-riscv64-lp64d.so.1
+ ln -s ../lib64/ld-linux-riscv64-lp64d.so.1 ./lib/ld-linux-riscv64-lp64d.so.1
+fi
echo "< /usr/local/bin/scancode << EOF
+#!/bin/bash
+set -euo pipefail
+source $pyEnvPath/bin/activate
+scancode "\$@"
+deactivate
+EOF
+
+chmod +x /usr/local/bin/scancode
diff --git a/eng/pipelines/source-build-license-scan.yml b/eng/pipelines/source-build-license-scan.yml
new file mode 100644
index 000000000..bcf7e84f1
--- /dev/null
+++ b/eng/pipelines/source-build-license-scan.yml
@@ -0,0 +1,137 @@
+# Pipeline documentation at https://github.com/dotnet/dotnet/blob/main/docs/license-scanning.md
+
+schedules:
+- cron: "0 7 * * 1-5"
+ displayName: Run on weekdays at 7am UTC
+ branches:
+ include:
+ - main
+ - release/*
+
+pr: none
+trigger: none
+
+parameters:
+# Provides a way to scan a specific repo. If not provided, all repos of the VMR will be scanned.
+- name: specificRepoName
+ type: string
+ displayName: "Specific repo name to scan (e.g. runtime, sdk). If empty, scans all repos of the VMR."
+ default: " " # Set it to an empty string to allow it be an optional parameter
+
+variables:
+ installerRoot: '$(Build.SourcesDirectory)/src/installer'
+
+jobs:
+- job: Setup
+ pool:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals 1es-ubuntu-2004
+ steps:
+ - script: |
+ vmrSrcDir="$(Build.SourcesDirectory)/src"
+
+ # Builds an Azure DevOps matrix definition. Each entry in the matrix is a path,
+ # allowing a job to be run for each src repo.
+ matrix=""
+
+ # Trim leading/trailing spaces from the repo name
+ specificRepoName=$(echo "${{ parameters.specificRepoName }}" | awk '{$1=$1};1')
+
+ # If the repo name is provided, only scan that repo.
+ if [ ! -z "$specificRepoName" ]; then
+ matrix="\"$specificRepoName\": { \"repoPath\": \"$vmrSrcDir/$specificRepoName\" }"
+ else
+ for dir in $vmrSrcDir/*/
+ do
+ if [ ! -z "$matrix" ]; then
+ matrix="$matrix,"
+ fi
+ repoName=$(basename $dir)
+ matrix="$matrix \"$repoName\": { \"repoPath\": \"$dir\" }"
+ done
+ fi
+
+ matrix="{ $matrix }"
+
+ echo "##vso[task.setvariable variable=matrix;isOutput=true]$matrix"
+ name: GetMatrix
+ displayName: Get Matrix
+
+- job: LicenseScan
+ dependsOn: Setup
+ pool:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals 1es-ubuntu-2004
+ timeoutInMinutes: 420
+ strategy:
+ matrix: $[ dependencies.Setup.outputs['GetMatrix.matrix'] ]
+ steps:
+
+ - script: $(Build.SourcesDirectory)/prep.sh --no-artifacts --no-bootstrap --no-prebuilts
+ displayName: 'Install .NET SDK'
+
+ - task: PipAuthenticate@1
+ displayName: 'Pip Authenticate'
+ inputs:
+ artifactFeeds: public/dotnet-public-pypi
+ onlyAddExtraIndex: false
+
+ - script: $(installerRoot)/eng/install-scancode.sh
+ displayName: Install Scancode
+
+ - script: >
+ $(Build.SourcesDirectory)/.dotnet/dotnet test
+ $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj
+ --filter "FullyQualifiedName=Microsoft.DotNet.SourceBuild.SmokeTests.LicenseScanTests.ScanForLicenses"
+ --logger:'trx;LogFileName=$(Agent.JobName)_LicenseScan.trx'
+ --logger:'console;verbosity=detailed'
+ -c Release
+ -bl:$(Build.SourcesDirectory)/artifacts/log/Debug/BuildTests_$(date +"%m%d%H%M%S").binlog
+ -flp:LogFile=$(Build.SourcesDirectory)/artifacts/logs/BuildTests_$(date +"%m%d%H%M%S").log
+ -clp:v=m
+ -e SMOKE_TESTS_LICENSE_SCAN_PATH=$(repoPath)
+ -e SMOKE_TESTS_RUNNING_IN_CI=true
+ -e SMOKE_TESTS_WARN_LICENSE_SCAN_DIFFS=false
+ -e SMOKE_TESTS_TARGET_RID=linux-x64
+ -e SMOKE_TESTS_PORTABLE_RID=linux-x64
+ displayName: Run Tests
+ workingDirectory: $(Build.SourcesDirectory)
+
+ - script: |
+ set -x
+ targetFolder=$(Build.StagingDirectory)/BuildLogs/
+ mkdir -p ${targetFolder}
+ cd "$(Build.SourcesDirectory)"
+ find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \;
+ find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \;
+ echo "Updated:"
+ find test/ -type f -name "Updated*.json"
+ find test/ -type f -name "Updated*.json" -exec cp {} --parents -t ${targetFolder} \;
+ echo "Results:"
+ find test/ -type f -name "scancode-results*.json"
+ find test/ -type f -name "scancode-results*.json" -exec cp {} --parents -t ${targetFolder} \;
+ echo "All:"
+ ls -R test/
+ echo "BuildLogs:"
+ ls -R ${targetFolder}
+ displayName: Prepare BuildLogs staging directory
+ continueOnError: true
+ condition: succeededOrFailed()
+
+ - publish: '$(Build.StagingDirectory)/BuildLogs'
+ artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
+ displayName: Publish BuildLogs
+ continueOnError: true
+ condition: succeededOrFailed()
+
+ - task: PublishTestResults@2
+ displayName: Publish Test Results
+ condition: succeededOrFailed()
+ continueOnError: true
+ inputs:
+ testRunner: vSTest
+ testResultsFiles: '*.trx'
+ searchFolder: $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
+ mergeTestResults: true
+ publishRunAttachments: true
+ testRunTitle: $(Agent.JobName)
diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml
index a675aed38..e6a827a51 100644
--- a/eng/pipelines/vmr-build.yml
+++ b/eng/pipelines/vmr-build.yml
@@ -4,6 +4,10 @@ pr:
include:
- main
- release/*
+ exclude:
+ - release/*.0.2xx
+ - release/*.0.3xx
+ - release/*.0.4xx
parameters:
- name: vmrBranch
diff --git a/eng/pipelines/vmr-sync-internal.yml b/eng/pipelines/vmr-sync-internal.yml
index 176f98910..0a10a518e 100644
--- a/eng/pipelines/vmr-sync-internal.yml
+++ b/eng/pipelines/vmr-sync-internal.yml
@@ -5,6 +5,10 @@ trigger:
branches:
include:
- internal/release/*
+ exclude:
+ - internal/release/*.0.2xx
+ - internal/release/*.0.3xx
+ - internal/release/*.0.4xx
resources:
repositories:
diff --git a/global.json b/global.json
index 44e4a3092..32975e690 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "8.0.100-rc.1.23463.5",
+ "dotnet": "9.0.100-alpha.1.23511.2",
"runtimes": {
"dotnet": [
"$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)",
@@ -12,7 +12,7 @@
"cmake": "3.21.0"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1",
- "Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.23463.1"
+ "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23518.2",
+ "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.23518.2"
}
}
diff --git a/src/SourceBuild/content/build.proj b/src/SourceBuild/content/build.proj
index 6c86e0b76..fd4ef5129 100644
--- a/src/SourceBuild/content/build.proj
+++ b/src/SourceBuild/content/build.proj
@@ -8,6 +8,10 @@
+
+ true
+
+
diff --git a/src/SourceBuild/content/docs/license-scanning.md b/src/SourceBuild/content/docs/license-scanning.md
new file mode 100644
index 000000000..6007776ab
--- /dev/null
+++ b/src/SourceBuild/content/docs/license-scanning.md
@@ -0,0 +1,24 @@
+# License Scanning
+
+The VMR is regularly scanned for license references to ensure that only open-source license are used where relevant.
+
+License scanning pipline: https://dev.azure.com/dnceng/internal/_build?definitionId=1301 (internal only)
+
+License scanning test: https://github.com/dotnet/dotnet/blob/main/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs
+
+By default, running the pipeline will scan all repos within the VMR which takes several hours to run.
+The pipeline can be triggered manually to target a specific repo within the VMR by setting the `specificRepoName` parameter.
+This value should be the name of the repo within the VMR (i.e. a name of a directory within https://github.com/dotnet/dotnet/tree/main/src).
+To test source modifications intended to resolve a license issue, apply the change in an internal branch of the VMR.
+Run this pipeline, targeting your branch, and set the `specificRepoName` parameter to the name of the repo containing the change.
+
+The output of the pipeline is a set of test results and logs.
+The logs are published as an artifact and can be found at test/Microsoft.DotNet/SourceBuild.SmokeTests/bin/Release/netX.0/logs.
+It consists of the following:
+ * `UpdatedLicenses..json`: This is the output of that gets compared to the stored baseline.
+ If they're the same, the test passes; if not, it fails. By comparing this file to the baseline, one can determine which new license
+ references have been introduced.
+ If everything is deemed to be acceptable, the developer can either update the allowed licenses, update the exclusions file, update the
+ baseline, or any combination.
+ * `scancode-results.json`: This is the raw output that comes from scancode. This file is useful for diagnostic purposes because it tells you
+ the exact line number of where a license has been detected in a file.
diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props
index 80faaca38..e22e27fa3 100644
--- a/src/SourceBuild/content/eng/Versions.props
+++ b/src/SourceBuild/content/eng/Versions.props
@@ -32,5 +32,6 @@
-->
https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.100-rc.1.23455.1.centos.8-x64.tar.gz
https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.100-rc.1.23455.1-centos.8-x64.tar.gz
+ https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Prebuilts.0.1.0-9.0.100-3.centos.8-x64.tar.gz
diff --git a/src/SourceBuild/content/eng/pipelines/ci.yml b/src/SourceBuild/content/eng/pipelines/ci.yml
index 55b6a212d..be751b083 100644
--- a/src/SourceBuild/content/eng/pipelines/ci.yml
+++ b/src/SourceBuild/content/eng/pipelines/ci.yml
@@ -7,6 +7,13 @@ trigger:
- main
- release/*
- internal/release/*
+ exclude:
+ - release/*.0.2xx
+ - release/*.0.3xx
+ - release/*.0.4xx
+ - internal/release/*.0.2xx
+ - internal/release/*.0.3xx
+ - internal/release/*.0.4xx
pr:
branches:
diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json
index 1d6588cf9..e1487359b 100644
--- a/src/SourceBuild/content/global.json
+++ b/src/SourceBuild/content/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "8.0.100-rc.1.23455.8"
+ "dotnet": "9.0.100-alpha.1.23511.2"
},
"msbuild-sdks": {
"Microsoft.Build.CentralPackageVersions": "2.0.1",
diff --git a/src/SourceBuild/content/prep.sh b/src/SourceBuild/content/prep.sh
index 472c348ae..f9e88d6c4 100755
--- a/src/SourceBuild/content/prep.sh
+++ b/src/SourceBuild/content/prep.sh
@@ -157,6 +157,9 @@ function BootstrapArtifacts {
if [ "$installDotnet" == true ]; then
echo " Installing dotnet..."
(source ./eng/common/tools.sh && InitializeDotNetCli true)
+
+ # TODO: Remove once runtime dependency is gone (https://github.com/dotnet/runtime/issues/93666)
+ bash .dotnet/dotnet-install.sh --install-dir "$SCRIPT_ROOT/.dotnet" --channel 8.0 --runtime dotnet
fi
# Read the eng/Versions.props to get the archives to download and download them
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs
index ab60beb00..52517ca1f 100644
--- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs
@@ -16,7 +16,7 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
[Trait("Category", "SdkContent")]
-public class ArtifactsSizeTest : SmokeTests
+public class ArtifactsSizeTest : SdkTests
{
private const int SizeThresholdPercentage = 25;
private static readonly string BaselineFilePath = BaselineHelper.GetBaselineFilePath($"ArtifactsSizes/{Config.TargetRid}.txt");
@@ -41,7 +41,8 @@ public class ArtifactsSizeTest : SmokeTests
}
- [SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)]
+ // https://github.com/dotnet/source-build/issues/3668
+ //[SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)]
public void CompareArtifactsToBaseline()
{
Utilities.ValidateNotNullOrWhiteSpace(Config.SourceBuiltArtifactsPath, Config.SourceBuiltArtifactsPathEnv);
@@ -64,7 +65,7 @@ public class ArtifactsSizeTest : SmokeTests
try
{
- string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt");
+ string actualFilePath = Path.Combine(LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt");
File.WriteAllLines(actualFilePath, tarEntries.Select(entry => $"{entry.FilePath}: {entry.Bytes}"));
}
catch (IOException ex)
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
index f5bf4ebe8..6b7c6f71a 100644
--- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
@@ -41,12 +41,12 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
Assert.Null(message);
}
- public static void CompareBaselineContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
+ public static void CompareBaselineContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false, string baselineSubDir = "")
{
- string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"Updated{baselineFileName}");
+ string actualFilePath = Path.Combine(TestBase.LogsDirectory, $"Updated{baselineFileName}");
File.WriteAllText(actualFilePath, actualContents);
- CompareFiles(GetBaselineFilePath(baselineFileName), actualFilePath, outputHelper, warnOnDiffs);
+ CompareFiles(GetBaselineFilePath(baselineFileName, baselineSubDir), actualFilePath, outputHelper, warnOnDiffs);
}
public static void CompareFiles(string expectedFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
@@ -87,7 +87,8 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
public static string GetAssetsDirectory() => Path.Combine(Directory.GetCurrentDirectory(), "assets");
- public static string GetBaselineFilePath(string baselineFileName) => Path.Combine(GetAssetsDirectory(), "baselines", baselineFileName);
+ public static string GetBaselineFilePath(string baselineFileName, string baselineSubDir = "") =>
+ Path.Combine(GetAssetsDirectory(), "baselines", baselineSubDir, baselineFileName);
public static string RemoveRids(string diff, bool isPortable = false) =>
isPortable ? diff.Replace(Config.PortableRid, "portable-rid") : diff.Replace(Config.TargetRid, "banana-rid");
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs
index 4f1aafc68..92342a2b1 100644
--- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs
@@ -15,12 +15,13 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// for related web scenarios.
/// They are encapsulated in a separate testclass so that they can be run in parallel.
///
-public class BasicScenarioTests : SmokeTests
+public class BasicScenarioTests : SdkTests
{
public BasicScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
- [Theory]
- [MemberData(nameof(GetScenarioObjects))]
+ // https://github.com/dotnet/source-build/issues/3668
+ // [Theory]
+ // [MemberData(nameof(GetScenarioObjects))]
public void VerifyScenario(TestScenario scenario) => scenario.Execute(DotNetHelper);
public static IEnumerable