All skills
nvidia-nemo avatar

/publish-python-release

@239a413
by nvidia-nemonvidia-nemo/switchyard3.3k stars
317

Build or publish nemo-switchyard Python distributions through the repository's GitHub Actions workflow. Use when asked to build a development wheel, cut a Python release, publish to PyPI, create a release tag, or debug .github/workflows/publish.yml.

  • 1 file
  • 2.5 KB
  • Updated 2 months ago
  • GitHub

Use this Skill: https://skilld.dev/gh/nvidia-nemo/switchyard/publish-python-release

This session only. Nothing lands on disk.

SKILL.md

≈68 tokens always: the name and description. ≈557 when used: this file.

Publish The Python Package

Use .github/workflows/publish.yml as the source of truth. The supporting runbook is docs/internal/release_workflow.md.

Release Paths

Intent Trigger Result
One temporary wheel Manual dispatch with build_dev_artifact=true Linux x86_64 GitHub artifact, retained for one day
Full matrix test Manual dispatch with build_dev_matrix=true sdist and wheel artifacts; no publish
Official release Push vMAJOR.MINOR.PATCH matching pyproject.toml Full matrix, PyPI publish, GitHub Release

Manual builds are artifact-only. Official releases use PyPI Trusted Publishing through the GitHub environment named pypi; do not add a long-lived PyPI token.

Workflow

  1. Read the current workflow and pyproject.toml; do not rely on remembered inputs or versions.
  2. Confirm the requested version and whether the user explicitly authorized creating a tag.
  3. For workflow changes, run the focused release-helper tests and inspect the workflow diff.
  4. Dispatch a development build or push the authorized release tag.
  5. Monitor every matrix job and verify the resulting package from a clean temporary environment.

Example development dispatch:

gh workflow run publish.yml \
  -f build_dev_artifact=true \
  -f build_dev_matrix=false \
  -f dev_version=0.0.1.dev0

Guardrails

  • Never create or push a tag unless the user explicitly requested it.
  • Never publish a manual development build to PyPI.
  • Never reuse a deleted PyPI filename or version; PyPI permanently reserves filenames.
  • Keep release versions consistent across the tag, pyproject.toml, and package metadata.
  • Verify installation outside the checkout so local imports cannot mask packaging defects.
  • Cargo crate publishing is a separate manual workflow. Inspect each crate's Cargo.toml, dependency publication order, and crates.io ownership before running cargo publish.

Release-Infrastructure Validation

uv run ruff check scripts/release/set_dev_wheel_version.py tests/test_dev_wheel_versioning.py
uv run pytest tests/test_dev_wheel_versioning.py -v
python scripts/release/set_dev_wheel_version.py 0.0.1.dev0 --print-version
git diff --check

Source: SKILL.md on GitHub

No third-party reports yet.

Signed by skilld at 239a413. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago

README badge

README badge for nvidia-nemo/switchyard/publish-python-release