Please fork this repository, create a branch containing your suggested changes, and submit a pull request based on the main branch of https://github.com/kvz/bash3boilerplate/.
Run the regular test suite:
yarn testRun a fast contract-focused subset:
yarn test:fastRun the Bash 3.2.57 compatibility suite in Docker:
yarn test:bash3:dockerRun all checks used for release confidence:
yarn test:allCI runs on Linux (ubuntu-latest), macOS (macos-latest, Bash 3.2), and a Docker Bash 3.2.57 lane. The native and Docker lanes are complementary and catch different classes of portability issues.
These rules are CI-enforced for contributions to b3bp itself:
- Format with shfmt (
shfmt -i 2 -bn): two-space indent, binary operators may start a line. Runyarn fix:shfmtto auto-format. - Do not introduce trailing whitespace on lines.
- Use a single equal sign when checking
if [[ "${NAME}" = "Kevin" ]]. - Use the bash test operator (
[[ ... ]]) rather than[ortest. - Use braces around variable expansions:
${VAR}. - Keep ShellCheck clean at
warningseverity or above.
Before running a release command (yarn release:patch, yarn release:minor, yarn release:major):
- Ensure you are on
mainwith a clean working tree. - Ensure CI checks for
HEADonmainare green. - Update
CHANGELOG.md## mainsection with completed checklist entries (- [x]) and no remaining open checklist items (- [ ]).
Automated gate:
yarn release:readyThe release script runs this gate automatically before tagging/publishing.