Skip to content

Windows parity: test_dev_engine_pin.py in WINDOWS_NOT_APPLICABLE, and a guard that the two exclusions agree - #308

Merged
tae898 merged 3 commits into
mainfrom
fix/win-parity-dev-engine-pin-test
Nov 7, 2026
Merged

tae898 merged 3 commits into
mainfrom
fix/win-parity-dev-engine-pin-test

Conversation

@tae898

@tae898 tae898 commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #307

test_dev_engine_pin.py was excluded on Windows only through collect_ignore, which the native parity runner does not honour for a file it names on the command line. It runs the bash code of a workflow step, so it failed on the Windows parity legs of 26.12.1.dev0 and the gate held the native win_amd64 wheel back (dev0 is on PyPI without it: no win_amd64 arcadedb wheel; the three other native platforms and all arcadedb-jvm wheels are published).

  • test_dev_engine_pin.py moves into WINDOWS_NOT_APPLICABLE, the table parity_wheel.py reads, and out of the separate collect_ignore.append.

  • New tests/test_conftest_windows_table.py runs everywhere and parses conftest.py with ast: every file appended to collect_ignore in the win32 block must be a key of the table, every key must exist, and parity_wheel.py must still read and apply the table. I ran its functions by hand against this conftest (pass) and against the previous one (it names test_dev_engine_pin.py).

  • 26.12.1.dev1 will carry this fix; the engine pin is unchanged.

  • The native 26.12.1.dev0 wheel recorded the pinned snapshot in _build_info.py, but arcadedb.ENGINE_SNAPSHOT and arcadedb.ENGINE_IMAGE_DIGEST printed None: build_wheel.py imports them near the top of __init__.py, and the JVM fallback try/except further down set them to None again. __init__.py now looks in _build_info first, and tests/test_engine_snapshot_recorded.py (it runs in the native parity legs on the installed wheel) asserts that the attribute is the recorded value on both builds.

  • scripts/verify_wheel_engine_pin.py runs in release-native.yml (verify job, before the upload) and release-jvm.yml (verify-wheels): a .devN wheel must record the pinned snapshot and image digest in its _build_info.py or _version.py, a final or .postN wheel must record none. A release can no longer publish a wheel that does not say what it embeds.

🤖 Generated with Claude Code

tae898 and others added 3 commits November 7, 2026 16:11
… a guard that the two exclusions agree (closes #307)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ritten by a later fallback; release workflows refuse a wheel that does not state its engine

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit a5ef695 into main Nov 7, 2026
41 checks passed
@tae898
tae898 deleted the fix/win-parity-dev-engine-pin-test branch November 7, 2026 07:52
@github-actions github-actions Bot added this to the 26.12.1 milestone Nov 7, 2026
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.

Windows parity: test_dev_engine_pin.py must be in WINDOWS_NOT_APPLICABLE

1 participant