notes: '5 Linux wheels upstream (abi: cp310,cp311,cp312,cp313,cp39); no riscv64 on PyPI or pypi.riseproject.dev. Bazel/bzlmod build (MODULE.bazel, bazel 7.7.0, no riscv64 binary exists so bazel 7.5.0 is bootstrapped from source per the array-record/runai-model-streamer precedent), pybind11 extension over the yggdrasil_decision_forests C++ library; the port/python directory carries its own nested MODULE.bazel with local_path_override(path="../../../") into the parent checkout. TensorFlow is not a build or hard runtime dependency: PyPI requires_dist only has "ydf-tf; extra == tensorflow" (a separate, unported package), and port/python/.bazelrc explicitly sets use_ydf_tensorflow_proto=1 to avoid it. SIMD: serving/decision_forest/quick_scorer_extended_hwy.cc uses Google Highway (foreach_target.h dynamic dispatch), which has a guaranteed portable scalar fallback target - not a hard riscv64/RVV requirement - and neither the release build (build_test_linux.sh) nor this port pass --config=linux_avx2 (only upstream''s own CI test config does). Upstream tags no releases (0 git tags on the whole repo); pinned the "[YDF] Release PYDF 0.16.1" commit (cd115b404c35aa3e15879fc64addb50da0fa8aa7), found via `git log -- yggdrasil_decision_forests/port/python/ydf/version.py` and confirmed its version.py reads 0.16.1. Statically links abseil-cpp, protobuf, grpc, boringssl, highway, google_cloud_cpp (GCS support, pulled in because "bazel build //ydf/...:all" also builds the always-linked ydf/cc:maybe_gcs_filesystem target), pybind11 and others, all permissively licensed (Apache-2.0/BSD/MIT) - collected generically from $(bazel info output_base)/external/*/LICENSE* at build time rather than hand-enumerated, since the exact linked set is only fully known after a real build. --features=-fully_static_link (upstream''s own release flag) keeps libstdc++ dynamic, so no gpl_sources job, matching build-array-record.yml (a close precedent: also bzlmod, rules_python 1.6.0, pybind11, google_cloud_cpp, same rules_python pip-extension patch for a transitive protobuf/googletest CPython-3.8 pip hub PBS does not publish for riscv64). Matrix cp312/cp313 only: cp314 built clean after 6.5h but segfaulted in pybind11_protobuf''s proto_caster_load_impl on upstream''s own examples/minimal.py smoke test; upstream ydf 0.16.1 ships no cp314 wheel on any platform, config/setup.py''s classifiers stop at 3.13, and .github/workflows/build_test.yml''s own python matrix is a single [''3.12''] entry marked "Currently unused" -- dropped per gotcha 614 rather than chasing pybind11_protobuf (also pinned to a Feb-2025 commit, months before CPython 3.14 shipped). Worktree at .claude/worktrees/ydf, branch ydf. PR #2416 opened, CI running (multi-hour Bazel build expected).'
0 commit comments