win32: combine #892 + #893 and fix all remaining Windows CI failures#894
Merged
Conversation
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
…ude/peaceful-babbage-loewat
…' into claude/peaceful-babbage-loewat
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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):
libossia→build-windows (1, *)(static)OSCQueryDenseTest/MultiplexTest:WSAStartup failed [system:10093];WSLoggerTest: transport error /REQUIRE(opened)falseWSAStartup/WSACleanupper object; in static test exes nothing keeps WinSock alive between operationsossia-pd→build-windowsCicmWrapper/CMakeLists.txt:1 … Compatibility with CMake < 3.5 has been removed-DCMAKE_POLICY_VERSION_MINIMUM=3.5ossia-purrdata→build-windowsThe WinSock fix from #892 is necessary but not sufficient: on #892 it already eliminated the
OSCQueryDenseTest/MultiplexTest10093 failures, butWSLoggerTeststill flaked in the slow static-Debug cell because it gave a cross-thread WS handshake only fixed 100 ms windows.Fixes added here
tests/Network/WSLogger.cpp— replace the three fixedrun_for(100ms)sleeps with apump_until(...)loop that runs the serverio_contextuntil each step (open → message → close) is actually observed, bounded at 15 s. De-flakes the test without weakening any assertion..github/workflows/ossia-pd.ymland.github/workflows/ossia-purrdata.yml— add-DCMAKE_POLICY_VERSION_MINIMUM=3.5to thebuild-windowsandbuild-linuxjobs, matching thebuild-macosinvocation that already had it.Test plan
libossiabuild-windows (1, Release)and(1, Debug)pass (winsock + WSLogger)ossia-pdandossia-purrdatabuild-windowsconfigure past CicmWrapperOnce 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