You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 212bd7f
Browse filesBrowse the repository at this point in the historyBrowse files
queue: pytype 2024.10.11 - CI green on PR #2168; skills: gotchas 512-514
CI green on PR #2168: the cp312 riscv64 wheel builds from the upstream
checkout with cibuildwheel and the wheel's own unit suite passes (1746
passed, 22 skipped), with the publish job dry-running cleanly.
Three reusable findings from the port:
512 - pytest's --ignore/--ignore-glob are silently inert under
--pyargs <pkg>; --deselect works and its nodeids are relative to
the package directory, not the rootdir pytest prints.
513 - a wheel can carry the test modules but not the helper package
they import; stage the helpers with test-sources and copy them
into the installed package from test-command.
514 - a tool that models a target Python version caps the matrix by
itself, invisibly to a build-and-import check.
notes: '6 Linux wheels upstream (abi: cp310,cp311,cp312); no riscv64 on PyPI or pypi.riseproject.dev.'
4057
+
notes: 'PR #2168 open (branch pytype), CI green. Build-from-checkout with cibuildwheel, mirroring the manylinux_wheels job of upstream build.yml (which is just `pip wheel . --no-deps` + `auditwheel repair` inside the manylinux image); setup.py builds one pybind11 extension, pytype.typegraph.cfg, from six .cc files at cxx_std=20, no arch-specific code anywhere and no CMake/ninja involvement in the wheel build (ninja is only a runtime dep and has riscv64 wheels on PyPI). No patches needed. Matrix is cp312 only: pytype refuses to run under an interpreter past 3.12 (validate_version: "Python versions > 3.12 are not yet supported"), which is why upstream ships cp310-cp312; the extension itself compiles and imports fine on cp313, so this only shows up when the tool actually runs (new gotcha 514). Dependency closure resolves binary-only for riscv64 at cp312 with our registry in play - libcst 1.8.6 and msgspec 0.21.1 come from pypi.riseproject.dev, the rest from PyPI. First CI run failed in the test phase only: pip picked libcst 1.9.0, whose riscv64 form is an sdist needing Rust, over our registry''s 1.8.6 wheel; fixed with CIBW_TEST_ENVIRONMENT PIP_ONLY_BINARY=:all: (gotchas 12/67). Testing runs the wheel''s own 96 *_test.py modules via `pytest --pyargs pytype -n auto` plus a one-file `pytype` CLI run; the pytype.tests helpers those modules import are excluded from the wheel, so three of them are staged with CIBW_TEST_SOURCES and copied into the installed package (new gotcha 513), and nine nodeids are deselected - source-tree-only tests (main_test.py, test_error_doc, two typeshed ones), a root-only one (test_die), two serialize_ast tests that fail identically on a pristine x86 checkout of the same tag, and the two staged helpers themselves. --ignore-glob turned out to be a no-op under --pyargs, which cost the first CI cycle''s triage (new gotcha 512). Rehearsed end to end on x86_64 before pushing (same 1746 passed / 22 skipped as CI). riscv64 CI: wheel built and auditwheel-repaired to manylinux_2_39_riscv64 in ~7 min, 1746 passed / 22 skipped in 8 min, publish job dry-ran cleanly. Left as a draft for the maintainer; not merged, not published.'
0 commit comments