Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
894d9d5
ci(windows): use preinstalled MSYS2 + pacman-installed clang
Fedr Apr 30, 2026
84e190a
Merge remote-tracking branch 'origin/master' into ci/use-runner-msys2
Fedr Apr 30, 2026
4af6573
ci(windows): also install mingw-w64-clang-x86_64-llvm package
Fedr Apr 30, 2026
1f98820
Update mrbind.
adalisk-emikhaylov May 5, 2026
165d2c2
Generate fresh MSYS2 lockfiles.
adalisk-emikhaylov May 5, 2026
193e3e1
We no longer upload zipped MSYS2 to S3.
adalisk-emikhaylov May 5, 2026
bf25ec1
Merge branch 'master' into ci/use-runner-msys2
Fedr May 5, 2026
5a6fabf
ci(windows): make generate_win.bat fail loudly on missing MSYS2
Fedr May 5, 2026
d38cd0b
Try enabling the debug env.
adalisk-emikhaylov May 6, 2026
8070543
Hopefully fix ambiguous Python names.
adalisk-emikhaylov May 6, 2026
a1d3c5e
ci(windows): diagnostic step for embedded-python ImportError
Fedr May 7, 2026
9fbdfa5
ci(windows): pin MRBind clang stack to 18.1.8-2 via MSYS2 archive
Fedr May 7, 2026
c51ac82
ci(windows): pass --assume-installed cc-libs through pacman -U
Fedr May 7, 2026
2d2627d
ci(windows): keep libc++/libunwind at current; pin only clang/llvm/lld
Fedr May 7, 2026
ff8bcd8
ci(windows): pin the entire clang64 toolchain to clang-18 era
Fedr May 7, 2026
2722e7c
Revert thirdparty/mrbind submodule to the pre-PR baseline
Fedr May 7, 2026
a214242
ci(windows): replace inline pwsh download loop with the existing scripts
Fedr May 8, 2026
1c49411
ci(windows): pass -here to msys2_shell.cmd so script paths resolve
Fedr May 8, 2026
8b629c0
ci(windows): strip CR from msys2 lockfile before sha256sum -c
Fedr May 8, 2026
cff4999
Merge branch 'master' into ci/use-runner-msys2-pin-clang18
Fedr May 8, 2026
c018dcb
Merge branch 'master' into ci/use-runner-msys2-pin-clang18
Fedr May 8, 2026
eab4b16
ci(windows): route MB_PB11_ADJUST_NAMES via -include header instead o…
Fedr May 8, 2026
f386d46
ci(windows): bake MB_PB11_ADJUST_NAMES into the PCH source instead of…
Fedr May 8, 2026
7715fa7
ci(windows): skip mrbind_pb11_defines.h include during parser pass
Fedr May 8, 2026
642badd
ci(windows): scope mrbind_pb11_defines.h include to Python target only
Fedr May 8, 2026
5ab65f3
ci(windows): cache pinned MSYS2 packages and drop pacman -Sy
Fedr May 8, 2026
2224865
Merge branch 'master' into ci/use-runner-msys2-pin-clang18
Fedr May 8, 2026
e15694f
ci(windows): make cache-hit path skip wget HEAD requests
Fedr May 8, 2026
c6d8512
ci(windows): correct comments — root cause is clang, not bash/make
Fedr May 9, 2026
7f51350
ci(windows): re-correct comments — MSYS2 environment is the trigger
Fedr May 9, 2026
44641fa
ci(windows): de-paren the MB_PB11_ADJUST_NAMES recipe comment
Fedr May 9, 2026
bdd6a5d
ci(windows): pin the MB_PB11_ADJUST_NAMES asymmetry to GNU make
Fedr May 9, 2026
d98e50c
ci(windows): refine MB_PB11_ADJUST_NAMES root-cause writeup
Fedr May 9, 2026
925e6fe
ci(windows): install MSYS2 cygwin make, drop the PCH-source-include m…
Fedr May 9, 2026
c692ed5
ci(windows): revert the unsuffixed lockfile regeneration
Fedr May 9, 2026
c832ada
ci(windows): derive package URLs from the hash lockfile, drop URLs lo…
Fedr May 9, 2026
5f7175f
ci(windows): trim comments, restore step name, drop post-Unit-Tests d…
Fedr May 9, 2026
554c573
ci(windows): pin libc++ in gettext-tools install via --assume-installed
Fedr May 9, 2026
dc69e0f
ci(windows): use pacman --ignore instead of --assume-installed for li…
Fedr May 10, 2026
c8eb0ac
Merge remote-tracking branch 'origin/master' into ci/use-runner-msys2…
Fedr May 10, 2026
e4b5980
ci(windows): drop the clang-22 std_vector_const_Mesh narrative from c…
Fedr May 10, 2026
d4155f1
ci(windows): drop msys2_package_urls.txt; URLs are derived from hashe…
Fedr May 10, 2026
96596ac
ci(mrbind): drop msys2_package_urls.txt; derive URLs from hashes lock…
Fedr May 10, 2026
25d35c6
ci(mrbind): strip CR before sha256sum -c in msys2_install_packages.sh
Fedr May 10, 2026
dc6f125
ci(mrbind): add SUFFIX support + wget -nc to match the version PR #60…
Fedr May 10, 2026
c13fade
Merge branch 'ci/drop-msys2-package-urls-lockfile' into ci/use-runner…
Fedr May 10, 2026
7931ba5
Merge branch 'master' into ci/use-runner-msys2-pin-clang18
Fedr May 11, 2026
32c560b
ci(windows): pin gettext-tools-0.22.5-2 in the lockfile, drop runtime…
Fedr May 11, 2026
651e08d
ci(pip-build): cache pinned MSYS2 packages
Fedr May 11, 2026
ed82da8
ci(windows): extract Cache + Install MSYS2 steps into a reusable action
Fedr May 11, 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
42 changes: 20 additions & 22 deletions .github/actions/install-msys2-mrbind/action.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
name: 'Install MSYS2 for MRBind'
description: 'Download the MeshLib MSYS2 archive from S3 with retry on transient failures and extract to C:\'
name: Install MSYS2 for MRBind
description: >
Restore (or download) the clang-18 MSYS2 toolchain pinned by
`scripts/mrbind/msys2_package_hashes_clang18.txt`, sha256-verify
it, and `pacman -U` against the runner's preinstalled `C:\msys64`.

