"pytorch/git@developer.sourcefind.cn:OpenDAS/fastmoe.git" did not exist on "eb1525ec06813a673d83c55c7ad5c55065e4aed2"
Unverified Commit 5259becd authored by Simo Lin's avatar Simo Lin Committed by GitHub
Browse files

[bug] fix router installation to include additional dependency (#12348)

parent ed1044ac
...@@ -94,7 +94,7 @@ jobs: ...@@ -94,7 +94,7 @@ jobs:
with: with:
target: ${{ matrix.target }} target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }} manylinux: ${{ matrix.manylinux || 'auto' }}
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }} args: --release --out dist --features vendored-openssl --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }}
rust-toolchain: stable rust-toolchain: stable
docker-options: -e CI -e CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc -e CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ docker-options: -e CI -e CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc -e CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
before-script-linux: | before-script-linux: |
......
...@@ -149,7 +149,7 @@ jobs: ...@@ -149,7 +149,7 @@ jobs:
echo "Building sgl-router..." echo "Building sgl-router..."
cd sgl-router cd sgl-router
pip install maturin pip install maturin
maturin build --release --out dist maturin build --release --out dist --features vendored-openssl
pip install --force-reinstall dist/*.whl pip install --force-reinstall dist/*.whl
- name: Start disaggregation servers - name: Start disaggregation servers
......
...@@ -57,7 +57,7 @@ jobs: ...@@ -57,7 +57,7 @@ jobs:
- name: Test maturin build - name: Test maturin build
uses: PyO3/maturin-action@v1 uses: PyO3/maturin-action@v1
with: with:
args: --release --out dist args: --release --out dist --features vendored-openssl
rust-toolchain: stable rust-toolchain: stable
sccache: true sccache: true
...@@ -166,7 +166,7 @@ jobs: ...@@ -166,7 +166,7 @@ jobs:
export RUSTC_WRAPPER=sccache export RUSTC_WRAPPER=sccache
cd sgl-router cd sgl-router
pip install maturin pip install maturin
maturin build --release --out dist maturin build --release --out dist --features vendored-openssl
pip install --force-reinstall dist/*.whl pip install --force-reinstall dist/*.whl
...@@ -263,7 +263,7 @@ jobs: ...@@ -263,7 +263,7 @@ jobs:
export RUSTC_WRAPPER=sccache export RUSTC_WRAPPER=sccache
cd sgl-router cd sgl-router
pip install maturin pip install maturin
maturin build --release --out dist maturin build --release --out dist --features vendored-openssl
pip install --force-reinstall dist/*.whl pip install --force-reinstall dist/*.whl
- name: Run Python E2E response API tests - name: Run Python E2E response API tests
......
...@@ -79,7 +79,7 @@ jobs: ...@@ -79,7 +79,7 @@ jobs:
with: with:
target: ${{ matrix.target }} target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }} manylinux: ${{ matrix.manylinux || 'auto' }}
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }} args: --release --out dist --features vendored-openssl --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14' }}
rust-toolchain: stable rust-toolchain: stable
docker-options: -e CI -e CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc -e CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ docker-options: -e CI -e CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc -e CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
before-script-linux: | before-script-linux: |
......
...@@ -18,6 +18,9 @@ Options: ...@@ -18,6 +18,9 @@ Options:
### Install Dependencies ### Install Dependencies
pip install "grpcio==1.75.1" "grpcio-tools==1.75.1" pip install "grpcio==1.75.1" "grpcio-tools==1.75.1"
Please make sure to use the same version of grpcio and grpcio-tools specified in pyproject.toml
otherwise update the versions specified in pyproject.toml
### Run Script ### Run Script
cd python/sglang/srt/grpc cd python/sglang/srt/grpc
python compile_proto.py python compile_proto.py
......
...@@ -24,6 +24,29 @@ rm -rf /root/.cache/flashinfer ...@@ -24,6 +24,29 @@ rm -rf /root/.cache/flashinfer
# Install apt packages # Install apt packages
apt install -y git libnuma-dev apt install -y git libnuma-dev
# Install protoc for router build (gRPC protobuf compilation)
if ! command -v protoc &> /dev/null; then
echo "Installing protoc..."
if command -v apt-get &> /dev/null; then
# Ubuntu/Debian
apt-get update
apt-get install -y wget unzip gcc g++ perl make
elif command -v yum &> /dev/null; then
# RHEL/CentOS
yum update -y
yum install -y wget unzip gcc gcc-c++ perl-core make
fi
cd /tmp
wget https://github.com/protocolbuffers/protobuf/releases/download/v32.0/protoc-32.0-linux-x86_64.zip
unzip protoc-32.0-linux-x86_64.zip -d /usr/local
rm protoc-32.0-linux-x86_64.zip
protoc --version
cd -
else
echo "protoc already installed: $(protoc --version)"
fi
# Install uv # Install uv
if [ "$IS_BLACKWELL" = "1" ]; then if [ "$IS_BLACKWELL" = "1" ]; then
# The blackwell CI runner has some issues with pip and uv, # The blackwell CI runner has some issues with pip and uv,
...@@ -58,8 +81,11 @@ else ...@@ -58,8 +81,11 @@ else
$PIP_CMD install -e "python[dev]" --extra-index-url https://download.pytorch.org/whl/${CU_VERSION} $PIP_INSTALL_SUFFIX --upgrade $PIP_CMD install -e "python[dev]" --extra-index-url https://download.pytorch.org/whl/${CU_VERSION} $PIP_INSTALL_SUFFIX --upgrade
fi fi
# Install OpenSSL development libraries for router build
apt install -y libssl-dev pkg-config
# Install router for pd-disagg test # Install router for pd-disagg test
SGLANG_ROUTER_BUILD_NO_RUST=1 $PIP_CMD install -e "sgl-router" $PIP_INSTALL_SUFFIX $PIP_CMD install -e "sgl-router" $PIP_INSTALL_SUFFIX
# Install sgl-kernel # Install sgl-kernel
SGL_KERNEL_VERSION_FROM_KERNEL=$(grep -Po '(?<=^version = ")[^"]*' sgl-kernel/pyproject.toml) SGL_KERNEL_VERSION_FROM_KERNEL=$(grep -Po '(?<=^version = ")[^"]*' sgl-kernel/pyproject.toml)
......
...@@ -7,6 +7,7 @@ edition = "2021" ...@@ -7,6 +7,7 @@ edition = "2021"
default = ["grpc-client"] default = ["grpc-client"]
grpc-client = [] grpc-client = []
grpc-server = [] grpc-server = []
vendored-openssl = ["openssl/vendored"]
[lints.rust] [lints.rust]
unused_qualifications = "warn" unused_qualifications = "warn"
...@@ -67,7 +68,7 @@ tiktoken-rs = { version = "0.7.0" } ...@@ -67,7 +68,7 @@ tiktoken-rs = { version = "0.7.0" }
minijinja = { version = "2.0", features = ["unstable_machinery", "json", "builtins"] } minijinja = { version = "2.0", features = ["unstable_machinery", "json", "builtins"] }
minijinja-contrib = { version = "2.0", features = ["pycompat"] } minijinja-contrib = { version = "2.0", features = ["pycompat"] }
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
openssl = { version = "0.10.73", features = ["vendored"] } openssl = "0.10.73"
hf-hub = { version = "0.4.3", features = ["tokio"] } hf-hub = { version = "0.4.3", features = ["tokio"] }
rmcp = { version = "0.8.3", features = ["client", "server", rmcp = { version = "0.8.3", features = ["client", "server",
"transport-child-process", "transport-child-process",
......
...@@ -70,13 +70,21 @@ cargo build --release ...@@ -70,13 +70,21 @@ cargo build --release
pip install maturin pip install maturin
# Fast development mode (debug build, no wheel, instant) # Fast development mode (debug build, no wheel, instant)
# Uses system OpenSSL (requires libssl-dev/openssl-devel)
maturin develop maturin develop
# Production build (optimized, creates wheel) # Production build (optimized, creates wheel)
# Uses vendored OpenSSL (cross-platform compatibility)
maturin build --release --features vendored-openssl
pip install --force-reinstall dist/*.whl
# Development build with system OpenSSL (faster)
# Requires: apt install libssl-dev pkg-config (Ubuntu/Debian)
# or: yum install openssl-devel (RHEL/CentOS)
maturin build --release maturin build --release
pip install --force-reinstall dist/*.whl pip install --force-reinstall dist/*.whl
``` ```
> **Note:** Use `maturin develop` for fast iteration during development (builds in debug mode and installs directly). Use `maturin build --release` for production wheels with full optimizations (opt-level="z", lto="fat"). The package uses abi3 support for Python 3.8+ compatibility. > **Note:** Use `maturin develop` for fast iteration during development (builds in debug mode and installs directly). Use `maturin build --release --features vendored-openssl` for production wheels with full optimizations (opt-level="z", lto="fat") and cross-platform compatibility. The package uses abi3 support for Python 3.8+ compatibility.
## Quick Start ## Quick Start
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment