Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
2e3db93
In deployment .ps1s, fix printing the source of content when local co…
BillyONeal May 12, 2026
5f45a2d
Deduplicate URL selection.
BillyONeal May 12, 2026
acde85b
LFize
BillyONeal May 12, 2026
d3b8cec
Add CMake, Ninja, and Git.
BillyONeal May 12, 2026
49fdd9a
PowerShell nitpicks: LiteralPath, remove needless Names, etc.
BillyONeal May 12, 2026
7b00c94
Python 3.14.5, Azure-CLI 2.86.0
BillyONeal May 12, 2026
abca05c
Dedupe LocalName
BillyONeal May 12, 2026
d48b58e
VS 2026 18.6.0
BillyONeal May 12, 2026
632d9e6
Use ascii because it's enough for what we're doing and works on older…
BillyONeal May 12, 2026
5f45e30
Add 7z and fix ninja installation.
BillyONeal May 12, 2026
c95941b
Remove FileInfo use from ConstrainedLanguage mode.
BillyONeal May 13, 2026
48a578f
Fix LocalName extraction when a SAS token is used.
BillyONeal May 13, 2026
190ce5c
Actually fix ConstrainedLanguage mode.
BillyONeal May 13, 2026
1ae1b69
🐛
BillyONeal May 13, 2026
ee80593
[opencv2] Disable on Windows.
BillyONeal May 15, 2026
74d8fec
Strip extra ? from SAS tokens.
BillyONeal May 16, 2026
68e6a3d
Update Windows pools.
BillyONeal May 16, 2026
3ffb795
Fixup drop layout
BillyONeal May 18, 2026
420b951
Fixup bootstrap from source
BillyONeal May 18, 2026
89003b5
Provision all CRLFs.
BillyONeal May 18, 2026
10e7a4c
[zeroc-ice] Baseline.
BillyONeal May 19, 2026
232532d
zeroc-ice arm64-windows is unsupported.
BillyONeal May 20, 2026
b26682b
[hdf5] ICE
BillyONeal May 20, 2026
9db3642
Fix claiming "the internet" when a SAS token is used. Resolves https:…
BillyONeal May 20, 2026
15da265
[llfio] Baseline due to build failure.
BillyONeal May 21, 2026
1e6f759
Remove =pass from arm64-windows cmake-user/opencv/gdal due to HDF5 ICE.
BillyONeal May 21, 2026
afc33e5
[hdf5] Workaround ICE. Co-authored by GPT 5.5.
BillyONeal May 22, 2026
e4aa296
Also remove feature baseline entries.
BillyONeal May 22, 2026
30a9e4d
[libtorch] Baseline
BillyONeal May 22, 2026
c227399
[libfuse] Add missing numactl dependency.
BillyONeal May 22, 2026
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
21 changes: 21 additions & 0 deletions ports/hdf5/arm64-msvc-ice.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff --git a/src/H5Tinit_float.c b/src/H5Tinit_float.c
index 01d6e89..7955811 100644
--- a/src/H5Tinit_float.c
+++ b/src/H5Tinit_float.c
@@ -461,5 +461,9 @@ H5T__init_native_float_types(void)
*-------------------------------------------------------------------------
*/
+#if defined(_MSC_VER) && (_MSC_VER == 1951) && defined(_M_ARM64)
+#pragma optimize("", off)
+#endif
+
herr_t H5_NO_UBSAN
H5T__init_native_float_types(void)
{
@@ -629,2 +633,6 @@ H5T__init_native_float_types(void)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5T__init_native_float_types() */
+
+#if defined(_MSC_VER) && (_MSC_VER == 1951) && defined(_M_ARM64)
+#pragma optimize("", on)
+#endif
1 change: 1 addition & 0 deletions ports/hdf5/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ vcpkg_from_github(
libaec-config.diff
mpi-flags.diff
win-compile-flags.diff
arm64-msvc-ice.diff
)

set(HDF5_ALLOW_UNSUPPORTED OFF)
Expand Down
1 change: 1 addition & 0 deletions ports/hdf5/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "hdf5",
"version": "2.1.1",
"port-version": 1,
"description": "HDF5 is a data model, library, and file format for storing and managing data",
"homepage": "https://www.hdfgroup.org/downloads/hdf5/",
"license": "BSD-3-Clause",
Expand Down
5 changes: 5 additions & 0 deletions ports/libfuse/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
{
"name": "libfuse",
"version": "3.18.2",
"port-version": 1,
"description": "The reference implementation of the Linux FUSE (Filesystem in Userspace) interface",
"homepage": "https://github.com/libfuse/libfuse",
"license": "LGPL-2.1-only AND GPL-2.0-only",
"supports": "linux | freebsd",
"dependencies": [
{
"name": "numactl",
"platform": "linux"
},
{
"name": "vcpkg-tool-meson",
"host": true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
- job: x64_windows
pool:
name: vcpkg-testing-msvc
demands: ImageVersionOverride -equals 2026.04.24
demands: ImageVersionOverride -equals 2026.05.15
timeoutInMinutes: 2880 # 2 days
variables:
- name: WORKING_ROOT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ param(

Set-StrictMode -Version Latest

$MSVCRoot = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC"
$MSVCRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2026\Build Tools\VC\Tools\MSVC"

$ErrorActionPreference = "Stop"

Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}'))
pool:
name: PrWin-WUS
demands: ImageVersionOverride -equals 2026.04.24
demands: ImageVersionOverride -equals 2026.05.15
timeoutInMinutes: 2880 # 2 days
variables:
- name: WORKING_ROOT
Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/bootstrap-from-source.cmd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x86 -host_arch=x86
call "C:\Program Files (x86)\Microsoft Visual Studio\2026\Build Tools\Common7\Tools\VsDevCmd.bat" -arch=x86 -host_arch=x86
git clone --depth 1 https://github.com/microsoft/vcpkg-tool vcpkg-tool
git -C vcpkg-tool fetch --depth 1 origin %1
git -C vcpkg-tool switch -d FETCH_HEAD
Expand Down
24 changes: 18 additions & 6 deletions scripts/azure-pipelines/windows/create-image.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ $WindowsServerSku = '2025-datacenter-azure-edition'
$ErrorActionPreference = 'Stop'

$ProgressActivity = 'Creating Windows Image'
$TotalProgress = 18
$TotalProgress = 22
$CurrentProgress = 1

# Assigning this to another variable helps when running the commands in this script manually for
Expand Down Expand Up @@ -163,18 +163,18 @@ function Invoke-ScriptWithPrefix {
-Status "Running provisioning script $ScriptName in VM" `
-PercentComplete (100 / $TotalProgress * $CurrentProgress++)

$UtilityPrefixContent = Get-Content "$Root\utility-prefix.ps1" -Encoding utf8NoBOM -Raw
$UtilityPrefixContent = Get-Content -LiteralPath "$Root\utility-prefix.ps1" -Encoding ascii -Raw

$tempScriptFilename = "$env:TEMP\temp-script.txt"
try {
$script = Get-Content "$Root\$ScriptName" -Encoding utf8NoBOM -Raw
$script = Get-Content -LiteralPath "$Root\$ScriptName" -Encoding ascii -Raw
$replacement = @"
if (Test-Path "`$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "`$PSScriptRoot/utility-prefix.ps1") {
. "`$PSScriptRoot/utility-prefix.ps1"
}
"@
$script = $script.Replace($replacement, $UtilityPrefixContent);
Set-Content -Path $tempScriptFilename -Value $script -Encoding utf8NoBOM
Set-Content -LiteralPath $tempScriptFilename -Value $script -Encoding ascii

$parameter = $null
if (-not $SkipSas) {
Expand All @@ -190,7 +190,7 @@ if (Test-Path "`$PSScriptRoot/utility-prefix.ps1") {

Write-Host "$ScriptName output: $($InvokeResult.value.Message)"
} finally {
Remove-Item $tempScriptFilename -Force
Remove-Item -LiteralPath $tempScriptFilename -Force
}
}

Expand All @@ -199,9 +199,21 @@ Invoke-ScriptWithPrefix -ScriptName 'deploy-tlssettings.ps1' -SkipSas
Write-Host 'Waiting 1 minute for VM to reboot...'
Start-Sleep -Seconds 60

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-sevenzip.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-visual-studio.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-git.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-cmake.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-ninja.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-mpi.ps1'

Expand Down
17 changes: 6 additions & 11 deletions scripts/azure-pipelines/windows/deploy-azcopy.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@

param([string]$SasToken)

if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

[string]$AzCopyUrl
if ([string]::IsNullOrEmpty($SasToken)) {
Write-Host 'Downloading from the Internet'
$AzCopyUrl = 'https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.3/azcopy_windows_amd64_10.32.3.zip'
} else {
Write-Host 'Downloading from vcpkgimageminting using SAS token'
$SasToken = $SasToken.Replace('"', '')
$AzCopyUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/azcopy_windows_amd64_10.32.3.zip?$SasToken"
}
$AzCopyUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.3/azcopy_windows_amd64_10.32.3.zip' `
-BlobAssetName 'azcopy_windows_amd64_10.32.3.zip'

mkdir -Force "C:\AzCopy10"
DownloadAndUnzip -Name 'azcopy' -Url $AzCopyUrl -Destination "C:\AzCopy10"
DownloadAndUnzip -Url $AzCopyUrl -Destination "C:\AzCopy10" -StripRootDirectory
17 changes: 6 additions & 11 deletions scripts/azure-pipelines/windows/deploy-azure-cli.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,13 @@

param([string]$SasToken)

if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

[string]$AzCliUrl
if ([string]::IsNullOrEmpty($SasToken)) {
Write-Host 'Downloading from the Internet'
$AzCliUrl = 'https://azcliprod.blob.core.windows.net/msi/azure-cli-2.85.0-x64.msi'
} else {
Write-Host 'Downloading from vcpkgimageminting using SAS token'
$SasToken = $SasToken.Replace('"', '')
$AzCliUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/azure-cli-2.85.0-x64.msi?$SasToken"
}
$AzCliUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://azcliprod.blob.core.windows.net/msi/azure-cli-2.86.0-x64.msi' `
-BlobAssetName 'azure-cli-2.86.0-x64.msi'

DownloadAndInstall -Url $AzCliUrl -Name 'Azure CLI' -Args @('/quiet', '/norestart')
DownloadAndInstall -Url $AzCliUrl -Args @('/quiet', '/norestart')
22 changes: 22 additions & 0 deletions scripts/azure-pipelines/windows/deploy-cmake.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: MIT

param([string]$SasToken)

if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

$CMakeUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://github.com/Kitware/CMake/releases/download/v4.3.2/cmake-4.3.2-windows-x86_64.msi' `
-BlobAssetName 'cmake-4.3.2-windows-x86_64.msi'

DownloadAndInstall -Url $CMakeUrl -Args @('/quiet', '/norestart', 'ADD_CMAKE_TO_PATH=System')

$cmakeExePath = Join-Path $env:ProgramFiles 'CMake\bin\cmake.exe'
if (Test-Path -LiteralPath $cmakeExePath) {
Write-Host 'CMake appears correctly installed.'
} else {
Write-Error "CMake appears broken! Missing $cmakeExePath."
}
17 changes: 6 additions & 11 deletions scripts/azure-pipelines/windows/deploy-cuda.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@

param([string]$SasToken)

if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

[string]$CudaUrl
if ([string]::IsNullOrEmpty($SasToken)) {
Write-Host 'Downloading from the Internet'
$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda_13.2.0_windows.exe'
} else {
Write-Host 'Downloading from vcpkgimageminting using SAS token'
$SasToken = $SasToken.Replace('"', '')
$CudaUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/cuda_13.2.0_windows.exe?$SasToken"
}
$CudaUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda_13.2.0_windows.exe' `
-BlobAssetName 'cuda_13.2.0_windows.exe'

# https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
# Intentionally omitted:
Expand All @@ -26,7 +21,7 @@ if ([string]::IsNullOrEmpty($SasToken)) {
# nsight_vse_13.2
# occupancy_calculator_13.2 (this is named like a tool but listed as 'documentation' in the installer)
# visual_studio_integration_13.2
DownloadAndInstall -Name 'CUDA' -Url $CudaUrl -Args @(
DownloadAndInstall -Url $CudaUrl -Args @(
'-s',
'crt_13.2',
'cublas_13.2',
Expand Down
22 changes: 10 additions & 12 deletions scripts/azure-pipelines/windows/deploy-cudnn.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,21 @@

param([string]$SasToken)

if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

[string]$CudnnUrl
if ([string]::IsNullOrEmpty($SasToken)) {
Write-Host 'Downloading from the Internet'
$CudnnUrl = 'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/windows-x86_64/cudnn-windows-x86_64-9.20.0.48_cuda13-archive.zip'
} else {
Write-Host 'Downloading from vcpkgimageminting using SAS token'
$SasToken = $SasToken.Replace('"', '')
$CudnnUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-9.20.0.48_cuda13-archive.zip?$SasToken"
}
$CudnnUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/windows-x86_64/cudnn-windows-x86_64-9.20.0.48_cuda13-archive.zip' `
-BlobAssetName 'cudnn-windows-x86_64-9.20.0.48_cuda13-archive.zip'

[System.IO.DirectoryInfo]$CudnnInstallDir = "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v13.2"

DownloadAndUnzip -Name 'CUDNN' -Url $CudnnUrl -Destination "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v13.2"
DownloadAndUnzip -Url $CudnnUrl -Destination $CudnnInstallDir -StripRootDirectory

if (Test-Path "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cudnn.h") {
$CudnnHeaderPath = Join-Path $CudnnInstallDir "include\cudnn.h"
if (Test-Path -LiteralPath $CudnnHeaderPath) {
Write-Host 'cudnn appears correctly installed'
} else {
Write-Error 'cudnn appears broken!'
Expand Down
71 changes: 71 additions & 0 deletions scripts/azure-pipelines/windows/deploy-git.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: MIT

param([string]$SasToken)

if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

$GitUrl = Get-AssetUrl `
-SasToken $SasToken `
-InternetUrl 'https://github.com/git-for-windows/git/releases/download/v2.54.0.windows.1/Git-2.54.0-64-bit.exe' `
-BlobAssetName 'Git-2.54.0-64-bit.exe'

$GitInfContent = @"
[Setup]
Lang=default
Dir=C:\Program Files\Git
Group=Git
NoIcons=0
SetupType=default
Components=gitlfs,assoc,assoc_sh,scalar
Tasks=
EditorOption=VIM
CustomEditorPath=
DefaultBranchOption=
PathOption=Cmd
SSHOption=OpenSSH
TortoiseOption=false
CURLOption=WinSSL
CRLFOption=CRLFCommitAsIs
BashTerminalOption=ConHost
GitPullBehaviorOption=FFOnly
UseCredentialManager=Enabled
PerformanceTweaksFSCache=Enabled
EnableSymlinks=Disabled
EnableFSMonitor=Disabled
"@

try {
$installer = Get-LocalOrDownloadedFile -Url $GitUrl
$gitInfPath = Join-Path (Split-Path -Parent $installer.Path) 'git.inf'
Set-Content -LiteralPath $gitInfPath -Value $gitInfContent -Encoding ascii

Write-Host 'Installing Git for Windows...'
$proc = Start-Process -FilePath $installer.Path -ArgumentList @(
'/VERYSILENT',
'/NORESTART',
'/NOCANCEL',
'/SP-',
'/SUPPRESSMSGBOXES',
"/LOADINF=`"$gitInfPath`""
) -Wait -PassThru
$exitCode = $proc.ExitCode

if ($exitCode -eq 0) {
Write-Host 'Installation successful!'
} else {
Write-Error "Installation failed! Exited with $exitCode."
}
} catch {
Write-Error "Installation failed! Exception: $($_.Exception.Message)"
} finally {
if ($null -ne $gitInfPath) {
Remove-Item -LiteralPath $gitInfPath -Force -ErrorAction SilentlyContinue
}

if ($null -ne $installer -and $installer.Temporary) {
Remove-Item -LiteralPath $installer.Path -Force
}
}
8 changes: 4 additions & 4 deletions scripts/azure-pipelines/windows/deploy-install-disk.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

param([string]$SasToken)

if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
. "$PSScriptRoot/utility-prefix.ps1"
}

Expand Down Expand Up @@ -32,14 +32,14 @@ Param(

try {
Write-Host "Attempting to online physical disk $DiskNumber"
[string]$diskpartScriptPath = Get-TempFilePath -Extension 'txt'
[System.IO.FileInfo]$diskpartScriptPath = Get-TempFilePath -Extension 'txt'
[string]$diskpartScriptContent =
"SELECT DISK $DiskNumber`r`n" +
"ONLINE DISK`r`n"

Write-Host "Writing diskpart script to $diskpartScriptPath with content:"
Write-Host $diskpartScriptContent
Set-Content -Path $diskpartScriptPath -Value $diskpartScriptContent
Set-Content -LiteralPath $diskpartScriptPath -Value $diskpartScriptContent
Write-Host 'Invoking DISKPART...'
& diskpart.exe /s $diskpartScriptPath

Expand All @@ -52,7 +52,7 @@ Param(
"ASSIGN LETTER=$Letter`r`n"
Write-Host "Writing diskpart script to $diskpartScriptPath with content:"
Write-Host $diskpartScriptContent
Set-Content -Path $diskpartScriptPath -Value $diskpartScriptContent
Set-Content -LiteralPath $diskpartScriptPath -Value $diskpartScriptContent
Write-Host 'Invoking DISKPART...'
& diskpart.exe /s $diskpartScriptPath
}
Expand Down
Loading
Loading