Skip to content

release: kern-llm on PyPI, the runtime and both engine plugins in one wheel - #59

Merged
xiaguan merged 3 commits into
masterfrom
release-0.3
Oct 15, 2026
Merged

xiaguan merged 3 commits into
masterfrom
release-0.3

Conversation

@xiaguan

@xiaguan xiaguan commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

For 0.3.0: make kern usable from vLLM and SGLang with one pip install.

  • One package. pip install kern-llm gives import kern, kern_vllm and kern_sglang, with the vllm.general_plugins and sglang.srt.plugins entry points registered. It replaces the local maturin build plus two setuptools packages. kern is taken on PyPI by an unrelated project, so only the distribution name changes; the import stays kern. The plugins move under crates/kern-py/python.
  • Release pipeline (modeled on pegaflow's):
    • a tag also builds an abi3 manylinux 2.28 wheel per arch (x86_64, aarch64) with PyO3/maturin-action;
    • scripts/check_wheel.sh installs it into a clean venv and checks the version against the tag, that both plugins and entry points are present, and that no CUDA library is linked;
    • the wheels go onto the GitHub release (in SHA256SUMS and the provenance attestation), then to PyPI in a separate job by trusted publishing (no token; PyPI's pending publisher for kern-llm names this repo, release.yml and the pypi environment).
  • Docs. docs/release.md covers the wheel, the PyPI step, the post-release gate (conc1 in both engines) and why a failed gate means yank + patch bump. README, vllm.md and sglang.md install with pip install kern-llm.

New actions: PyO3/maturin-action (manylinux build container) and pypa/gh-action-pypi-publish (the PyPA uploader).

Checked locally (aarch64, maturin 1.14.1): the wheel builds, check_wheel.sh passes on it, and it fails on a wheel built without the plugin packages and on a wrong version. This PR touches crates/kern-py, so the Release workflow builds and checks both wheels here without publishing.

🤖 Generated with Claude Code

xiaguan and others added 2 commits October 15, 2026 07:40
`pip install kern-llm` gives `import kern`, `kern_vllm` and `kern_sglang`,
with the vLLM and SGLang entry points registered, instead of a local maturin
build plus two setuptools packages that each depended on `kern`. `kern` is
taken on PyPI by an unrelated project; the import name stays. The plugins
move under crates/kern-py/python so the wheel's sources sit in one place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: JinYan Su <751080330@qq.com>
Modeled on pegaflow's release: the tag also builds an abi3 manylinux 2.28
wheel per arch with PyO3/maturin-action, checks it in a clean venv
(version, both plugins and entry points, no CUDA library linked), attaches
it to the GitHub release and uploads it with the repo secret
PYPI_API_TOKEN in a job of its own, so a bad token reruns alone.

New actions: PyO3/maturin-action (manylinux build container) and
pypa/gh-action-pypi-publish (the PyPA uploader).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: JinYan Su <751080330@qq.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T07:45:39.272960Z 7455614 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 745561449e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

paths:
- ".github/workflows/release.yml"
- "scripts/**"
- "crates/kern-py/**"

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 Run wheel checks when Rust dependencies change

Expand this path filter to cover crates/kern-runtime/**, crates/kern-manifest/**, the root Cargo.toml, and Cargo.lock. The new wheel directly compiles both Rust crates and inherits workspace configuration, while the regular CI excludes kern-py from default-members; therefore a dependency API or configuration change can pass every PR check but make the first tagged release fail during the maturin build.

Useful? React with 👍 / 👎.

PyPI holds a pending publisher for kern-llm bound to this repo's
release.yml in the pypi environment, so the upload job asks for an OIDC
token instead of reading a secret. Nothing to leak or rotate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: JinYan Su <751080330@qq.com>
@xiaguan
xiaguan merged commit 90267d3 into master Oct 15, 2026
9 checks passed
@xiaguan
xiaguan deleted the release-0.3 branch October 15, 2026 07:59
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