- name
- release
- description
- Prepare and verify a slime release, including version bumps, stable Docker patch snapshots, Docker/conda dependency alignment, and release-specific validation. Use when cutting or auditing a slime release.
# Release slime
Prepare a release without publishing, tagging, pushing images, or changing the
dependency baseline unless the user explicitly requests those external or
scope-expanding actions.
## Establish the release baseline
- Inspect the worktree and preserve unrelated user changes.
- Compare the previous release tag and release commit to identify the current
repository conventions.
- Confirm the requested slime version and the current stable SGLang version
from `docker/Dockerfile` and `docker/README.md`.
- Do not pull in an unmerged SGLang/Docker upgrade merely because a newer
branch exists. Treat that as a separate decision.
## Update release versions
- Set the package version in `setup.py`.
- Set the documentation version in `docs/conf.py`.
- Bump `docker/version.txt` to a unique image version following its existing
dated naming convention.
- Search the repository for the old slime version and review every remaining
occurrence instead of replacing unrelated dependency versions.
## Freeze the stable Docker patches
- Treat `docker/patch/latest/` as the patch stack for the current Docker base.
- Snapshot it exactly into `docker/patch/<stable-sglang-version>/`. At release
time, the two directories must contain the same patch filenames and bytes.
- Preserve older SGLang patch directories. Remove an obsolete file from the
current stable snapshot only after confirming it is absent from `latest`.
- Verify the stable patch stack applies in Dockerfile order to clean checkouts
of the pinned SGLang and Megatron commits. Do not validate against a dirty
developer checkout.
## Audit Docker and conda together
Compare `build_conda.sh` with `docker/Dockerfile`, `docker/justfile`, and the
stable patch snapshot. Check at least:
- SGLang version, commit, CUDA variant, `sglang-kernel`, and `sgl-deep-gemm`;
- Megatron, torch-memory-saver, FlashQLA, and other shared source pins;
- `PATCH_VERSION`, patch filenames, application order, optional patches, and
failure-on-conflict behavior;
- PyTorch, torchvision, torchaudio, CUDA Python, Transformer Engine, router,
NumPy, and SciPy pins;
- whether dependency resolution can undo a compatibility pin later in the
script; reassert and validate such pins after the resolving install;
- intentional differences such as conda being CUDA-12-only, omitting FA3, or
not rebuilding feature-specific DeepGEMM/DeepEP forks. Keep a difference
only when the release CI scope makes it intentional.
Prefer direct loops over duplicated patch-application blocks while preserving
required-versus-optional semantics and useful failure messages.
## Validate before handoff
Run the checks that are available locally:
- `python .claude/skills/release/scripts/check_release.py --repo .
--expected-version <version>`;
- `python setup.py --version`;
- `bash -n build_conda.sh`;
- byte-for-byte comparison of `docker/patch/latest/` and the stable snapshot;
- patch parsing plus clean-checkout application against the pinned upstream
commits;
- `git diff --check` and a final review of the complete release diff.
Run the release conda CI and relevant Docker builds when the environment and
requested scope permit. The conda workflow is selected by a PR title containing
`[release]`. Explicitly report any full build or GPU validation that was not run.
عرض على GitHub