Walk through the full Shiny for Python release train interactively, phase by phase. Use when the user says "release", "start a release", "py-shiny release", "release train", or wants to publish new versions of py-shiny and its ecosystem packages (py-htmltools, py-shinyswatch, py-shinywidgets, shinylive, py-shinylive, r-shinylive). Guides through version bumps, CI checks, tagging, PyPI publishing, conda-forge, Huggingface, site updates, and blog post publication.
Walk through releasing the full py-shiny ecosystem interactively. Each phase requires explicit user confirmation before proceeding to the next.
gh CLI for GitHub operations (PRs, releases, tags)Before tagging, creating a GH Release, or pushing a tag for ANY package, stop and run this verification checklist with the user:
"Ready to release {package} v{version}? This will tag the commit and publish to {registry}. Please confirm with 'yes' to proceed."
1.3.0)[ ] Phase 1: Prerequisites (shinyswatch update if HTML deps changed)
[ ] Phase 2: Release py-htmltools
[ ] Phase 3: Release py-shiny
[ ] Phase 4: Release py-shinyswatch
[ ] Phase 5: Release py-shinywidgets
[ ] Phase 6: Update Shinylive (JS) repo
[ ] Phase 7: Update py-shinylive
[ ] Phase 8: Update r-shinylive
[ ] Phase 9: Update py-shiny (bump shinylive docs version)
[ ] Phase 10: Update py-shiny-site
[ ] Phase 11: Conda-forge
[ ] Phase 12: Huggingface
[ ] Phase 13: Publish blog post
For detailed steps in each phase, read references/release-phases.md.
| Package | Repo | Registry |
|---|---|---|
| py-htmltools | posit-dev/py-htmltools | PyPI |
| py-shiny | posit-dev/py-shiny | PyPI |
| py-shinyswatch | posit-dev/py-shinyswatch | PyPI |
| py-shinywidgets | posit-dev/py-shinywidgets | PyPI |
| shinylive (JS) | posit-dev/shinylive | GH Release artifact |
| py-shinylive | posit-dev/py-shinylive | PyPI |
| r-shinylive | posit-dev/r-shinylive | CRAN |
| py-shiny-site | posit-dev/py-shiny-site | GitHub Pages |
| conda htmltools | conda-forge/py-htmltools-feedstock | conda-forge |
| conda shiny | conda-forge/py-shiny-feedstock | conda-forge |
Many phases (2-5, 7) follow this common flow:
rc-vX.Y.Zpyproject.toml has no git-based deps (e.g., no htmltools @ git+https://...)__init__.py, or tag-based for py-shiny)git checkout main && git pull && git tag vX.Y.Z && git push origin vX.Y.Zgh run viewmake clean && make all output