一键导入
release
Cut a new ExecutionKit release — version bump, changelog, tag, GitHub release, docs, PyPI
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Cut a new ExecutionKit release — version bump, changelog, tag, GitHub release, docs, PyPI
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | release |
| description | Cut a new ExecutionKit release — version bump, changelog, tag, GitHub release, docs, PyPI |
Run the local validation gate first. All four steps must pass.
/validate
Also confirm that the remote CI is green (GitHub Actions) before proceeding.
Semver rules:
x+1.0.0) — breaking API changex.y+1.0) — new backward-compatible featurex.y.z+1) — bug fix or internal change onlyCurrent version is in executionkit/__init__.py as __version__.
__version__Edit executionkit/__init__.py:
__version__ = "x.y.z" # replace with new version
Hatchling reads the version from this file via [tool.hatch.version] path = "executionkit/__init__.py" — no pyproject.toml edit needed.
Add a new section at the top of the file (above the previous release, below any ## [Unreleased] block):
## [x.y.z] — YYYY-MM-DD
### Added
- ...
### Fixed
- ...
### Changed
- ...
Keep the ## [Unreleased] section below it (reset it to empty after moving its items into the new section).
/validate
Catches import errors introduced by the version bump before the commit is tagged.
git add executionkit/__init__.py CHANGELOG.md
git commit -m "chore(release): x.y.z"
git tag vx.y.z
git push && git push --tags
Extract the changelog notes for the new version and pass them directly:
gh release create vx.y.z \
--title "vx.y.z" \
--notes-file <(sed -n '/## \[x\.y\.z\]/,/## \[/p' CHANGELOG.md | head -n -1)
Alternative if process substitution is unavailable (e.g. plain PowerShell):
gh release create vx.y.z --generate-notes
# Then edit the release body in the browser to paste the CHANGELOG section
mkdocs gh-deploy --force
This pushes the rendered MkDocs site to the gh-pages branch.
Requires PYPI_TOKEN set in the environment (export PYPI_TOKEN=pypi-...).
python -m build
python -m twine upload dist/* -u __token__ -p "$PYPI_TOKEN"
Do NOT commit or log PYPI_TOKEN. Rotate it immediately if it is exposed.