Skip to content

Require Windows x64 native and Python checks in pull requests - #47

Merged
Dsssyc merged 2 commits into
mainfrom
socu/windows-pr-ci
Oct 29, 2026
Merged

Dsssyc merged 2 commits into
mainfrom
socu/windows-pr-ci

Conversation

@Dsssyc

@Dsssyc Dsssyc commented Oct 29, 2026

Copy link
Copy Markdown
Member

Pull-request CI built no native Windows targets, so the MSVC compile failure fixed in PR #45 first appeared in Release Artifacts after the 0.2.4 version merge. This adds two required Windows x64 jobs on windows-2022, with the path scopes of their Linux/macOS counterparts:

  • windows_native_tests: MSVC/Ninja Core and C++ test build, CTest with the built fastdb.dll on PATH, and the ABI export check, as in Release Artifacts.
  • windows_python_tests: the full Python suite on CPython 3.12 x64.

Both jobs feed the test aggregate. P2 records them in its post-P2 inventory and checks their needs and result wiring; P4 validates their results; publish_release.py requires their exact-source proofs before publication. Windows ARM64 stays in the release matrix.

Before 0.2.4 was tagged, the full Python suite on a Windows 11 x64 machine had five failures that 0.2.3 shares (see the 0.2.4 release record). This PR fixes their causes:

  • ObjectEngine.share() closed its only handle, and Windows deletes a named mapping when its last handle closes, so ObjectEngine.load could not open it. The publisher now keeps every mapping it publishes until it is released, as RecordEngine.share does. python/README.md documents when mappings and names are released on POSIX and Windows.
  • FastSerializer.loads_shm compared the requested region with the size of the attached mapping, which Windows rounds up to pages. The size error now applies to regions beyond the attached mapping; negative regions are rejected; bytes inside the mapping are validated by the native loader (Invalid FastDB database buffer.). The tests define both cases without platform skips, and the zero-length test now expects that error instead of accepting any outcome.

Validation on macOS ARM64: 408 Python tests pass on CPython 3.12 from source; every command of the release_tools and clean_cut jobs passes, including the P2/P4 gates and their self-tests. The Windows jobs run for the first time in this PR's CI.

Release Artifacts first compiled the 0.2.4 lifetime test with MSVC after the
merge, because pull-request CI built no native Windows targets. Add
windows_native_tests (MSVC/Ninja, CTest, ABI exports) and windows_python_tests
(the full CPython 3.12 suite) on windows-2022 with the scopes of their
Linux/macOS counterparts, and require both in the test aggregate and the
publication proofs.

The Windows suite exposes two shared-memory defects that 0.2.3 also has.
ObjectEngine.share() closed its only handle, which deletes a Windows named
mapping before readers attach; the publisher now keeps its mappings until it
is released. FastSerializer.loads_shm compares the requested region with the
attached mapping size, which Windows rounds up to pages; negative regions are
rejected, and bytes inside the mapping are left to native validation.
MSVC Debug builds timed out 13 payload tests and pushed compiled_spec over its
allocation budget through debug STL bookkeeping. Release Artifacts already
runs the same 41 tests with Release on Windows x64 and ARM64.
@Dsssyc
Dsssyc merged commit 6a02ff0 into main Oct 29, 2026
23 checks passed
@Dsssyc
Dsssyc deleted the socu/windows-pr-ci branch October 29, 2026 21:21
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.

1 participant