Skip to content

[automated] Merge branch 'release/9.0.3xx' => 'main' #49389

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 372 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
372 commits
Select commit Hold shift + click to select a range
bf5edb7
Update branding to 8.0.313
vseanreesermsft May 7, 2025
aacc619
Update queue to ubuntu 2204
v-wuzhai May 8, 2025
ec7c6c3
Update queue to ubuntu 2204
v-wuzhai May 8, 2025
d6f2b8f
Update dependencies from https://github.com/dotnet/razor build 202505…
dotnet-maestro[bot] May 8, 2025
47341c9
Merge commit '094b13b936f6ba3c4048444295fdc963c46817cb'
May 8, 2025
29b1d64
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 8, 2025
4daa391
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 8, 2025
b4f58f2
Update branding to 8.0.313 (#48848)
v-wuzhai May 8, 2025
6fee1c2
Update branding to 8.0.117 (#48847)
v-wuzhai May 8, 2025
9b83f3a
[release/8.0.3xx] Update dependencies from dotnet/arcade (#48733)
v-wuzhai May 8, 2025
b2dd68a
[release/8.0.1xx] Update dependencies from dotnet/arcade (#48732)
v-wuzhai May 8, 2025
bf9db70
Merge branch 'release/8.0.1xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 8, 2025
0054771
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 8, 2025
1e4987a
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 8, 2025
99e7c7c
Merge branch 'release/8.0.1xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 8, 2025
60cd23d
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 8, 2025
9cc4dba
[release/8.0.3xx] Update dependencies from dotnet/templating (#48506)
joeloff May 8, 2025
d1064ab
[release/8.0.1xx] Update dependencies from dotnet/templating (#48861)
v-wuzhai May 9, 2025
d03550c
[release/8.0.1xx] Update dependencies from dotnet/razor (#48730)
v-wuzhai May 9, 2025
d1d63bf
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 9, 2025
f039fcd
[release/8.0.3xx] Update dependencies from dotnet/razor (#48854)
v-wuzhai May 9, 2025
0a812d0
[release/8.0.3xx] Update dependencies from dotnet/templating (#48884)
v-wuzhai May 9, 2025
2afa4c2
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 9, 2025
593cc79
[automated] Merge branch 'release/8.0.1xx' => 'release/8.0.3xx' (#48881)
v-wuzhai May 9, 2025
53e5036
Merge commit 'cf4be5430e0194ba8a10a7493f4e46da9b7515f8' into internal…
vseanreesermsft May 13, 2025
23a7d2c
Merge commit '6475dafd23d18add12328da1638a03d3eea9a526' into internal…
vseanreesermsft May 13, 2025
1952ab7
Merge commit 'cf8e4fd152a012b213a7f76353abc3a36c73d407' into internal…
vseanreesermsft May 13, 2025
539fc44
Respond to PR feedback
marcpopMSFT May 13, 2025
8f990d5
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 14, 2025
a40022f
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 14, 2025
14403b9
[release/8.0.1xx] Update dependencies from dotnet/arcade (#48932)
v-wuzhai May 14, 2025
08eecb0
[release/8.0.3xx] Update dependencies from dotnet/arcade (#48933)
v-wuzhai May 14, 2025
b8bc18d
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 14, 2025
e10afd2
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#48862)
v-wuzhai May 14, 2025
1726481
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 14, 2025
d777d51
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 14, 2025
b99bad3
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 14, 2025
e542a4a
[release/8.0.4xx] Update dependencies from dotnet/arcade (#48963)
v-wuzhai May 15, 2025
9488c28
[release/8.0.3xx] Update dependencies from dotnet/arcade (#48962)
v-wuzhai May 15, 2025
2cd4586
[release/8.0.1xx] Update dependencies from dotnet/arcade (#48961)
v-wuzhai May 15, 2025
b67220e
Merging internal commits for release/8.0.4xx (#48926)
v-wuzhai May 15, 2025
dee68f9
Merging internal commits for release/8.0.3xx (#48927)
v-wuzhai May 15, 2025
4317eb5
Merging internal commits for release/8.0.1xx (#48928)
v-wuzhai May 15, 2025
bf47eb0
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 15, 2025
4058868
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 15, 2025
c4c324e
Revert Nuget.config
v-wuzhai May 15, 2025
bcf4b34
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 15, 2025
04d1847
Revert changes made in the internal commit flow
v-wuzhai May 15, 2025
3d2d066
[release/8.0.1xx] Update dependencies from dotnet/templating (#48978)
v-wuzhai May 15, 2025
1adb6e3
[automated] Merge branch 'release/8.0.1xx' => 'release/8.0.3xx' (#48972)
v-wuzhai May 15, 2025
6ee7ca5
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#48971)
v-wuzhai May 15, 2025
e94aed0
Merge commit '0e86a47920538fb60ecd4d2ccc768e3794b6a278'
May 15, 2025
4edf914
Merge commit 'ac334a154325257704886b56963b7a2b7e0400f2'
May 15, 2025
a64b3a5
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 16, 2025
8bf9a2f
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 16, 2025
f44afef
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 16, 2025
e897a79
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 16, 2025
e9981cf
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] May 16, 2025
8978474
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 16, 2025
2e296f8
[release/8.0.3xx] Update dependencies from dotnet/templating (#48993)
v-wuzhai May 16, 2025
d20e125
[release/8.0.3xx] Update dependencies from dotnet/arcade (#48995)
v-wuzhai May 16, 2025
0c43fb5
[release/8.0.4xx] Update dependencies from dotnet/templating (#48996)
v-wuzhai May 16, 2025
a98d46b
[release/8.0.4xx] Update dependencies from dotnet/arcade (#48997)
v-wuzhai May 16, 2025
bf8fc24
Merge commit '8375919b80a8719dbba6919a10f005aa538c9f92'
May 16, 2025
6a88b80
[release/8.0.1xx] Update dependencies from dotnet/arcade (#48994)
v-wuzhai May 16, 2025
092ac81
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 16, 2025
ed35954
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai May 16, 2025
85600a2
[release/8.0.1xx] Update dependencies from dotnet/templating (#48998)
v-wuzhai May 16, 2025
8876779
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#48999)
v-wuzhai May 16, 2025
eba9cbe
[automated] Merge branch 'release/8.0.1xx' => 'release/8.0.3xx' (#49003)
v-wuzhai May 16, 2025
30b71ab
Update branding to 8.0.314
vseanreesermsft May 16, 2025
f851912
Update branding to 8.0.411
vseanreesermsft May 16, 2025
340420f
Update branding to 8.0.314 (#49018)
marcpopMSFT May 16, 2025
4f2b622
Update branding to 8.0.411 (#49019)
marcpopMSFT May 16, 2025
33d3c11
Merge commit 'c53a652813448fa8c0573b0d6ee81380068abb16'
May 16, 2025
a89e927
Merge commit '01a45a8d8dfc29097ec9479a62fba84983dcea41'
May 16, 2025
fa409d0
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot May 16, 2025
58897a6
Merged PR 50158: [internal/release/9.0.3xx] Update dependencies from …
May 17, 2025
1eb61fe
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 17, 2025
cdbcb8c
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 17, 2025
9f34e83
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot May 17, 2025
cdfbafe
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot May 18, 2025
dc8449c
Merged PR 50177: [internal/release/9.0.3xx] Update dependencies from …
May 18, 2025
512e828
[release/8.0.3xx] Update dependencies from dotnet/templating (#49031)
v-wuzhai May 19, 2025
d26bf2a
Merge commit 'b8972d4d57dbaddcbd305acb274680d977b5bbd0'
May 19, 2025
f5bad53
[release/8.0.4xx] Update dependencies from dotnet/templating (#49032)
v-wuzhai May 19, 2025
631dc8a
Merge commit 'c76bb30753475021219d94ac746bb4ada00bb7d0'
May 19, 2025
a596cd2
Merge commit '963dbdaf10441c526863a2531338627afae2e31c'
May 19, 2025
0862c66
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 19, 2025
ce8eaf7
Upgrade scancode to 32.3.3 and downgrade click to 8.1.8 (#49047)
Winniexu01 May 19, 2025
fb4faad
Delete src/arcade/eng/common directory
akoeplinger May 19, 2025
f079ddc
Update dependencies from https://github.com/dotnet/scenario-tests bui…
dotnet-maestro[bot] May 19, 2025
a3af23e
Remove source-build-lite pipeline (#48956)
ellahathaway May 19, 2025
62acc43
[release/9.0.1xx] Fix SDK Diff pipeline trigger (#49059)
ellahathaway May 20, 2025
f947d8a
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] May 20, 2025
3d254f2
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] May 20, 2025
b64c7cf
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 20, 2025
b224845
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 20, 2025
5f17f3b
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] May 20, 2025
84f47e7
Change pr.yml -> sb-pr.yml (#49093)
ViktorHofer May 22, 2025
38e51fe
Use new SB secrets variable group (#49109)
mthalman May 22, 2025
1d2d0fa
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] May 23, 2025
4475df2
Update dependencies from https://github.com/microsoft/vstest build 20…
dotnet-maestro[bot] May 23, 2025
42effec
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] May 24, 2025
993e54b
Update dependencies from https://github.com/dotnet/razor build 202505…
dotnet-maestro[bot] May 25, 2025
fdb27fa
Update dependencies from https://github.com/dotnet/razor build 202505…
dotnet-maestro[bot] May 26, 2025
67a8554
Fix minimum width of Author column in tabular output
v-wuzhai May 27, 2025
b3ec429
Fix minimum width of Author column in tabular output
v-wuzhai May 27, 2025
b2c21a3
Fix minimum width of Author column in tabular output
v-wuzhai May 27, 2025
ce3250b
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] May 28, 2025
0e597e1
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] May 29, 2025
0dd43bd
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] May 29, 2025
1ac8022
Update dependencies from https://github.com/microsoft/vstest build 20…
dotnet-maestro[bot] Jun 3, 2025
ef24b58
Update branding to 8.0.315
vseanreesermsft Jun 4, 2025
b1de2a4
Update branding to 8.0.412
vseanreesermsft Jun 4, 2025
ce3050c
Update branding to 9.0.108
vseanreesermsft Jun 4, 2025
2293e36
Update branding to 8.0.315 (#49243)
marcpopMSFT Jun 4, 2025
fe34780
Update branding to 8.0.412 (#49244)
marcpopMSFT Jun 4, 2025
f217c38
Update branding to 8.0.118
vseanreesermsft Jun 4, 2025
c256a6d
Update source build to latest 17.8 version
marcpopMSFT Jun 4, 2025
ef57c0b
[release/8.0.3xx] Fix minimum width of Author column in tabular outpu…
marcpopMSFT Jun 4, 2025
c3e1881
[release/8.0.4xx] Fix minimum width of Author column in tabular outpu…
marcpopMSFT Jun 4, 2025
cefa4ac
upgraded logging for #595 log url when connection is closed (#44953)
surayya-MS May 15, 2025
dc3c015
add download retries
surayya-MS May 15, 2025
93aba7b
add test
surayya-MS May 15, 2025
322f3ca
fix test
surayya-MS May 15, 2025
ca1f8c4
set retry to 0 in test
surayya-MS May 15, 2025
f75e4c3
cleanup inside finally block; add test to verify throw after max retries
surayya-MS May 16, 2025
7256843
fix catching UnableToDownloadFromRepositoryException in PushToLocalRe…
surayya-MS May 16, 2025
ea14973
fix e2e test
surayya-MS May 16, 2025
6bd6e4a
bring back accidentally removed code
surayya-MS May 16, 2025
9a5194a
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 4, 2025
164fba2
[release/8.0.1xx] Fix minimum width of Author column in tabular outpu…
v-wuzhai Jun 5, 2025
3a08619
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 5, 2025
757df8c
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 5, 2025
fd89632
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
798ab66
Update branding to 8.0.118 (#49252)
v-wuzhai Jun 5, 2025
8e4cca6
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 5, 2025
a27fe65
[release/8.0.1xx] Update dependencies from dotnet/templating (#49050)
v-wuzhai Jun 5, 2025
0b5780d
[release/8.0.1xx] Delete `src/arcade/eng/common` directory (#49053)
v-wuzhai Jun 5, 2025
1ae6fc2
[release/8.0.1xx] Update dependencies from dotnet/source-build-refere…
v-wuzhai Jun 5, 2025
cf33e4e
[release/8.0.3xx] Update dependencies from dotnet/source-build-refere…
v-wuzhai Jun 5, 2025
63438a4
[release/8.0.3xx] Update dependencies from dotnet/templating (#49069)
v-wuzhai Jun 5, 2025
f31f4ce
[release/8.0.4xx] Update dependencies from dotnet/templating (#49070)
v-wuzhai Jun 5, 2025
5afd7cd
[release/8.0.4xx] Update dependencies from dotnet/source-build-refere…
v-wuzhai Jun 5, 2025
1e56574
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
57150dd
Merge branch 'release/8.0.1xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
dffb3cc
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
0f93207
Update tfms
v-wuzhai Jun 5, 2025
0985fab
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
eb87d79
[release/8.0.1xx] Update dependencies from dotnet/razor (#49132)
v-wuzhai Jun 5, 2025
aea7e84
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
e7802fb
Delete src/arcade/eng/common directory
v-wuzhai Jun 5, 2025
06767b7
Merge branch 'release/9.0.1xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 5, 2025
03a237c
[release/8.0.3xx] Update dependencies from dotnet/razor (#49138)
v-wuzhai Jun 5, 2025
39fbff6
Merge branch 'release/8.0.3xx' into darc-release/8.0.3xx-7fcd7a06-b65…
v-wuzhai Jun 5, 2025
19efe61
use net 9 image in e2e test
surayya-MS Jun 5, 2025
3a6b2be
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 6, 2025
6a5674f
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 6, 2025
5109352
[release/8.0.4xx] Update dependencies from dotnet/templating (#49277)
v-wuzhai Jun 6, 2025
92734d2
[release/8.0.3xx] Update dependencies from dotnet/templating (#49276)
v-wuzhai Jun 6, 2025
d41d862
Merge branch 'release/8.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 6, 2025
bb5116e
[automated] Merge branch 'release/8.0.1xx' => 'release/8.0.3xx' (#49254)
v-wuzhai Jun 6, 2025
1c6164b
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#49249)
v-wuzhai Jun 6, 2025
f57df07
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 6, 2025
4674618
[release/8.0.3xx] Update dependencies from dotnet/msbuild (#49176)
v-wuzhai Jun 6, 2025
dce596d
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 6, 2025
44815de
[release/8.0.3xx] Trusted roots: 2025-05 CTL (#49271)
dtivel Jun 6, 2025
114b3d8
[release/8.0.4xx] Trusted roots: 2025-05 CTL (#49272)
dtivel Jun 6, 2025
9afd6eb
[release/9.0.3xx] Trusted roots: 2025-05 CTL (#49274)
dtivel Jun 6, 2025
d1c38cb
Update dependencies from https://github.com/dotnet/razor build 202506…
dotnet-maestro[bot] Jun 7, 2025
d8a50e5
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] Jun 7, 2025
4c34452
[release/9.0.3xx] Update dependencies from dotnet/razor (#49289)
v-wuzhai Jun 9, 2025
3c67a4d
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Jun 9, 2025
efe503b
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
v-wuzhai Jun 9, 2025
8b5cede
Update to the latest STJ for the pinned versions
marcpopMSFT Jun 9, 2025
9f2d812
Update dependencies from https://github.com/nuget/nuget.client build …
dotnet-maestro[bot] Jun 9, 2025
29f3df9
Fix minimum width of Author column in tabular output
v-wuzhai May 27, 2025
a977de3
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#49279)
v-wuzhai Jun 10, 2025
60fab25
Update arcade version to try to unblock source build
marcpopMSFT Jun 10, 2025
3f1d7f7
Update branding to 9.0.108 (#49245)
marcpopMSFT Jun 10, 2025
55e53cd
Update all test sdk references to the latest version.
marcpopMSFT Dec 18, 2024
22322ac
Revert two of the test files to unblock the test run. Need to reach o…
marcpopMSFT May 23, 2025
c6e076a
Merge branch 'release/9.0.1xx' into darc-release/9.0.1xx-0af0c8ac-629…
marcpopMSFT Jun 10, 2025
cadbced
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] May 19, 2025
1a1f50f
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 4, 2025
2fdf245
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 5, 2025
2ee9e48
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 5, 2025
9fe8275
Merge branch 'release/9.0.1xx' into darc-release/9.0.1xx-4f058e92-080…
marcpopMSFT Jun 10, 2025
3cf015e
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] May 23, 2025
6055711
Update dependencies from https://github.com/dotnet/razor build 202505…
dotnet-maestro[bot] May 25, 2025
586853e
Update dependencies from https://github.com/dotnet/roslyn build 20250…
dotnet-maestro[bot] May 26, 2025
3feb075
[release/9.0.3xx] Update dependencies from microsoft/vstest (#49121)
marcpopMSFT Jun 10, 2025
cc112d2
Merge commit 'a596cd22e2d04075d48d8ba560ea842a1dc8fad3' into internal…
vseanreesermsft Jun 10, 2025
2c417cd
Merge branch 'release/9.0.1xx' into merge/release/8.0.4xx-to-release/…
ellahathaway Jun 10, 2025
57da50e
Reduce specific test executions times (#48405)
marcpopMSFT Jun 10, 2025
8af6c2e
Merge branch 'release/9.0.3xx' into merge/release/9.0.1xx-to-release/…
MiYanni Jun 10, 2025
dfd0af4
[release/9.0.1xx] Trusted roots: 2025-05 CTL (#49273)
dtivel Jun 10, 2025
e03194a
Merging internal commits for release/9.0.3xx (#49325)
MiYanni Jun 10, 2025
a25eed4
[release/9.0.1xx] Update dependencies from dotnet/source-build-refere…
MiYanni Jun 10, 2025
039de15
[release/9.0.3xx] Fixes RepositoryUrl attribute generation (#48627)
MiYanni Jun 10, 2025
fccc7df
Merge branch 'release/9.0.1xx' into darc-release/9.0.1xx-0af0c8ac-629…
MiYanni Jun 10, 2025
837be9c
[release/9.0.1xx] Update dependencies from dotnet/msbuild (#49119)
MiYanni Jun 10, 2025
992970a
Merge branch 'release/9.0.1xx' into backport/pr-47371-to-release/9.0.1xx
MiYanni Jun 11, 2025
01a4bc2
Merge branch 'release/9.0.1xx' into darc-release/9.0.1xx-a38c1a5a-846…
MiYanni Jun 11, 2025
cfb7e9a
Merge branch 'release/9.0.1xx' into darc-release/9.0.1xx-d986dcc1-c75…
MiYanni Jun 11, 2025
6239bab
[release/9.0.1xx] Update dependencies from dotnet/roslyn (#49137)
MiYanni Jun 11, 2025
a6d6d97
Merge branch 'release/9.0.1xx' into merge/release/8.0.4xx-to-release/…
MiYanni Jun 11, 2025
1e11de7
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' (#49317)
MiYanni Jun 11, 2025
61177ba
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Jun 11, 2025
24fb587
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Jun 11, 2025
0322141
[release/9.0.1xx] Update dependencies from dotnet/templating (#49061)
v-wuzhai Jun 11, 2025
7a186ee
[release/9.0.1xx] Update dependencies from dotnet/razor (#49134)
v-wuzhai Jun 11, 2025
e7d536c
[automated] Merge branch 'release/8.0.4xx' => 'release/9.0.1xx' (#49250)
v-wuzhai Jun 11, 2025
ca918d3
[release/9.0.1xx] Update dependencies from dotnet/scenario-tests (#49…
v-wuzhai Jun 11, 2025
70e6105
[release/8.0.3xx] Update dependencies from dotnet/arcade (#49338)
v-wuzhai Jun 11, 2025
e238af7
[release/8.0.4xx] Update dependencies from dotnet/arcade (#49339)
v-wuzhai Jun 11, 2025
0a1a7cf
Merge branch 'release/8.0.4xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 11, 2025
94bf8b1
Merge branch 'release/9.0.1xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 11, 2025
1253d3e
Delete src/arcade/eng/common directory
v-wuzhai Jun 11, 2025
93f05fb
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/sdk into …
v-wuzhai Jun 11, 2025
a8192de
[automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' (#49342)
v-wuzhai Jun 11, 2025
e86b026
[automated] Merge branch 'release/8.0.4xx' => 'release/9.0.1xx' (#49343)
v-wuzhai Jun 11, 2025
105abf6
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' (#49340)
v-wuzhai Jun 11, 2025
b7202bd
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 11, 2025
39ca42f
[release/9.0.1xx] [Github Actions] Remove Branch Lockdown Labels on B…
MiYanni Jun 11, 2025
16127c3
[release/9.0.1xx] Update dependencies from dotnet/templating (#49345)
MiYanni Jun 11, 2025
c7bbdf0
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/sdk into …
Jun 12, 2025
1abf266
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Jun 12, 2025
f57f19e
Update dependencies from https://github.com/dotnet/msbuild build 2025…
dotnet-maestro[bot] Jun 12, 2025
957591b
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' (#49351)
v-wuzhai Jun 12, 2025
ee8cb34
[release/8.0.4xx] Update dependencies from dotnet/templating (#49355)
SimonZhao888 Jun 12, 2025
f7c83ca
[release/9.0.1xx] Update dependencies from dotnet/msbuild (#49356)
v-wuzhai Jun 12, 2025
b40b7b0
Merge branch 'release/9.0.1xx' of https://github.com/dotnet/SDK into …
Jun 12, 2025
f687999
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/SDK into …
Jun 12, 2025
0d47399
[automated] Merge branch 'release/8.0.4xx' => 'release/9.0.1xx' (#49359)
v-wuzhai Jun 12, 2025
9707e1b
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' (#49360)
v-wuzhai Jun 12, 2025
986e33a
Update all test sdk references to the latest version. (#45548)
marcpopMSFT Jun 12, 2025
2c0a34f
Merge branch 'release/9.0.3xx' of https://github.com/dotnet/SDK into …
Jun 13, 2025
77d9abc
[automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' (#49375)
MiYanni Jun 13, 2025
e2c141e
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Jun 13, 2025
db5ee7b
Update to the latest STJ for the pinned versions (#49305)
marcpopMSFT Jun 13, 2025
0dda9fb
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
MiYanni Jun 13, 2025
67bba93
Merge branch 'main' into merge/release/9.0.3xx-to-main
MiYanni Jun 13, 2025
e28062e
Remove duplicate resx string.
MiYanni Jun 13, 2025
cfb6806
Update xlf files to match resx fix.
MiYanni Jun 13, 2025
ecf7b63
Merge branch 'main' of https://github.com/dotnet/SDK into merge/relea…
Jun 17, 2025
5d468ab
Merge branch 'main' into merge/release/9.0.3xx-to-main
MiYanni Jun 17, 2025
6b8e66a
Merge branch 'main' of https://github.com/dotnet/SDK into merge/relea…
Jun 20, 2025
d403680
prefer changes from pr #48987 over #44953
surayya-MS Jun 24, 2025
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 .github/workflows/remove-lockdown-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,4 @@ jobs:
name: 'Branch Lockdown'
});
console.log(`Removed Branch Lockdown label from PR #${pr.number}`);
}
}
2 changes: 2 additions & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<!-- Begin: Package sources from dotnet-aspire -->
<!-- End: Package sources from dotnet-aspire -->
<!-- Begin: Package sources from dotnet-runtime -->
<add key="darc-int-dotnet-runtime-3875b54" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-3875b54e/nuget/v3/index.json" />
<!-- End: Package sources from dotnet-runtime -->
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
Expand Down Expand Up @@ -37,6 +38,7 @@
<clear />
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
<!-- Begin: Package sources from dotnet-runtime -->
<add key="darc-int-dotnet-runtime-3875b54" value="true" />
<!-- End: Package sources from dotnet-runtime -->
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
</disabledPackageSources>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@ private static async Task<int> PushToLocalRegistryAsync(ILogger logger, BuiltIma
await containerRegistry.LoadAsync(builtImage, sourceImageReference, destinationImageReference, cancellationToken).ConfigureAwait(false);
logger.LogInformation(Strings.ContainerBuilder_ImageUploadedToLocalDaemon, destinationImageReference, containerRegistry);
}
catch (UnableToDownloadFromRepositoryException)
{
logger.LogError(Resource.FormatString(nameof(Strings.UnableToDownloadFromRepository)), sourceImageReference);
return 1;
}
catch (Exception ex)
{
logger.LogError(Resource.FormatString(nameof(Strings.RegistryOutputPushFailed), ex.Message));
Expand Down Expand Up @@ -243,11 +248,6 @@ private static async Task<int> PushToRemoteRegistryAsync(ILogger logger, BuiltIm
logger.LogError(Resource.FormatString(nameof(Strings.UnableToDownloadFromRepository)), sourceImageReference);
return 1;
}
catch (UnableToAccessRepositoryException)
{
logger.LogError(Resource.FormatString(nameof(Strings.UnableToAccessRepository), destinationImageReference.Repository, destinationImageReference.RemoteRegistry!.RegistryName));
return 1;
}
catch (Exception e)
{
logger.LogError(Resource.FormatString(nameof(Strings.RegistryOutputPushFailed), e.Message));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ private static async Task PushToLocalRegistryAsync<T>(
await loadFunc(image, sourceImageReference, destinationImageReference, cancellationToken).ConfigureAwait(false);
Log.LogMessage(MessageImportance.High, Strings.ContainerBuilder_ImageUploadedToLocalDaemon, destinationImageReference, localRegistry);
}
catch (UnableToDownloadFromRepositoryException)
{
Log.LogErrorWithCodeFromResources(nameof(Strings.UnableToDownloadFromRepository), sourceImageReference);
}
catch (ContainerHttpException e)
{
Log.LogErrorFromException(e, true);
Expand Down
57 changes: 38 additions & 19 deletions src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ internal sealed class Registry
private const string DockerHubRegistry1 = "registry-1.docker.io";
private const string DockerHubRegistry2 = "registry.hub.docker.com";
private static readonly int s_defaultChunkSizeBytes = 1024 * 64;
private const int MaxDownloadRetries = 5;
private readonly Func<TimeSpan> _retryDelayProvider;

private readonly ILogger _logger;
private readonly IRegistryAPI _registryAPI;
Expand All @@ -87,7 +89,7 @@ internal sealed class Registry
/// </summary>
public string RegistryName { get; }

internal Registry(string registryName, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) :
internal Registry(string registryName, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null, Func<TimeSpan>? retryDelayProvider = null) :
this(new Uri($"https://{registryName}"), logger, registryAPI, settings)
{ }

Expand All @@ -96,15 +98,15 @@ internal Registry(string registryName, ILogger logger, RegistryMode mode, Regist
{ }


internal Registry(Uri baseUri, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) :
internal Registry(Uri baseUri, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null, Func<TimeSpan>? retryDelayProvider = null) :
this(baseUri, logger, new RegistryApiFactory(registryAPI), settings)
{ }

internal Registry(Uri baseUri, ILogger logger, RegistryMode mode, RegistrySettings? settings = null) :
this(baseUri, logger, new RegistryApiFactory(mode), settings)
{ }

private Registry(Uri baseUri, ILogger logger, RegistryApiFactory factory, RegistrySettings? settings = null)
private Registry(Uri baseUri, ILogger logger, RegistryApiFactory factory, RegistrySettings? settings = null, Func<TimeSpan>? retryDelayProvider = null)
{
RegistryName = DeriveRegistryName(baseUri);

Expand All @@ -118,6 +120,8 @@ private Registry(Uri baseUri, ILogger logger, RegistryApiFactory factory, Regist
_logger = logger;
_settings = settings ?? new RegistrySettings(RegistryName);
_registryAPI = factory.Create(RegistryName, BaseUri, logger, _settings.IsInsecure);

_retryDelayProvider = retryDelayProvider ?? (() => TimeSpan.FromSeconds(1));
}

private static string DeriveRegistryName(Uri baseUri)
Expand Down Expand Up @@ -404,33 +408,48 @@ public async Task<string> DownloadBlobAsync(string repository, Descriptor descri
{
cancellationToken.ThrowIfCancellationRequested();
string localPath = ContentStore.PathForDescriptor(descriptor);

if (File.Exists(localPath))
{
// Assume file is up to date and just return it
return localPath;
}

string tempTarballPath = ContentStore.GetTempFile();

try

int retryCount = 0;
while (retryCount < MaxDownloadRetries)
{
// No local copy, so download one
using Stream responseStream = await _registryAPI.Blob.GetStreamAsync(repository, descriptor.Digest, cancellationToken).ConfigureAwait(false);

using (FileStream fs = File.Create(tempTarballPath))
try
{
await responseStream.CopyToAsync(fs, cancellationToken).ConfigureAwait(false);
// No local copy, so download one
using Stream responseStream = await _registryAPI.Blob.GetStreamAsync(repository, descriptor.Digest, cancellationToken).ConfigureAwait(false);

using (FileStream fs = File.Create(tempTarballPath))
{
await responseStream.CopyToAsync(fs, cancellationToken).ConfigureAwait(false);
}

// Break the loop if successful
break;
}
catch (Exception ex)
{
retryCount++;
if (retryCount >= MaxDownloadRetries)
{
throw new UnableToDownloadFromRepositoryException(repository);
}

_logger.LogTrace("Download attempt {0}/{1} for repository '{2}' failed. Error: {3}", retryCount, MaxDownloadRetries, repository, ex.ToString());

// Wait before retrying
await Task.Delay(_retryDelayProvider(), cancellationToken).ConfigureAwait(false);
}
}
catch (Exception)
{
throw new UnableToDownloadFromRepositoryException(repository);
}
cancellationToken.ThrowIfCancellationRequested();


File.Move(tempTarballPath, localPath, overwrite: true);

return localPath;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
using System.Formats.Tar;
using System.Runtime.CompilerServices;
using System.Text.Json;
using FakeItEasy;
using Microsoft.Build.Framework;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.NET.Build.Containers.LocalDaemons;
using Microsoft.NET.Build.Containers.Resources;
Expand Down Expand Up @@ -1431,9 +1433,10 @@ static string[] DecideEntrypoint(string rid, string appName, string workingDir)
}

[DockerAvailableFact]
public async Task CheckErrorMessageWhenSourceRepositoryThrows()
public async void CheckDownloadErrorMessageWhenSourceRepositoryThrows()
{
ILogger logger = _loggerFactory.CreateLogger(nameof(CheckErrorMessageWhenSourceRepositoryThrows));
var loggerFactory = new TestLoggerFactory(_testOutput);
var logger = loggerFactory.CreateLogger(nameof(CheckDownloadErrorMessageWhenSourceRepositoryThrows));
string rid = "win-x64";
string publishDirectory = BuildLocalApp(tfm: ToolsetInfo.CurrentTargetFramework, rid: rid);

Expand All @@ -1459,24 +1462,39 @@ public async Task CheckErrorMessageWhenSourceRepositoryThrows()

// Load the image into the local registry
var sourceReference = new SourceImageReference(registry, "some_random_image", DockerRegistryManager.Net9ImageTag, null);
var destinationReference = new DestinationImageReference(registry, NewImageName(), new[] { rid });
var sawMyException = false;
try
{
await new DockerCli(_loggerFactory).LoadAsync(builtImage, sourceReference, destinationReference, default).ConfigureAwait(false);
}
catch (UnableToDownloadFromRepositoryException e)
{
sawMyException = true;
Assert.Contains("The download of the image from repository some_random_image has failed", e.ToString());
}
Assert.True(sawMyException);
string archivePath = Path.Combine(TestSettings.TestArtifactsDirectory, nameof(CheckDownloadErrorMessageWhenSourceRepositoryThrows));
var destinationReference = new DestinationImageReference(new ArchiveFileRegistry(archivePath), NewImageName(), new[] { rid });

(var taskLog, var errors) = SetupTaskLog();
var telemetry = new Telemetry(sourceReference, destinationReference, taskLog);

await ImagePublisher.PublishImageAsync(builtImage, sourceReference, destinationReference, taskLog, telemetry, CancellationToken.None)
.ConfigureAwait(false);

// Assert the error message
Assert.True(taskLog.HasLoggedErrors);
Assert.NotNull(errors);
Assert.Single(errors);
Assert.Contains("Unable to download image from the repository", errors[0]);

static string[] DecideEntrypoint(string rid, string appName, string workingDir)
{
var binary = rid.StartsWith("win", StringComparison.Ordinal) ? $"{appName}.exe" : appName;
return new[] { $"{workingDir}/{binary}" };
}

static (Microsoft.Build.Utilities.TaskLoggingHelper, List<string?> errors) SetupTaskLog()
{
// We can use any Task, we just need TaskLoggingHelper
Tasks.CreateNewImage cni = new();
List<string?> errors = new();
IBuildEngine buildEngine = A.Fake<IBuildEngine>();
A.CallTo(() => buildEngine.LogWarningEvent(A<BuildWarningEventArgs>.Ignored)).Invokes((BuildWarningEventArgs e) => errors.Add(e.Message));
A.CallTo(() => buildEngine.LogErrorEvent(A<BuildErrorEventArgs>.Ignored)).Invokes((BuildErrorEventArgs e) => errors.Add(e.Message));
A.CallTo(() => buildEngine.LogMessageEvent(A<BuildMessageEventArgs>.Ignored)).Invokes((BuildMessageEventArgs e) => errors.Add(e.Message));
cni.BuildEngine = buildEngine;
return (cni.Log, errors);
}
}

[DockerAvailableFact(checkContainerdStoreAvailability: true)]
Expand Down
71 changes: 71 additions & 0 deletions test/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,77 @@ public void IsRegistryInsecure(string registryName, string? insecureRegistriesEn
Assert.Equal(expectedInsecure, registrySettings.IsInsecure);
}

[Fact]
public async Task DownloadBlobAsync_RetriesOnFailure()
{
// Arrange
var logger = _loggerFactory.CreateLogger(nameof(DownloadBlobAsync_RetriesOnFailure));

var repoName = "testRepo";
var descriptor = new Descriptor(SchemaTypes.OciLayerGzipV1, "sha256:testdigest1234", 1234);
var cancellationToken = CancellationToken.None;

var mockRegistryAPI = new Mock<IRegistryAPI>(MockBehavior.Strict);
mockRegistryAPI
.SetupSequence(api => api.Blob.GetStreamAsync(repoName, descriptor.Digest, cancellationToken))
.ThrowsAsync(new Exception("Simulated failure 1")) // First attempt fails
.ThrowsAsync(new Exception("Simulated failure 2")) // Second attempt fails
.ReturnsAsync(new MemoryStream(new byte[] { 1, 2, 3 })); // Third attempt succeeds

Registry registry = new(repoName, logger, mockRegistryAPI.Object, null, () => TimeSpan.Zero);

string? result = null;
try
{
// Act
result = await registry.DownloadBlobAsync(repoName, descriptor, cancellationToken);

// Assert
Assert.NotNull(result);
Assert.True(File.Exists(result)); // Ensure the file was successfully downloaded
mockRegistryAPI.Verify(api => api.Blob.GetStreamAsync(repoName, descriptor.Digest, cancellationToken), Times.Exactly(3)); // Verify retries
}
finally
{
// Cleanup
if (result != null)
{
File.Delete(result);
}
}
}

[Fact]
public async Task DownloadBlobAsync_ThrowsAfterMaxRetries()
{
// Arrange
var logger = _loggerFactory.CreateLogger(nameof(DownloadBlobAsync_ThrowsAfterMaxRetries));

var repoName = "testRepo";
var descriptor = new Descriptor(SchemaTypes.OciLayerGzipV1, "sha256:testdigest1234", 1234);
var cancellationToken = CancellationToken.None;

var mockRegistryAPI = new Mock<IRegistryAPI>(MockBehavior.Strict);
// Simulate 5 failures (assuming your retry logic attempts 5 times before throwing)
mockRegistryAPI
.SetupSequence(api => api.Blob.GetStreamAsync(repoName, descriptor.Digest, cancellationToken))
.ThrowsAsync(new Exception("Simulated failure 1"))
.ThrowsAsync(new Exception("Simulated failure 2"))
.ThrowsAsync(new Exception("Simulated failure 3"))
.ThrowsAsync(new Exception("Simulated failure 4"))
.ThrowsAsync(new Exception("Simulated failure 5"));

Registry registry = new(repoName, logger, mockRegistryAPI.Object, null, () => TimeSpan.Zero);

// Act & Assert
await Assert.ThrowsAsync<UnableToDownloadFromRepositoryException>(async () =>
{
await registry.DownloadBlobAsync(repoName, descriptor, cancellationToken);
});

mockRegistryAPI.Verify(api => api.Blob.GetStreamAsync(repoName, descriptor.Digest, cancellationToken), Times.Exactly(5));
}

private static NextChunkUploadInformation ChunkUploadSuccessful(Uri requestUri, Uri uploadUrl, int? contentLength, HttpStatusCode code = HttpStatusCode.Accepted)
{
return new(uploadUrl);
Expand Down
Loading
Loading