Skip to content

win32: combine #892 + #893 and fix all remaining Windows CI failures#894

Merged
jcelerier merged 5 commits into
masterfrom
claude/peaceful-babbage-loewat
Jun 20, 2026
Merged

win32: combine #892 + #893 and fix all remaining Windows CI failures#894
jcelerier merged 5 commits into
masterfrom
claude/peaceful-babbage-loewat

Conversation

@jcelerier

Copy link
Copy Markdown
Member

Summary

This branch sits on top of both #892 and #893 and adds the remaining fixes so that the Windows CI is fully green. It supersedes both:

Root-cause analysis

Every failing check on #892 and #893 was Windows-only and came down to three master-level issues (none caused by either PR's feature code):

Workflow / job Symptom Cause
libossiabuild-windows (1, *) (static) OSCQueryDenseTest / MultiplexTest: WSAStartup failed [system:10093]; WSLoggerTest: transport error / REQUIRE(opened) false asio ref-counts WSAStartup/WSACleanup per object; in static test exes nothing keeps WinSock alive between operations
ossia-pdbuild-windows CicmWrapper/CMakeLists.txt:1 … Compatibility with CMake < 3.5 has been removed Windows runner now ships CMake ≥ 4.0; job missing -DCMAKE_POLICY_VERSION_MINIMUM=3.5
ossia-purrdatabuild-windows same CicmWrapper CMake error same missing flag

The WinSock fix from #892 is necessary but not sufficient: on #892 it already eliminated the OSCQueryDenseTest / MultiplexTest 10093 failures, but WSLoggerTest still flaked in the slow static-Debug cell because it gave a cross-thread WS handshake only fixed 100 ms windows.

Fixes added here

  1. tests/Network/WSLogger.cpp — replace the three fixed run_for(100ms) sleeps with a pump_until(...) loop that runs the server io_context until each step (open → message → close) is actually observed, bounded at 15 s. De-flakes the test without weakening any assertion.
  2. .github/workflows/ossia-pd.yml and .github/workflows/ossia-purrdata.yml — add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to the build-windows and build-linux jobs, matching the build-macos invocation that already had it.

Test plan

  • libossia build-windows (1, Release) and (1, Debug) pass (winsock + WSLogger)
  • ossia-pd and ossia-purrdata build-windows configure past CicmWrapper
  • All other platforms remain green (fmt 12.2 compiled fine on every non-static job already)

Once this is merged, #892 and #893 can be closed as superseded.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RhPCgbU8RNRmKxSfXwhWog


Generated by Claude Code

claude and others added 5 commits June 10, 2026 22:57
Restore the lost fix (originally e5ea48d) for the spurious Win32 CI test
failures: keep a WinSock instance alive for the whole lifetime of the test
process via a static owner struct in the shared Catch test header.
- bump vendored fmt to 12.2 and spdlog to a matching commit
- stop forcing FMT_USE_INT128=0: in fmt 12.2 defining it (to 0 or 1) suppresses
  the native_int128 declaration and the software fallback lacks operator~, so
  format_hexfloat fails to build. Let fmt auto-detect __int128 instead.
- flat_set formatter: fmt 12 renamed detail::is_container_adaptor_like to
  is_container_adaptor and moved it out of the detail namespace.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UJoeDPZWGZMVPe65Np4f2F
This branch combines #892 (keep a winsock instance alive during tests) and
#893 (fmt 12.2 support) and adds the remaining fixes needed to get the
Windows CI fully green.

WSLogger: the test relied on fixed 100ms windows to complete an asynchronous,
cross-thread websocket handshake. On the slow static Debug Windows runner that
is not enough, so `REQUIRE(opened)` failed intermittently even with the winsock
fix in place. Pump the server io_context until each step (open, message, close)
is actually observed instead, with a generous 15s upper bound so a real
regression still fails in reasonable time.

ossia-pd / ossia-purrdata: the build-windows (and build-linux) jobs were
missing -DCMAKE_POLICY_VERSION_MINIMUM=3.5, so CMake >= 4.0 now hard-errors on
CicmWrapper's `cmake_minimum_required(VERSION < 3.5)`. Add the flag to match the
build-macos invocation that already carried it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RhPCgbU8RNRmKxSfXwhWog
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier temporarily deployed to Apple Certificate June 20, 2026 01:55 — with GitHub Actions Inactive
@jcelerier jcelerier merged commit 8276818 into master Jun 20, 2026
47 checks passed
@jcelerier jcelerier deleted the claude/peaceful-babbage-loewat branch June 20, 2026 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants