Repository navigation
Conversation
Last release of this distribution: treelite 4.0.0 dropped runtime/python and reborn it as tl2cgen_runtime in dmlc/tl2cgen, so 3.9.1 is a closed, pinned build. Both python/ and runtime/python/ build from one root CMakeLists.txt; the runtime wheel bundles a ctypes-loaded libtreelite_runtime.so with no extension module, so it is retagged py3-none after cibuildwheel's cp312 build, same as upstream's own ops/build-linux.sh does with bdist_wheel --universal.
The manylinux_riscv64 image's system cmake refuses fmtlib's own cmake_minimum_required (<3.5); CMAKE_POLICY_VERSION_MINIMUM=3.5 is the standard escape hatch, applied via CIBW_ENVIRONMENT so it reaches the FetchContent sub-build too.
Contributor
|
objtreelite fails to build on the manylinux_riscv64 image's GCC 14: RapidJSON v1.1.0's GenericStringRef declares a copy-assignment that assigns to its own const length member, upstream-fixed 3 commits later by deleting the operator outright. Also wires the patch into the build and its paths into the workflow triggers.
Every check in test_basic.py builds its DMatrix from a SciPy CSR matrix through np.array(..., copy=False, dtype=<cast>), which numpy 2 (the only line with a riscv64 wheel) refuses outright rather than copying; the previous run showed this on 2 passed, 10 failed, 18 errored, and it reproduces identically on x86_64 under numpy 2, so it is a real upstream gap, not something to patch around. DMatrix-from- dense-ndarray takes no such cast, so compile a model with the gcc toolchain and predict on it directly.
luhenry
added a commit
that referenced
this pull request
Oct 5, 2026
luhenry
marked this pull request as ready for review
October 5, 2026 21:36
luhenry
added a commit
that referenced
this pull request
Oct 5, 2026
This branch has not been deployed
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.
treelite-runtime3.9.1Legacy setup.py project compiling the sibling C++ tree into
libtreelite_runtime.so, loaded through ctypes. Upstream publishes no riscv64 wheel. This is the last release of the distribution: treelite 4.0.0 droppedruntime/pythonand reborn it astl2cgen_runtimeindmlc/tl2cgen.Mirrors upstream's
ops/build-linux.sh.Differs from upstream
PIP_EXTRA_INDEX_URLadded for numpy and scipy.py3-nonewithwheel tagsinstead ofbdist_wheel --universal- cibuildwheel's pip frontend ignores that flag.Matrix: one
py3-nonewheel -ext_modulesonly drives the CMake build, no CPython ABI involved.Testing
test_basic.py: every check there builds itsDMatrixfrom a SciPy CSR matrix vianp.array(..., copy=False, dtype=cast), which numpy 2 (the only line with a riscv64 wheel) refuses outright on any platform, treelite-runtime predating numpy 2. Instead, the companiontreelitepackage is installed from the same checkout to compile a real model, loaded throughtreelite_runtime.Predictorand run on a denseDMatrix, which takes no such cast.License: Wheel ships no LICENSE on any platform (setuptools' glob never sees the repo-root file from
runtime/python/); staged a copy next tosetup.pyto fix that. auditwheel also bundles the image's libgomp (GPL), so agpl_sourcesjob publishes gcc sources against the same pinned image.Patches
0001-Pin-RapidJSON-past-v1.1.0-s-broken-operator.patch- Backport rapidjson@862c39b. Vendored RapidJSON v1.1.0 fails to build under GCC 14; reproduces on any platform, not riscv64-only.Built on cp312; dense-DMatrix smoke test passed.