Skip to content

runai-model-streamer-s3: Add version 0.16.1 - #2355

Merged
luhenry merged 4 commits into
mainfrom
runai-model-streamer-s3
Sep 27, 2026
Merged

luhenry merged 4 commits into
mainfrom
runai-model-streamer-s3

Conversation

@luhenry

@luhenry luhenry commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

Compiles the Model Streamer's S3 backend (libstreamers3.so, C++ on the AWS SDK for C++ s3-crt) with Bazel. Upstream publishes no riscv64 wheel.

Mirrors upstream's Makefile and .devcontainer/Dockerfile, same shape as build-runai-model-streamer.yml.

Differs from upstream

  • OpenSSL/curl/zlib/AWS SDK built natively in the manylinux image, not cross-compiled in a devcontainer
  • curl configured without brotli/zstd/nghttp2/libidn2 so libcurl.a matches the link line
  • Bazel bootstrapped from source; no riscv64 release binary

Testing

  • MinIO built from its last release tag; dl.min.io no longer serves binaries
  • numpy override for requirements.dev's 1.24.4, which has no riscv64 wheel

License: Wheel bundles OpenSSL (Apache-2.0), libcurl (curl), zlib (Zlib) and the AWS SDK/CRT libraries (Apache-2.0); upstream ships no licence text for them, so the build adds it.

Patches

  • 0001/0002 - To upstream. Same riscv64 toolchain patches as runai-model-streamer. riscv64-only.
  • 0003-third_party-add-riscv64-to-the-AWS-SDK-library-select.patch - To upstream. @aws select has no riscv64 branch. riscv64-only.
  • 0004-s3-ship-the-licences-of-the-statically-linked-dependencies.patch - To upstream. Explicit license_files drops the bundled licences. All arches.

Build the S3 backend plugin (libstreamers3.so) of Run:ai's Model
Streamer for riscv64. It statically links the AWS SDK for C++ (s3-crt),
OpenSSL, libcurl and zlib; those are built natively in the manylinux
image at the versions upstream's devcontainer pins, cached between runs.
@github-actions

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-27 16:41 UTC

The manylinux image's gcc does not default to PIE the way upstream's
Ubuntu devcontainer gcc does, so the static libz.a has absolute
R_RISCV_HI20 relocations that cannot be linked into libstreamers3.so.
Key the dependency cache on the workflow file so a recipe change
rebuilds it.
…ests

The 0.16.1 tag's files/tests/test_files.py calls _filter_ignore() with
allow_pattern=/ignore_pattern= keywords that neither helper has ever
accepted (both take (paths, patterns)), so three tests raise TypeError on
any architecture, including against upstream's own x86_64 PyPI wheel.
Upstream's CI never runs the S3 package's tests (py/Makefile's test target
only covers runai_model_streamer); dsx-ai-factory/model-streamer@c6a6543
fixed the tests on master after the release.
…does

python -m pytest prepends the cwd (tests/) to sys.path, where upstream's
tests/safetensors/ helper package shadows the installed safetensors, so
collecting s3/test_s3.py failed on `from safetensors.torch import
safe_open`. tests/Makefile's s3 target runs the pytest script, whose
prepend-mode rootdir insertion adds only the repository root (gotcha
218).
@luhenry
luhenry merged commit 34ee386 into main Sep 27, 2026
15 checks passed
@luhenry
luhenry deleted the runai-model-streamer-s3 branch September 27, 2026 16:06
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.

1 participant