Repository navigation
release: kern-llm on PyPI, the runtime and both engine plugins in one wheel - #59
Conversation
`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>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 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/**" |
There was a problem hiding this comment.
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>
For 0.3.0: make kern usable from vLLM and SGLang with one
pip install.pip install kern-llmgivesimport kern,kern_vllmandkern_sglang, with thevllm.general_pluginsandsglang.srt.pluginsentry points registered. It replaces the localmaturin buildplus two setuptools packages.kernis taken on PyPI by an unrelated project, so only the distribution name changes; the import stayskern. The plugins move undercrates/kern-py/python.PyO3/maturin-action;scripts/check_wheel.shinstalls 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;SHA256SUMSand the provenance attestation), then to PyPI in a separate job by trusted publishing (no token; PyPI's pending publisher forkern-llmnames this repo,release.ymland thepypienvironment).docs/release.mdcovers the wheel, the PyPI step, the post-release gate (conc1 in both engines) and why a failed gate means yank + patch bump. README,vllm.mdandsglang.mdinstall withpip install kern-llm.New actions:
PyO3/maturin-action(manylinux build container) andpypa/gh-action-pypi-publish(the PyPA uploader).Checked locally (aarch64, maturin 1.14.1): the wheel builds,
check_wheel.shpasses on it, and it fails on a wheel built without the plugin packages and on a wrong version. This PR touchescrates/kern-py, so the Release workflow builds and checks both wheels here without publishing.🤖 Generated with Claude Code