Conversation
Bazel build of grain's pybind11 extension (index_shuffle) and its execution_summary proto, mirroring upstream's build_whl.sh with the bazel binary bootstrapped from source, since the bazel releases carry no riscv64 build. Upstream's `bazel build ...` cannot be used: it pulls the @pypi hub, whose lock pins jaxlib and scipy wheels that exist for no riscv64 and ship no sdist, so only the three targets whose output reaches the wheel are built. Tests run each file as its own process the way upstream's py_test targets do; collecting them into one pytest process leaks state between files.
autotune_test.py uses plain unittest.main() and exits on "unrecognized arguments: --test_srcdir", so the flag goes only to the three targets whose py_test rules declare it. batch_test.py needs jax: 11 of its cases read sys.modules["jax"] without importing it at module level, and its py_test declares @pypi//jax:pkg.
…arrow grain/_src/python/ipc/queue.py shadows the stdlib queue whenever its own directory is sys.path[0], which is what running a test by path does: queue_test and variable_size_queue_test both died on "partially initialized module 'queue'". Bazel puts the runfiles root on sys.path instead, so invoking each test as a module reproduces its import environment. dataset_test goes through pytest so that the RUN_IN_PYTEST expectedFailure grain ships applies; both of its execution-summary tests wait on a summary-logging thread that only reports under upstream's own runner.
Contributor
|
The interpreter legs were introduced only through `include:` entries on a matrix whose sole dimension was `version`. GitHub adds an include object's keys to the existing combinations instead of creating one job per entry, so the three entries overwrote each other's `tag`/`python` and a single job ran with cp314's values - run 35492217884 is green with one `build_wheels` job, `Build grain 0.2.18 cp314-manylinux_riscv64`, and no cp312/cp313 wheel. Making `tag` a real dimension crossed with `version` restores one job per interpreter; the include entries now match an existing combination and only add `python` to it.
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.
grain0.2.18Bazel builds one pybind11 extension (
index_shuffle, statically linking Abseil) and a generated protobuf module. Upstream publishes no riscv64 wheel.Mirrors upstream's
build_and_publish_template.ymlandgrain/oss/build_whl.sh.Differs from upstream
...-...needs the@pypihub, whose lock pins jaxlib and scipy wheels that exist for no riscv64 and ship no sdistLICENSE.abseil-cppandLICENSE.pybind11- both are statically linked and upstream ships neitherMatrix: cp312/cp313/cp314 - array-record has no cp311 riscv64 wheel, and upstream publishes no free-threaded build
Testing
py_testtargets domultiprocessing_test.pydropped - upstream declares no test target for it and its__main__calls an undefined nameLicense: Wheel bundles statically linked Abseil (Apache-2.0) and pybind11 (BSD-3-Clause); upstream ships no licence text for either, so the build adds it.