Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/release-sglang-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ run-name: >-
SMG+SGLang |
${{ github.event_name == 'push' && 'base=lmsysorg/sglang:v0.5.12.post1' || format('base={0}', inputs.base_image_ref || 'lmsysorg/sglang:v0.5.12.post1') }} |
engine=${{ inputs.sglang_commit || 'latest' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }} |
${{ github.event_name == 'pull_request' && 'dry-run |' || '' }}
by @${{ github.actor }}

Expand Down Expand Up @@ -44,10 +44,10 @@ on:
smg_commit:
description: 'SMG commit/ref ("latest" for HEAD)'
required: false
default: 'v1.5.0'
default: 'v1.6.0'
type: string
tag:
description: 'Override image tag (e.g. v1.5.0-sglang-v0.5.12.post1)'
description: 'Override image tag (e.g. v1.6.0-sglang-v0.5.12.post1)'
required: false
type: string

Expand All @@ -68,7 +68,7 @@ jobs:
engine_repo: ${{ inputs.sglang_repo }}
engine_commit: ${{ inputs.sglang_commit || 'latest' }}
smg_repo: ${{ inputs.smg_repo || 'https://github.com/lightseekorg/smg' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use the pushed SHA for release image builds

For the push path, this workflow runs automatically on main when bindings/python/pyproject.toml changes, but there are no workflow_dispatch inputs, so this falls back to v1.6.0; _build-engine-image.yml then passes that into docker/engine.Dockerfile, which clones SMG and runs git checkout "$SMG_COMMIT". The documented release flow tags only after the release PR is merged (docs/contributing/development.md), so the automatic post-merge Docker release will try to check out a tag that does not exist yet and fail; the same fallback is present in the vLLM/TRTLLM release workflows. Use the push SHA/branch for push events, or trigger these builds only after the tag exists.

Useful? React with 👍 / 👎.

tag: ${{ inputs.tag }}
dry_run: ${{ github.event_name == 'pull_request' }}
secrets: inherit
8 changes: 4 additions & 4 deletions .github/workflows/release-trtllm-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ run-name: >-
SMG+TRTLLM |
${{ github.event_name == 'push' && '3-version matrix' || format('base={0}', inputs.base_image_ref || 'nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc18') }} |
engine=${{ inputs.trtllm_commit || 'latest' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }} |
${{ github.event_name == 'pull_request' && 'dry-run |' || '' }}
by @${{ github.actor }}

Expand Down Expand Up @@ -44,10 +44,10 @@ on:
smg_commit:
description: 'SMG commit/ref ("latest" for HEAD)'
required: false
default: 'v1.5.0'
default: 'v1.6.0'
type: string
tag:
description: 'Override image tag (e.g. v1.5.0-trtllm-1.3.0)'
description: 'Override image tag (e.g. v1.6.0-trtllm-1.3.0)'
required: false
type: string

Expand All @@ -68,7 +68,7 @@ jobs:
engine_repo: ${{ inputs.trtllm_repo }}
engine_commit: ${{ inputs.trtllm_commit || 'latest' }}
smg_repo: ${{ inputs.smg_repo || 'https://github.com/lightseekorg/smg' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }}
tag: ${{ inputs.tag }}
source_build_repo: ${{ inputs.trtllm_repo }}
source_build_ref: ${{ inputs.trtllm_commit || 'latest' }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-vllm-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ run-name: >-
SMG+vLLM |
${{ github.event_name == 'push' && '3-version matrix' || format('base={0}', inputs.base_image_ref || 'vllm/vllm-openai:v0.22.1') }} |
engine=${{ inputs.vllm_commit || 'latest' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }} |
smg=${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }} |
${{ github.event_name == 'pull_request' && 'dry-run |' || '' }}
by @${{ github.actor }}

Expand Down Expand Up @@ -44,10 +44,10 @@ on:
smg_commit:
description: 'SMG commit/ref ("latest" for HEAD)'
required: false
default: 'v1.5.0'
default: 'v1.6.0'
type: string
tag:
description: 'Override image tag (e.g. v1.5.0-vllm-v0.22.1)'
description: 'Override image tag (e.g. v1.6.0-vllm-v0.22.1)'
required: false
type: string

Expand All @@ -68,7 +68,7 @@ jobs:
engine_repo: ${{ inputs.vllm_repo }}
engine_commit: ${{ inputs.vllm_commit || 'latest' }}
smg_repo: ${{ inputs.smg_repo || 'https://github.com/lightseekorg/smg' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.5.0' }}
smg_commit: ${{ github.event_name == 'pull_request' && 'main' || inputs.smg_commit || 'v1.6.0' }}
tag: ${{ inputs.tag }}
dry_run: ${{ github.event_name == 'pull_request' }}
secrets: inherit
26 changes: 13 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ resolver = "2"

[workspace.dependencies]
# Internal workspace crates
openai-protocol = { version = "1.8.0", path = "crates/protocols" }
reasoning-parser = { version = "1.3.0", path = "crates/reasoning_parser" }
tool-parser = { version = "1.3.0", path = "crates/tool_parser" }
wfaas = { version = "1.0.4", path = "crates/workflow" }
llm-tokenizer = { version = "1.4.0", path = "crates/tokenizer" }
smg-auth = { version = "1.2.0", path = "crates/auth" }
smg-mcp = { version = "2.3.0", path = "crates/mcp" }
kv-index = { version = "1.3.0", path = "crates/kv_index" }
smg-data-connector = { version = "2.3.0", path = "crates/data_connector", package = "data-connector" }
llm-multimodal = { version = "1.6.0", path = "crates/multimodal" }
smg-wasm = { version = "1.1.1", path = "crates/wasm", package = "smg-wasm" }
smg-mesh = { version = "1.4.0", path = "crates/mesh", package = "smg-mesh" }
smg-grpc-client = { version = "1.6.0", path = "crates/grpc_client" }
openai-protocol = { version = "1.8.1", path = "crates/protocols" }
reasoning-parser = { version = "1.3.1", path = "crates/reasoning_parser" }
tool-parser = { version = "1.3.1", path = "crates/tool_parser" }
wfaas = { version = "1.0.5", path = "crates/workflow" }
llm-tokenizer = { version = "1.4.1", path = "crates/tokenizer" }
smg-auth = { version = "1.2.1", path = "crates/auth" }
smg-mcp = { version = "2.3.1", path = "crates/mcp" }
kv-index = { version = "1.3.1", path = "crates/kv_index" }
smg-data-connector = { version = "2.3.1", path = "crates/data_connector", package = "data-connector" }
llm-multimodal = { version = "1.7.0", path = "crates/multimodal" }
smg-wasm = { version = "1.1.2", path = "crates/wasm", package = "smg-wasm" }
smg-mesh = { version = "1.4.1", path = "crates/mesh", package = "smg-mesh" }
smg-grpc-client = { version = "1.7.0", path = "crates/grpc_client" }

# Shared dependencies
anyhow = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion bindings/golang/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-golang"
version = "1.5.0"
version = "1.6.0"
edition = "2021"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-python"
version = "1.5.0"
version = "1.6.0"
edition = "2021"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "smg"
version = "1.5.0"
version = "1.6.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Sync smg.version with the release version

When 1.6.0 wheels are built from this metadata, import smg; smg.__version__ still returns the hard-coded value from bindings/python/src/smg/version.py (exported by bindings/python/src/smg/__init__.py), which remains 1.1.0. Any client or diagnostic relying on the runtime version will see the wrong version for the 1.6.0 release, so the Python source version should be bumped with this metadata change.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Version mismatch between pyproject.toml and hardcoded smg/version.py.

The pyproject.toml is bumped to 1.6.0, but the module-level __version__ in bindings/python/src/smg/version.py remains hardcoded at "1.1.0". Since bindings/python/src/smg/__init__.py re-exports __version__ from smg.version, external consumers will observe version 1.1.0 at runtime, not 1.6.0. This creates a package version mismatch that could confuse users and break version-pinning logic.

Ensure that bindings/python/src/smg/version.py is updated to __version__ = "1.6.0" to match the pyproject.toml bump.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bindings/python/pyproject.toml` at line 7, The version in pyproject.toml has
been bumped to 1.6.0, but the hardcoded __version__ variable in
bindings/python/src/smg/version.py is still set to 1.1.0. Since
bindings/python/src/smg/__init__.py re-exports __version__ from smg.version,
external consumers will see the old version at runtime. Update the __version__
string in bindings/python/src/smg/version.py to match the version defined in
pyproject.toml, changing it from 1.1.0 to 1.6.0.

description = "High-performance Rust-based inference gateway for large-scale LLM deployments"
authors = [
{name = "Simo Lin", email = "linsimo.mark@gmail.com"},
Expand Down
2 changes: 1 addition & 1 deletion crates/auth/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-auth"
version = "1.2.0"
version = "1.2.1"
edition = "2021"
description = "Authentication and authorization for control plane APIs"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/data_connector/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "data-connector"
version = "2.3.0"
version = "2.3.1"
edition = "2021"
description = "Storage backends for conversations and responses"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/grpc_client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-grpc-client"
version = "1.6.0"
version = "1.7.0"
edition = "2021"
description = "gRPC clients for vLLM, TensorRT-LLM, MLX, TokenSpeed, and SGLang backends"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/grpc_client/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "smg-grpc-proto"
version = "0.4.10"
version = "0.4.11"
description = "SMG gRPC proto definitions for vLLM, TRT-LLM, MLX, TokenSpeed, and SGLang"
requires-python = ">=3.10"
dependencies = [
Expand Down
2 changes: 1 addition & 1 deletion crates/kv_index/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "kv-index"
version = "1.3.0"
version = "1.3.1"
edition = "2021"
description = "Radix tree implementations for prefix matching and cache-aware routing"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/mcp/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-mcp"
version = "2.3.0"
version = "2.3.1"
edition = "2021"
description = "Model Context Protocol (MCP) client implementation"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/mesh/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-mesh"
version = "1.4.0"
version = "1.4.1"
edition = "2021"
description = "Mesh gossip protocol and distributed state synchronization for Shepherd Model Gateway"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/multimodal/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "llm-multimodal"
version = "1.6.0"
version = "1.7.0"
edition = "2021"
description = "Multimodal processing for vision and other modalities"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/protocols/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "openai-protocol"
version = "1.8.0"
version = "1.8.1"
edition = "2021"
description = "OpenAI-compatible API protocol definitions and types"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/reasoning_parser/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reasoning-parser"
version = "1.3.0"
version = "1.3.1"
edition = "2021"
description = "Parser for AI model reasoning/thinking outputs (chain-of-thought, etc.)"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/tokenizer/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "llm-tokenizer"
version = "1.4.0"
version = "1.4.1"
edition = "2021"
description = "LLM tokenizer library with caching and chat template support"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/tool_parser/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tool-parser"
version = "1.3.0"
version = "1.3.1"
edition = "2021"
description = "Tool/function call parser for LLM model outputs"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/wasm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg-wasm"
version = "1.1.1"
version = "1.1.2"
edition = "2021"
description = "WebAssembly runtime and module management for Shepherd Model Gateway"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/workflow/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "wfaas"
version = "1.0.4"
version = "1.0.5"
edition = "2021"
description = "Workflow-as-a-Service engine for managing multi-step operations"
license = "Apache-2.0"
Expand Down
4 changes: 2 additions & 2 deletions deploy/helm/smg/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: smg
description: "Shepherd Model Gateway - high-performance inference router for LLM deployments"
type: application
version: 1.5.0
appVersion: "1.5.0"
version: 1.6.0
appVersion: "1.6.0"
kubeVersion: ">=1.26.0-0"
home: https://github.com/lightseekorg/smg
sources:
Expand Down
2 changes: 1 addition & 1 deletion model_gateway/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smg"
version = "1.5.0"
version = "1.6.0"
edition = "2021"
description = "High-performance model-routing gateway for large-scale LLM deployments"
license = "Apache-2.0"
Expand Down
Loading