hyfetch/tools/deploy.md
2026-06-03 07:48:53 +00:00

35 lines
1.5 KiB
Markdown

(If anyone stumbles upon this file, it's just some notes for myself because I always forgor stuff)
### One-time GitHub setup
Configure trusted publishing for the release workflow:
* PyPI project `HyFetch`: trust this repository and `.github/workflows/release.yml`
* npm package `neowofetch`: trust this repository and `.github/workflows/release.yml`
No PyPI or npm API token secrets are needed. The publish jobs request GitHub's
OIDC token with `id-token: write`, and the registries exchange that token through
their trusted publishing flows.
### Things to do before deploying
* [ ] Update changelog (`README.md`) and commit changes
* [ ] Run `python -m tools.deploy-release {version}`
* [ ] Watch the `Release` workflow
The local script prepares the release commit and pushes the version tag. By
default it also updates the built-in fastfetch binaries to the latest upstream
release used by Python wheels. Use `--fastfetch-version {version}` to pin a
specific upstream fastfetch release, or `--skip-fastfetch-update` to keep the
current pin.
GitHub Actions creates/completes the GitHub Release, uploads Python artifacts,
publishes to PyPI, and publishes to npm.
If the workflow fails after one stage already published, fix the problem and
rerun it manually with the same release tag. If the fix changes files needed by
the failed stage, set `source_ref` to the branch or commit containing the fix,
and turn off any stages that already completed. The workflow checks PyPI, npm,
and the GitHub Release first, so completed stages are skipped instead of being
published again.