Release checklist¶
Merging to main triggers an automatic GitHub Release. Run through this
checklist on your branch before merging.
1. Files and version¶
- Every new
src/script has the standard package header: - Every new
src/script is listed in[[tool.bumpversion.files]]inpyproject.toml(so the next version bump updates it automatically). - Version in
pyproject.toml([project].versionand[tool.bumpversion].current_version) matches the headers in allsrc/files:
2. Tests¶
- All bats tests pass with no failures and no BW01 warnings:
- New scripts have a corresponding
test/<script>.batsfile. - New functions in existing libraries have test coverage.
3. Lint¶
- Update pre-commit hooks to latest versions:
- All pre-commit hooks pass (includes shfmt, shellcheck, and other linters):
4. Docs¶
- Every new script or library has a doc page under
docs/ordocs/libraries/. - New doc pages are wired into
navinzensical.toml. - Option tables, examples, and usage blocks are up to date.
- Docs build without errors:
5. Version bump¶
When the checklist above is green, bump the version:
# patch: 0.1.4 → 0.1.5
uvx bump-my-version bump patch
# minor: 0.1.4 → 0.2.0
uvx bump-my-version bump minor
# major: 0.1.4 → 1.0.0
uvx bump-my-version bump major
This updates pyproject.toml and all src/ headers in one commit, then
creates and pushes a v{version} tag.
Verify all headers are consistent after the bump:
grep 'PACKAGE: just-bashit version' src/*.sh src/just-runit src/script-template \
| awk -F'version ' '{print $2}' | tr -d ' #' | sort -u
6. Merge and release¶
- Push the branch and open a PR — CI must be green (tests + lint).
- Merge to
main— thereleasejob creates the GitHub Release and uploadsjust-bashit.tar.gzautomatically. - Confirm the release appears at
https://github.com/just-buildit/just-bashit/releases. - Confirm the docs site updated at
https://just-buildit.github.io/just-bashit/.