Skip to content

feat: add runner-release skill (release cutting + docs alignment), align supported-runner docs - #356

Merged
thxCode merged 8 commits into
mainfrom
feat/runner-release-skill
Oct 12, 2026
Merged

thxCode merged 8 commits into
mainfrom
feat/runner-release-skill

Conversation

@thxCode

@thxCode thxCode commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Two maintainer duties around a release were undocumented or drifted:

  • The public support docs drifted from what Pack actually published — README's table still headed CANN vLLM at 0.23.0 and CUDA/ROCm at 0.29.0 while the published records carry CANN 9.1 vLLM 0.27.1 (plugin 0.27.1rc1), CUDA/ROCm vLLM 0.31.0 and SGLang 0.5.21. Realigning by hand each release is exactly the kind of step that gets skipped.
  • Cutting the package release itself had no written procedure: tag shape, notes, and promotion were tribal knowledge, and the release CI published final releases straight to GA with an empty or hand-generated body (compare v0.1.30's empty notes vs v0.1.30.post1's generated ones).

Change

  • docs: align supported runner versions with published records. README cells show the newest published engine with its runtime line (CANN vLLM carries the (rc) mark for its prerelease plugin); the historical tables gain the newly published versions at cell head, wrapped every two versions.
  • feat: add the runner-release skill with both duties:
    • Cut a package release: preflight, version/commit selection against PEP 440 tag shapes (vX.Y.Z / vX.Y.ZrcN / vX.Y.Z.postN), notes drafting, tag push, run monitoring, note curation, promotion — with PyPI immutability as the hard boundary (a published version is burned; fix forward, never re-tag) and rc tags never promoted.
    • Align support docs: cross-check every published row against the measured catalog first, then recompute README cells and prepend to historical cells.
  • ci: tag releases publish as pre-releases with generated baseline notes. The old expression (prerelease: contains(github.ref, 'rc')) let finals go straight to GA with whatever body existed; now every tag release starts as a pre-release with a baseline, and the skill's curate-and-promote step is the gate. PyPI publishes in the same job either way — the gate covers GitHub Release visibility, not the package index.
  • test: keep the support-migration gate as an ordered subsequence. The historical tables are a living document now, so verbatim containment of the legacy fixture cannot hold; the preserved property is that no original version is lost or reordered.

Verification

  • Full tests/auto_sync suite: 811 passed, 17 skipped; the rewritten migration test was confirmed red against a deleted legacy version before going green.
  • lint_workflows.py on release.yml: identical 8 pre-existing shellcheck infos as origin/main; no new diagnostics.
  • mkdocs build --strict and pre-commit pass on all changed files.
  • Earlier rounds: 13 published rows cross-checked against the catalog (platforms and plugin versions match); post-edit assertions confirmed every published engine heads its historical and README cell.

- README supported-runners cells now show the newest published engine
  with its runtime line: CANN vLLM 0.27.1 (9.1) and SGLang 0.5.20 (9.0),
  CUDA vLLM 0.31.0 (13.0) and SGLang 0.5.21 (13.0), ROCm vLLM 0.31.0
  (7.2) and SGLang 0.5.21 (7.2)
- historical tables gain the newly published versions at cell head;
  CANN 9.1 vLLM 0.27.1 carries the (rc) marker for its prerelease
  vllm-ascend plugin
- all 13 published rows cross-checked against the measured catalog
  (platforms and plugin versions match)

Signed-off-by: thxCode <[email protected]>
- new project skill .agents/skills/runner-release: at release time or
  after Pack publishes images, cross-check published support records
  against the measured catalog, then align README.md and
  docs/supported-runners.md
- records the rules this alignment follows: published rows only,
  never invent versions, (rc) marker for CANN prerelease plugins,
  prune by deletion, Pack owns support-records.md
- referenced from AGENTS.md release automation section

Signed-off-by: thxCode <[email protected]>

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces a new skill documentation file for runner-release, registers it in AGENTS.md, and updates the supported runner versions for vLLM and SGLang across several backends in README.md and docs/supported-runners.md. Feedback suggests adding the (rc) label to the CANN vLLM version 0.27.1 in the README.md table to consistently identify it as a prerelease plugin, aligning with the note below the table and the historical records.

Comment thread README.md Outdated
@thxCode

thxCode commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Review round triage — 1 item from gemini-code-assist:

  • README.md:24 — missing (rc) label on CANN vLLM 0.27.1: real bug, fixed. The newest published CANN vLLM ships prerelease plugin 0.27.1rc1, and the note below the table defines (rc) for exactly this case. The cell now reads 0.27.1(rc) (9.1). Same root cause addressed in the runner-release skill, which previously stated the (rc) rule only for the historical tables; it now covers the README cell too.

No other cells affected: 0.27.1rc1 is the only prerelease plugin among the published records.

Verification: mkdocs build --strict and pre-commit pass on the changed files. Landed as fixup commits b8780e5 (docs alignment) and 74f4439 (skill).

Normalize the historical tables to break a cell after every two
versions, and state the rule in the runner-release skill so future
alignment keeps it.

Signed-off-by: thxCode <[email protected]>
@thxCode

thxCode commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Added 816ebda: the historical tables now wrap every cell after two versions (four cells regrouped), and the runner-release skill states the rule so future alignments keep it. A full-file scan confirms no cell carries more than two versions per line.

The historical tables are a living document: docs alignment prepends
newly published versions and re-wraps cells, so verbatim containment of
the legacy fixture cannot hold. Assert the preserved property instead —
no original version lost or reordered.

Signed-off-by: thxCode <[email protected]>
Every tag release now starts as a pre-release carrying GitHub-generated
notes, so an untriaged release never sits public with an empty body.
The runner-release skill curates the notes and promotes finals; rc tags
stay pre-releases.

Signed-off-by: thxCode <[email protected]>
The skill now covers cutting a package release end to end: preflight,
version and commit selection against PEP 440 tag shapes, notes drafting,
tag push, run monitoring, note curation, and promotion, with PyPI
immutability as the hard boundary. AGENTS.md points at both duties.

Signed-off-by: thxCode <[email protected]>
@thxCode thxCode changed the title docs: align supported runner docs with published records + add runner-release skill feat: add runner-release skill (release cutting + docs alignment), align supported-runner docs Oct 12, 2026
@thxCode

thxCode commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Scope update, three new commits: 56c8ff9 repairs the auto-sync-contract failure (the support-migration test asserted verbatim containment of the legacy fixture, which a living historical table cannot satisfy — now an ordered-subsequence gate, proven red against a deleted legacy version); 4fe123c makes tag releases publish as pre-releases with generated baseline notes; 4b308b9 extends the runner-release skill with the release-cutting procedure (tag selection, notes, monitor, curate, promote) modeled on the operator release flow. Full auto_sync suite green locally: 811 passed.

@thxCode
thxCode merged commit 21b062c into main Oct 12, 2026
8 checks passed
@thxCode
thxCode deleted the feat/runner-release-skill branch October 12, 2026 08:21
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