diff --git a/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-03.md b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-03.md new file mode 100644 index 00000000000..7eaed69ac1f --- /dev/null +++ b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-03.md @@ -0,0 +1,75 @@ +# 03 May 2023 Rollout Summaries + +## arcade-services + +| Metric | Value | Target | Score | +|:--------------------------------:|:--------:|:--------:|:---------:| +| Time to Rollout | 02:03:56 | 06:00:00 | 0 | +| Critical/blocking issues created | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | +| Rollbacks | 0 | 0 | 0 | +| Service downtime | 00:00:00 | 00:00:00 | 0 | +| Failed to rollout | FALSE | FALSE | 0 | +| Total | | | **0** | + + +## dotnet-helix-service + +| Metric | Value | Target | Score | +|:--------------------------------:|:--------:|:--------:|:---------:| +| Time to Rollout | 03:59:25 | 06:00:00 | 0 | +| Critical/blocking issues created | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | +| Rollbacks | 1 | 0 | 10 | +| Service downtime | 00:00:00 | 00:00:00 | 0 | +| Failed to rollout | TRUE | FALSE | 50 | +| Total | | | **60** | + + +## dotnet-helix-machines + +| Metric | Value | Target | Score | +|:--------------------------------:|:--------:|:--------:|:---------:| +| Time to Rollout | 04:21:50 | 06:00:00 | 0 | +| Critical/blocking issues created | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | +| Rollbacks | 0 | 0 | 0 | +| Service downtime | 00:00:00 | 00:00:00 | 0 | +| Failed to rollout | FALSE | FALSE | 0 | +| Total | | | **0** | + + +# Itemized Scorecard + +## arcade-services + +| Metric | [20230503.3](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2172754) | +|:-----:|:-----:| +| Time to Rollout | 02:03:56 | +| Critical/blocking issues created | 0 | +| Hotfixes | 0 | +| Rollbacks | 0 | +| Service downtime | 00:00:00 | + + +## dotnet-helix-service + +| Metric | [2023050301](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2172779) | [2023050302](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2173059) | +|:-----:|:-----:|:-----:| +| Time to Rollout | 02:03:52 | 01:55:33 | +| Critical/blocking issues created | 0 | 0 | +| Hotfixes | 0 | 0 | +| Rollbacks | 0 | 1 | +| Service downtime | 00:00:00 | 00:00:00 | + + +## dotnet-helix-machines + +| Metric | [20230503.02](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2172777) | +|:-----:|:-----:| +| Time to Rollout | 04:21:50 | +| Critical/blocking issues created | 0 | +| Hotfixes | 0 | +| Rollbacks | 0 | +| Service downtime | 00:00:00 | + diff --git a/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-10.md b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-10.md index 69f98f7d5f5..dda74b6b9ba 100644 --- a/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-10.md +++ b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-10.md @@ -4,24 +4,24 @@ | Metric | Value | Target | Score | |:--------------------------------:|:--------:|:--------:|:---------:| -| Time to Rollout | 23:27:15 | 06:00:00 | 50 | +| Time to Rollout | 1.01:34:17 | 06:00:00 | 50 | | Critical/blocking issues created | 0 | 0 | 0 | | Hotfixes | 0 | 0 | 0 | | Rollbacks | 0 | 0 | 0 | | Service downtime | 00:00:00 | 00:00:00 | 0 | -| Failed to rollout | TRUE | FALSE | 50 | -| Total | | | **100** | +| Failed to rollout | FALSE | FALSE | 0 | +| Total | | | **50** | # Itemized Scorecard ## arcade-services -| Metric | [20230510.1](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2177776) | [20230510.2](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2177932) | [20230510.4](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2178116) | -|:-----:|:-----:|:-----:|:-----:| -| Time to Rollout | 01:44:04 | 03:50:21 | 17:52:50 | -| Critical/blocking issues created | 0 | 0 | 0 | -| Hotfixes | 0 | 0 | 0 | -| Rollbacks | 0 | 0 | 0 | -| Service downtime | 00:00:00 | 00:00:00 | 00:00:00 | +| Metric | [20230510.1](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2177776) | [20230510.2](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2177932) | [20230510.4](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2178116) | [20230517.1](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2182427) | +|:-----:|:-----:|:-----:|:-----:|:-----:| +| Time to Rollout | 01:44:04 | 03:50:21 | 17:52:50 | 02:07:02 | +| Critical/blocking issues created | 0 | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | 0 | +| Rollbacks | 0 | 0 | 0 | 0 | +| Service downtime | 00:00:00 | 00:00:00 | 00:00:00 | 00:00:00 | diff --git a/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-17.md b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-17.md new file mode 100644 index 00000000000..891ed529f7d --- /dev/null +++ b/Documentation/TeamProcess/Rollout-Scorecards/Scorecard_2023-05-17.md @@ -0,0 +1,51 @@ +# 17 May 2023 Rollout Summaries + +## dotnet-helix-service + +| Metric | Value | Target | Score | +|:--------------------------------:|:--------:|:--------:|:---------:| +| Time to Rollout | 01:55:14 | 06:00:00 | 0 | +| Critical/blocking issues created | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | +| Rollbacks | 0 | 0 | 0 | +| Service downtime | 00:00:00 | 00:00:00 | 0 | +| Failed to rollout | FALSE | FALSE | 0 | +| Total | | | **0** | + + +## dotnet-helix-machines + +| Metric | Value | Target | Score | +|:--------------------------------:|:--------:|:--------:|:---------:| +| Time to Rollout | 04:12:56 | 06:00:00 | 0 | +| Critical/blocking issues created | 0 | 0 | 0 | +| Hotfixes | 0 | 0 | 0 | +| Rollbacks | 0 | 0 | 0 | +| Service downtime | 00:00:00 | 00:00:00 | 0 | +| Failed to rollout | FALSE | FALSE | 0 | +| Total | | | **0** | + + +# Itemized Scorecard + +## dotnet-helix-service + +| Metric | [2023051701](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2182422) | +|:-----:|:-----:| +| Time to Rollout | 01:55:14 | +| Critical/blocking issues created | 0 | +| Hotfixes | 0 | +| Rollbacks | 0 | +| Service downtime | 00:00:00 | + + +## dotnet-helix-machines + +| Metric | [20230517.01](https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2182188) | +|:-----:|:-----:| +| Time to Rollout | 04:12:56 | +| Critical/blocking issues created | 0 | +| Hotfixes | 0 | +| Rollbacks | 0 | +| Service downtime | 00:00:00 | + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2be0162a5cc..6423f316a19 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,30 +15,30 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-symuploader 62ceb439e80bf0814d0ffa17f022d4624ea4aa6c - + https://github.com/dotnet/templating - 9982bb9be5c0d2ceca1776b8eb12392f7d3bf613 + 812fc96b2953dfbb5cf46ee60cf47f4e287c8179 - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + c27937680063bcf06804c9fd0466d26a0f9ea4e6 - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + c27937680063bcf06804c9fd0466d26a0f9ea4e6 - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + c27937680063bcf06804c9fd0466d26a0f9ea4e6 - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + c27937680063bcf06804c9fd0466d26a0f9ea4e6 - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + c27937680063bcf06804c9fd0466d26a0f9ea4e6 https://github.com/dotnet/arcade-services @@ -48,9 +48,9 @@ https://github.com/dotnet/arcade-services a5f3ed9d5f560555ff6d26b286acdcfbb7ce3b14 - + https://github.com/dotnet/xharness - 230501dc45d8c96e995ceed1189852eb0ee08693 + 98cbe592ee7494c5813d0e5173bc7a160fbcce70 https://github.com/dotnet/roslyn @@ -60,14 +60,14 @@ https://github.com/dotnet/linker 3efd231da430baa0fd670e278f6b5c3e62834bde - + https://github.com/dotnet/sourcelink - 54eb3b811c57f5e94617d31a102fc9cb664ccdd5 + 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 - + https://github.com/dotnet/sourcelink - 54eb3b811c57f5e94617d31a102fc9cb664ccdd5 + 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 https://github.com/dotnet/symreader-converter @@ -77,9 +77,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/xliff-tasks - d033e96327903618482de22f76c971c7fe91e8f4 + 4234ffac87e305da80597cb46dc0d4a87fc4f7c2 @@ -94,14 +94,14 @@ 547c506abe05e510bd43330fc8f6d4c5961e9223 - + https://github.com/dotnet/source-build-reference-packages - b0f656e394f8e98f48f11612ac997750bb85ff6c + b34c6434a7b422a79e104ef7f24cee0d6ddba3c5 - + https://github.com/dotnet/source-build-externals - 7f9ae67f86a5adc1d9bf2f22f4bf3ec05b6d7b68 + 06913fc4c3fcb0065ee390d135fb766870d2c38a diff --git a/eng/Versions.props b/eng/Versions.props index f80fc2364df..d876e448490 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,9 +8,9 @@ - 8.0.0-beta.23308.2 - 8.0.0-beta.23308.2 - 8.0.0-beta.23308.2 + 8.0.0-beta.23314.1 + 8.0.0-beta.23314.1 + 8.0.0-beta.23314.1 1.1.0-beta.21553.1 1.1.0-beta.22076.4 @@ -63,18 +63,18 @@ 8.0.100-preview.3.23178.3 - 8.0.0-beta.23252.2 - 8.0.0-beta.23252.2 + 8.0.0-beta.23314.2 + 8.0.0-beta.23314.2 1.1.0-beta2-19575-01 - 8.0.100-preview.6.23305.5 + 8.0.100-preview.6.23311.1 17.5.0 - 8.0.0-prerelease.23279.1 + 8.0.0-prerelease.23307.1 - 1.0.0-beta.23305.1 + 1.0.0-beta.23312.2 1.31.0 12.16.0 diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index abd045a3247..7e69e3a9e24 100755 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -54,6 +54,10 @@ cpuname=$(uname -m) case $cpuname in arm64|aarch64) buildarch=arm64 + if [ "$(getconf LONG_BIT)" -lt 64 ]; then + # This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS) + buildarch=arm + fi ;; loongarch64) buildarch=loongarch64 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index ffe0b4e2dfc..c9eced9f7df 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,7 +379,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '16.8' + $vsMinVersionReqdStr = '17.6' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, diff --git a/global.json b/global.json index 6a41f5a086d..a0d8aab4de5 100644 --- a/global.json +++ b/global.json @@ -1,10 +1,10 @@ { "tools": { - "dotnet": "8.0.100-preview.4.23260.5" + "dotnet": "8.0.100-preview.5.23303.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23308.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23308.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23314.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23314.1", "Microsoft.Build.NoTargets": "3.7.0" } } diff --git a/src/Microsoft.DotNet.Build.Tasks.Installers/build/deb-package-tool/scripts/config_template_generator.py b/src/Microsoft.DotNet.Build.Tasks.Installers/build/deb-package-tool/scripts/config_template_generator.py index 5fc9343f504..6b9843ecd38 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Installers/build/deb-package-tool/scripts/config_template_generator.py +++ b/src/Microsoft.DotNet.Build.Tasks.Installers/build/deb-package-tool/scripts/config_template_generator.py @@ -69,8 +69,10 @@ def generate_rules(config_data, template_dir): ignored_libraries = config_data.get("debian_ignored_libraries", None) override_text = "" - if ignored_dependency_packages != None: + if ignored_dependency_packages != None or ignored_libraries != None: override_text = "override_dh_shlibdeps:\n\tdh_shlibdeps" + + if ignored_dependency_packages != None: override_text += " --dpkg-shlibdeps-params=\"" for package in ignored_dependency_packages: @@ -80,7 +82,7 @@ def generate_rules(config_data, template_dir): if ignored_libraries != None: for library in ignored_libraries: - override_text += "-X{0} ".format(library) + override_text += " -X{0} ".format(library) return template.format(overrides=override_text) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props b/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props index 6ce028b4b67..d51677d46db 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props @@ -2,7 +2,7 @@ false - 8.0.0-preview.4.23260.4 + 8.0.0-preview.5.23302.2 runtime $(BundledNETCoreAppPackageVersion) diff --git a/src/Microsoft.DotNet.SignTool/src/BatchSignUtil.cs b/src/Microsoft.DotNet.SignTool/src/BatchSignUtil.cs index d1c78ba6689..8b00b9fe55e 100644 --- a/src/Microsoft.DotNet.SignTool/src/BatchSignUtil.cs +++ b/src/Microsoft.DotNet.SignTool/src/BatchSignUtil.cs @@ -214,32 +214,76 @@ void repackGroup(IEnumerable files, out int repackCount) var repackList = files.Where(w => toRepackSet.Contains(w.FullPath)).ToList(); repackCount = repackList.Count(); - if(repackCount == 0) + + if (repackCount == 0) { return; } _log.LogMessage(MessageImportance.High, $"Repacking {repackCount} containers."); + const int repackParallelism = 16; ParallelOptions parallelOptions = new ParallelOptions(); - parallelOptions.MaxDegreeOfParallelism = 16; - Parallel.ForEach(repackList, parallelOptions, file => + parallelOptions.MaxDegreeOfParallelism = repackParallelism; + + // It's possible that there are large containers within this set that, if + // repacked in parallel, could cause OOMs. To avoid this, we set a limit on the size of containers + // that we will repack in parallel based on the parallelism degree and a 2GB limit. + // Repack these in serial later. + var largeRepackList = new List(); + var smallRepackList = new List(); + const long parallelRepackLimitInBytes = (2 * 1024 / repackParallelism) * 1024 * 1024; + + foreach (var file in repackList) { - if (file.IsZipContainer()) + FileInfo fileInfo = new FileInfo(file.FullPath); + if (fileInfo.Length > parallelRepackLimitInBytes) { - _log.LogMessage($"Repacking container: '{file.FileName}'"); - _batchData.ZipDataMap[file.FileContentKey].Repack(_log); - } - else if (file.IsWixContainer()) - { - _log.LogMessage($"Packing wix container: '{file.FileName}'"); - _batchData.ZipDataMap[file.FileContentKey].Repack(_log, _signTool.TempDir, _signTool.WixToolsPath); + largeRepackList.Add(file); } else { - _log.LogError($"Don't know how to repack file '{file.FullPath}'"); + smallRepackList.Add(file); } + } + + _log.LogMessage(MessageImportance.High, $"Repacking {smallRepackList.Count} containers in parallel."); + + Parallel.ForEach(smallRepackList, parallelOptions, file => + { + repackContainer(file); toRepackSet.Remove(file.FullPath); }); + + if (largeRepackList.Count == 0) + { + return; + } + + _log.LogMessage(MessageImportance.High, $"Repacking {largeRepackList.Count} large containers in serial."); + + foreach (var file in largeRepackList) + { + repackContainer(file); + toRepackSet.Remove(file.FullPath); + } + } + + void repackContainer(FileSignInfo file) + { + if (file.IsZipContainer()) + { + _log.LogMessage($"Repacking container: '{file.FileName}'"); + _batchData.ZipDataMap[file.FileContentKey].Repack(_log); + } + else if (file.IsWixContainer()) + { + _log.LogMessage($"Packing wix container: '{file.FileName}'"); + _batchData.ZipDataMap[file.FileContentKey].Repack(_log, _signTool.TempDir, _signTool.WixToolsPath); + } + else + { + _log.LogError($"Don't know how to repack file '{file.FullPath}'"); + } } // Is this file ready to be signed or repackaged? That is are all of the items that it depends on already diff --git a/src/Microsoft.DotNet.SignTool/src/ZipData.cs b/src/Microsoft.DotNet.SignTool/src/ZipData.cs index a798d97076e..20bfa532d5e 100644 --- a/src/Microsoft.DotNet.SignTool/src/ZipData.cs +++ b/src/Microsoft.DotNet.SignTool/src/ZipData.cs @@ -113,7 +113,8 @@ string getPartRelativeFileName(PackagePart part) /// private void RepackRawZip(TaskLoggingHelper log) { - using (var archive = new ZipArchive(File.Open(FileSignInfo.FullPath, FileMode.Open), ZipArchiveMode.Update)) + using (var zipStream = File.Open(FileSignInfo.FullPath, FileMode.Open)) + using (var archive = new ZipArchive(zipStream, ZipArchiveMode.Update)) { foreach (ZipArchiveEntry entry in archive.Entries) {