원클릭으로
release
Prepares a Python package for PyPI release by updating the version, building, and verifying the distribution.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Prepares a Python package for PyPI release by updating the version, building, and verifying the distribution.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Merges completed work back to main through a protected-branch pull request workflow.
Set up a new git worktree and install dependencies.
Merges completed work back to main through a protected-branch pull request workflow.
Set up a new git worktree and install dependencies.
Prepare a release by updating the version, building, and verifying the distribution.
Verify that the codebase matches the desired end state described in a design document.
| name | release |
| description | Prepares a Python package for PyPI release by updating the version, building, and verifying the distribution. |
Prepare a Python package for PyPI release by updating the version, building, and verifying the distribution.
$ARGUMENTS
Check that the current branch is main and has zero differences from origin:
git checkout main && git diff --exit-code origin/main
If there are any differences:
Releases must start from a clean main branch with no uncommitted or unpushed changes.
Gather the following information from the user-provided context:
0.1.0a1 for first alpha, 0.1.0 for stable)If unclear, look up the current published version on PyPI and suggest the next patch increment (e.g., if 0.1.1 is published, suggest 0.1.2). Ask the user to confirm or provide a different version.
Check for broken external links in documentation:
python scripts/check-external-links.py
If broken links are found:
Every release should be entirely clean and involve only the version number as a change. Do not proceed with the release if there are broken links to fix.
Update pyproject.toml to set the target version in the [tool.poetry] section, then use the committer agent to commit the change.
Create a versioned docs snapshot for this release:
cd docs && pnpm docusaurus docs:version <target-version>
Then update docusaurus.config.ts:
lastVersion to "<target-version>" in the preset's docs optionsversions config object:
"<target-version>": {
label: "v<target-version>",
},
Use the committer agent to commit the snapshot.
Clean previous builds, build fresh distributions, and verify:
rm -rf dist/ && poetry build
Then run verification checks:
ls -lh dist/
tar -tzf dist/*.tar.gz | grep "bundled/scripts/nl.*\.md" | wc -l
tar -tzf dist/*.tar.gz | grep -E "docs/|tests/" && echo "Found excluded files (unexpected)" || echo "No excluded files (correct)"
Tell the user the package is ready and provide these instructions:
To test on TestPyPI first (recommended):
poetry publish -r testpypi
Then install and test:
python -m venv /tmp/test-mekara
source /tmp/test-mekara/bin/activate
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ mekara==<version>
mekara --version
deactivate
rm -rf /tmp/test-mekara
To publish to real PyPI
poetry publish
After the user confirms the package installs and runs correctly from PyPI, create a git tag and GitHub release:
First, find the previous version tag to use as the start of the release notes:
git tag --sort=-version:refname | grep '^v' | sed -n '2p'
Then create the tag and release, scoping notes to only changes since the previous tag:
git tag v<target-version>
git push origin v<target-version>
gh release create v<target-version> --title "v<target-version>" --generate-notes --notes-start-tag v<previous-version>
Wait for the user to confirm successful install before creating the release.