/ contributing

Contributing

Packages, module installers, docs and site content are all welcome. The full guide lives in CONTRIBUTING.md — this page covers the essentials.

The tool contract

Each tool is zero/tools/<category>/<tool>/install.sh, exporting exactly:

install_<tool>()      # install + verify the binary runs
update_<tool>()       # re-resolve latest and update
reinstall_<tool>()    # uninstall + install
uninstall_<tool>()    # remove only what was created
_<tool>_dependencies() # deps installed first

Version policy

Packages

Validation (all run in CI)

CheckScriptFails on
Packagesvalidate-packages.shmissing control fields, dupes, non-executable scripts
Brandingbranding-check.shold-brand references outside the allowlist
Version pinsversion-pin-check.shpins without a justified manifest entry
Stale URLsstale-url-check.shdead upstream URLs
Docs/sitedoc-links-check.shbroken links, stale counts, unwanted URLs, wrong install command

Local run: bash -n everything, then for s in scripts/validation/*.sh; do bash "$s"; done, then python3 scripts/site/generate-data.py.

Pull requests

  1. Branch from main: git checkout -b <scope>/<summary> main.
  2. One logical change per commit; message style type(scope): summary.
  3. Run the validators and fix failures in the same PR.
  4. Never weaken validation to get CI green. Don't commit build artifacts or key material.