runs:
using: 'composite'
using: composite
steps:
- name: Cache pinned MSYS2 packages
# Cache key tracks the lockfile; `wget -nc` makes cache-hit a no-op,
# and `sha256sum -c` in the install script is the integrity gate.
uses: actions/cache@v5
with:
path: scripts/mrbind/msys2_packages
key: msys2-mrbind-clang18-${{ hashFiles('scripts/mrbind/msys2_package_hashes_clang18.txt') }}

- name: Install MSYS2 for MRBind
# Pin clang to 18.1.8 — same version master's S3 zip ships.
# Pinning only clang/llvm causes `STATUS_DLL_NOT_FOUND` from
# cc.exe, so the lockfile carries the whole clang-18-era
# runtime stack.
shell: pwsh
run: |
# Retry the S3 fetch -- transient 404 / connection blips have been
# observed against vcpkg-export.s3.us-east-1.amazonaws.com.
$url = "https://vcpkg-export.s3.us-east-1.amazonaws.com/msys64_meshlib_mrbind.zip"
$dest = "./msys64_meshlib_mrbind.zip"
$maxAttempts = 5
$delay = 10
for ($i = 1; $i -le $maxAttempts; $i++) {
try {
(New-Object Net.WebClient).DownloadFile($url, $dest)
break
} catch {
if ($i -eq $maxAttempts) { throw }
Write-Host "Download attempt $i failed: $($_.Exception.Message). Retrying in $delay s..."
Start-Sleep -Seconds $delay
$delay *= 2
}
}
[IO.Compression.ZipFile]::ExtractToDirectory($dest, "C:\")
rm $dest
C:\msys64\msys2_shell.cmd -no-start -defterm -here -c "set -e && bash scripts/mrbind/msys2_download_packages.sh _clang18 && bash scripts/mrbind/msys2_install_packages.sh _clang18"
15 changes: 9 additions & 6 deletions .github/workflows/build-test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,19 +142,18 @@ jobs:
if: ${{inputs.mrbind || (inputs.mrbind_c && matrix.build_system == 'CMake') || env.BUILD_C_SHARP == 'true'}}
uses: ./.github/actions/install-msys2-mrbind

- name: Install gettext utilities
if: ${{ inputs.upload_artifacts }}
run: |
C:\msys64_meshlib_mrbind\msys2_shell.cmd -clang64 -defterm -no-start -c "pacman -S --noconfirm --needed mingw-w64-clang-x86_64-gettext-tools"

- name: Build MRBind
if: ${{inputs.mrbind || (inputs.mrbind_c && matrix.build_system == 'CMake') || env.BUILD_C_SHARP == 'true'}}
shell: cmd
env:
MSYS2_DIR: C:\msys64
run: call ./scripts/mrbind/install_mrbind_windows_msys2.bat

- name: Generate C bindings
if: ${{ (inputs.mrbind_c && matrix.build_system == 'CMake') || env.BUILD_C_SHARP == 'true' }}
shell: cmd
env:
MSYS2_DIR: C:\msys64
# Note that `\` doesn't work here as a line continuation, and will lead to weird errors.
run: |
call "${{matrix.vc-path}}\Common7\Tools\VsDevCmd.bat" -arch=amd64 ${{ fromJSON('["", "-vcvars_ver=14.2"]')[matrix.cxx_compiler == 'msvc-2019'] }}
Expand All @@ -164,6 +163,8 @@ jobs:
- name: Generate C# bindings
if: ${{ env.BUILD_C_SHARP == 'true' }}
shell: cmd
env:
MSYS2_DIR: C:\msys64
# Note that `\` doesn't work here as a line continuation, and will lead to weird errors.
run: |
call "${{matrix.vc-path}}\Common7\Tools\VsDevCmd.bat" -arch=amd64 ${{ fromJSON('["", "-vcvars_ver=14.2"]')[matrix.cxx_compiler == 'msvc-2019'] }}
Expand All @@ -173,7 +174,7 @@ jobs:
- name: Build
shell: cmd
env:
GETTEXT_ROOT: C:\msys64_meshlib_mrbind\clang64
GETTEXT_ROOT: C:\msys64\clang64
VCPKG_ROOT: C:\vcpkg
VCPKG_TARGET_TRIPLET: ${{ matrix.vcpkg_triplet }}
# `|| exit /b 1` is used instead of `if errorlevel 1 exit 1`
Expand All @@ -194,6 +195,8 @@ jobs:
- name: Generate and build Python bindings
if: ${{inputs.mrbind && matrix.vcpkg_triplet != 'x64-windows-meshlib-iterator-debug'}}
shell: cmd
env:
MSYS2_DIR: C:\msys64
# Note that `\` doesn't work here as a line continuation, and will lead to weird errors.
run: |
call "${{matrix.vc-path}}\Common7\Tools\VsDevCmd.bat" -arch=amd64 ${{ fromJSON('["", "-vcvars_ver=14.2"]')[matrix.cxx_compiler == 'msvc-2019'] }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pip-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,14 @@ jobs:

- name: Build MRBind
shell: cmd
env:
MSYS2_DIR: C:\msys64
run: call ./scripts/mrbind/install_mrbind_windows_msys2.bat

- name: Generate and build MRBind bindings
shell: cmd
env:
MSYS2_DIR: C:\msys64
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64
call ./scripts/mrbind/generate_win.bat -B --trace FOR_WHEEL=1
Expand Down
49 changes: 49 additions & 0 deletions scripts/mrbind/msys2_package_hashes_clang18.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
2f63bacf84a36f855e1470a9654a5ab65ef1ff163684f9dde88ea915bf7ca943 *msys2_packages/mingw-w64-clang-x86_64-brotli-1.1.0-4-any.pkg.tar.zst
95babf857eaa0853f1099201b95aa3ea7e1f3c64b29afb75e447f630a7701fd9 *msys2_packages/mingw-w64-clang-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst
bd0f6a55869eadea478c8d6a5493a52a9a24a9e4d59bad9ca0e3378d4f1af6d6 *msys2_packages/mingw-w64-clang-x86_64-c-ares-1.34.3-1-any.pkg.tar.zst
4f627c2f792fc392c14d4aba3995779480dc487bbc4465cc6ff1113035ecb6e0 *msys2_packages/mingw-w64-clang-x86_64-ca-certificates-20240203-1-any.pkg.tar.zst
b989a8d9ee08725be932468cd2207ebdfc0687c34e3f3536c97f31cfead3e6a2 *msys2_packages/mingw-w64-clang-x86_64-clang-18.1.8-2-any.pkg.tar.zst
a7f037cda8a57a153f10692ba71e839a515d2aaecf6f70686c8b5f4e319227bc *msys2_packages/mingw-w64-clang-x86_64-clang-libs-18.1.8-2-any.pkg.tar.zst
30ba37cc7071e346faf4513196068cfc5b16927c1b38c50e4285f5325e72dd46 *msys2_packages/mingw-w64-clang-x86_64-clang-tools-extra-18.1.8-2-any.pkg.tar.zst
2ad0574b652993b3a6ef3da2dce4c0f5188d911ba2ecd39ccab706e32ba9826a *msys2_packages/mingw-w64-clang-x86_64-cmake-3.31.1-1-any.pkg.tar.zst
48ca88dc51da1058da1026fc76430afa705d6ac1cc7d84a293c3756a6a0bd092 *msys2_packages/mingw-w64-clang-x86_64-compiler-rt-18.1.8-2-any.pkg.tar.zst
b0d254e9e9a4d5b46be98583f773a94e86fa744adce45da4d70d8c8bd9e4105e *msys2_packages/mingw-w64-clang-x86_64-cppdap-1.65-1-any.pkg.tar.zst
f4d6c84d4db71dcf1b72656ba6b858eec1942e3931a94e9989675791926939ec *msys2_packages/mingw-w64-clang-x86_64-crt-git-12.0.0.r406.gc0313ec33-1-any.pkg.tar.zst
0531463e9c01f12885095482a6585500ff0b14cc33711bb67f7dfef3b218f4a2 *msys2_packages/mingw-w64-clang-x86_64-curl-8.11.0-2-any.pkg.tar.zst
bb617b4afcac3fd24418aa77fcabbc7b24b9aef9ced144c003f39dcd9417d70d *msys2_packages/mingw-w64-clang-x86_64-expat-2.6.4-1-any.pkg.tar.zst
b19ac747535a26a3edfb6ce1460eca08ae0404933d7680097887d5d14c648652 *msys2_packages/mingw-w64-clang-x86_64-gettext-runtime-0.22.5-2-any.pkg.tar.zst
f6df766b27fc27c8dba707087c809a16f06bab6f2cc01a2348dac7f3e730cf98 *msys2_packages/mingw-w64-clang-x86_64-headers-git-12.0.0.r406.gc0313ec33-1-any.pkg.tar.zst
6c848dbb35cd559e22f44b1a1e844b9c4ec101a2c1c4075bf9fb04f523a4f1c6 *msys2_packages/mingw-w64-clang-x86_64-jsoncpp-1.9.6-3-any.pkg.tar.zst
b656635e84b8fc0170ed20c1e6e512105304ac139e60850e6a3e4cb020f3f405 *msys2_packages/mingw-w64-clang-x86_64-libarchive-3.7.7-1-any.pkg.tar.zst
06d26dced37a84560346bb54f05851787c06bce9b9d9f27549c6e82ed66ea514 *msys2_packages/mingw-w64-clang-x86_64-libb2-0.98.1-2-any.pkg.tar.zst
931ae5d65f32778e0a2273ac69b96c7f4fccf951cbef13a5f03569cf93dc4a9f *msys2_packages/mingw-w64-clang-x86_64-libc++-18.1.8-2-any.pkg.tar.zst
db070d84b9ab8635a6fbd11851ea9bca7127febed6e683c05d05258092aecfe0 *msys2_packages/mingw-w64-clang-x86_64-libffi-3.4.6-1-any.pkg.tar.zst
ceffaa653d99eb9440a90141877d1175b8177df32124de19e3be01e31e9c4bbc *msys2_packages/mingw-w64-clang-x86_64-libiconv-1.17-4-any.pkg.tar.zst
3c6c8992a2ec8fc9b8a7069547612641a01a1fca427c7a5a15488b650bfc681e *msys2_packages/mingw-w64-clang-x86_64-libidn2-2.3.7-2-any.pkg.tar.zst
4c73a70283a095e53c58be5e0598e3f51a92e42d7933a0dc6983c548dbe36741 *msys2_packages/mingw-w64-clang-x86_64-libpsl-0.21.5-3-any.pkg.tar.zst
16d617e9c750640c525bdeb7bd59cb64ee3631d38d1eb5be64d1e5552c1b8206 *msys2_packages/mingw-w64-clang-x86_64-libssh2-1.11.1-1-any.pkg.tar.zst
185849c9de928efa6705af2f4753eb4888279d00879e5d117259e257b40b87a5 *msys2_packages/mingw-w64-clang-x86_64-libsystre-1.0.1-6-any.pkg.tar.zst
92c13837bfdcbc3a8929ca966ca4f2175727428980a5f904544670de654da5a6 *msys2_packages/mingw-w64-clang-x86_64-libtasn1-4.19.0-1-any.pkg.tar.zst
7ba337e5837e94291e6541973886cf3cac6e0ff91b9aad297e16b43b1713adf8 *msys2_packages/mingw-w64-clang-x86_64-libtre-0.9.0-1-any.pkg.tar.zst
6f4c13f2370cab16a1c616e086cdc235fb9a377932e1d0ddfbe1a7116922df8e *msys2_packages/mingw-w64-clang-x86_64-libunistring-1.2-1-any.pkg.tar.zst
3520506c36a7757239f454ac67bd790dcafd8019404f67493a3e02d29b393539 *msys2_packages/mingw-w64-clang-x86_64-libunwind-18.1.8-2-any.pkg.tar.zst
8b4e6dba2e66c281a6bcfaadf0a47a573890b957d7632ca4923d5fb6a0a63aad *msys2_packages/mingw-w64-clang-x86_64-libuv-1.49.2-1-any.pkg.tar.zst
f6a4e3a4591d62b9a2966cfd65e69eb8b508dfd3a2a312c0e5de3aceeaa2a01a *msys2_packages/mingw-w64-clang-x86_64-libwinpthread-git-12.0.0.r406.gc0313ec33-1-any.pkg.tar.zst
91d5da36ab30c9f83b62adaa06138bc556ccf11010431e518b086dfc282d39ac *msys2_packages/mingw-w64-clang-x86_64-libxml2-2.12.9-2-any.pkg.tar.zst
a652e34050d913029055d0f71cca02a8d1c3dfe4e28489217d53d85f18d275c0 *msys2_packages/mingw-w64-clang-x86_64-lld-18.1.8-2-any.pkg.tar.zst
ee31dd17b3cf5de889c6a00b3347941c35045676763188381c4b91d6f95bb156 *msys2_packages/mingw-w64-clang-x86_64-llvm-18.1.8-2-any.pkg.tar.zst
437923875bc23c6f92b726ed660bda22e960e764bad37a6db4868c2bb9a457b6 *msys2_packages/mingw-w64-clang-x86_64-llvm-libs-18.1.8-2-any.pkg.tar.zst
fe227e59fad25977ff1f7a064ddfba4a397db3a8d72f8c6c9d1dfff413b7f64f *msys2_packages/mingw-w64-clang-x86_64-lz4-1.10.0-1-any.pkg.tar.zst
c4a0c92360e03080ff5e35e20b29a66ca353628727c32a3b8d87e9ab2acdd851 *msys2_packages/mingw-w64-clang-x86_64-nghttp2-1.63.0-1-any.pkg.tar.zst
6d4d72b067dface65635d0c1178d07eabebbd657611b119cff5b041bdd21f8dc *msys2_packages/mingw-w64-clang-x86_64-nghttp3-1.6.0-1-any.pkg.tar.zst
5d1efde1f195db7492dd201f7925b463b8f12b8b994cf4553361ec4194c249ee *msys2_packages/mingw-w64-clang-x86_64-ninja-1.12.1-1-any.pkg.tar.zst
629e29b6b52668c0abff9e59a76b3300fe8c6b23c37c8472da96dbf6aac4f131 *msys2_packages/mingw-w64-clang-x86_64-openssl-3.4.0-1-any.pkg.tar.zst
6d29fdba4404959f2ae9de117e64454845d60b193604b4a7ceb4d1902b33df03 *msys2_packages/mingw-w64-clang-x86_64-p11-kit-0.25.5-1-any.pkg.tar.zst
ca8112e050736aa73444ff78fdfcb6374671479a0420a58e5247bf3995e92796 *msys2_packages/mingw-w64-clang-x86_64-pkgconf-1~2.3.0-1-any.pkg.tar.zst
ac4a62ace1341a49961d2db22994e02721c62d2d475fbfef711e647773ec4bfb *msys2_packages/mingw-w64-clang-x86_64-rhash-1.4.4-3-any.pkg.tar.zst
16dee04d13cf14a4a6fee3a15f72fa7b89905c0b368a972e3396cdccadfa8b8d *msys2_packages/mingw-w64-clang-x86_64-winpthreads-git-12.0.0.r406.gc0313ec33-1-any.pkg.tar.zst
8ee583356c28189b0a1b971b2f80b3562f5471cad37db070f132db270c61efa8 *msys2_packages/mingw-w64-clang-x86_64-xz-5.6.3-3-any.pkg.tar.zst
b7f0c06e6d48128209a3a441f96b92351e565a0d031278c56a8db8a9b5ec291a *msys2_packages/mingw-w64-clang-x86_64-zlib-1.3.1-1-any.pkg.tar.zst
3d3acff651d4e9e4903f80318ec24609598db2e5f356346c3f13148e222b9709 *msys2_packages/mingw-w64-clang-x86_64-zstd-1.5.6-2-any.pkg.tar.zst
2408af61717dae87b00c855b132769a125c708907fc94a46bb16dae076113e5c *msys2_packages/make-4.4.1-2-x86_64.pkg.tar.zst
8952e01d278bfd461f471134e3d49e22f8e8ec7fe5aae9749acdd63adf77b2e2 *msys2_packages/mingw-w64-clang-x86_64-gettext-tools-0.22.5-2-any.pkg.tar.zst
Loading