Release sphinx-palewire-theme and safely update its Sphinx satellite sites. Use when changing the shared theme, publishing a theme version, or rolling a released version out to palewire documentation sites.
Install
npx skillscat add palewire/palewi-re/rollout-sphinx-theme Install via the SkillsCat registry.
Roll out the Sphinx theme
Publish the shared theme first, then update each direct consumer in a focused
pull request. Never point sites at an unreleased commit.
1. Prepare and release the theme
Work in
palewire/sphinx-palewire-theme, not a consumer repository.Read its
AGENTS.md, then make the theme change with matching rendered-page
tests.Run the documented checks: pre-commit, unit tests, Sphinx HTML build, link
check, anduv build.Open a focused pull request. Merge only after required checks and reviews
pass.Choose the next unused semantic patch tag. Check both existing tags and
GitHub releases: previous tags may exist without a published release.Push an annotated release tag from the merged
maincommit.Confirm the tag workflow's PyPI job passed, then verify the exact version:
curl --fail --silent --show-error \ https://pypi.org/pypi/sphinx-palewire-theme/VERSION/json
The release workflow must match normal version tags with tags: ["0.*"].
Do not use workflow_dispatch to publish a setuptools-scm version: a
non-tagged checkout produces a development version.
2. Inventory consumers
Search the palewire account for configured theme users:
gh api \
'search/code?q=%22html_theme+%3D+%5C%22palewire%5C%22%22+user%3Apalewire&per_page=100'Classify each result before editing:
- Direct user:
pyproject.tomldeclaressphinx-palewire-theme. - Legacy user: a
Pipfile, requirements file, or another package source
supplies the theme. - Not a user: the theme line is commented or no dependency exists.
Check for open dependency pull requests before creating one. Do not duplicate
or overwrite another update. Report legacy and non-user sites separately; do
not guess how to modernize their package setup as part of a theme rollout.
3. Update direct users
For every direct user:
- Change the dependency to
sphinx-palewire-theme>=VERSION, or change an
exact pin to==VERSIONwhen that repository intentionally uses exact
pins. - Refresh only the existing lockfile with the repository's package tool.
Do not upgrade unrelated packages. - Run the narrowest existing documentation, test, or install check that
covers the update. - Open one focused pull request per repository. State the theme version and
validation result in the pull request body.
Run independent consumer updates in parallel. Keep an inventory of every pull
request, skipped repository, and validation issue.
4. Merge and report
Merge only pull requests that GitHub marks ready and whose required checks
pass. Update a branch that is behind main, then wait for its checks again.
Do not weaken repository protections to merge a routine dependency update.
If GitHub Actions fails because CodeQL upload is disabled or unavailable,
record that repository configuration issue. Do not enable paid GitHub
features or bypass a required check without the repository owner's explicit
instruction.
Finish with:
- the published theme version and release URL;
- all consumer pull request URLs and merge status;
- validation failures or pending checks;
- existing dependency PRs left untouched; and
- legacy users with their package source and a concrete next action.