How to contribute¶
- Code: CONTRIBUTING.md covers the development setup, the tests each change needs, commit and pull request conventions, and the design boundaries a change must respect. Read the architecture guide first.
- Add-on data: add or fix an entry in the add-on registry following registry/CONTRIBUTING.md. Every claim needs a public citation. The add-on request template is the place to ask for one without writing it.
- A wrong finding (a false blocker, a missed removal): open a bug with
the
upgradescope versionoutput and the finding'skey. - Security issues: privately, as described in SECURITY.md.
The docs¶
This site is built from docs/ with MkDocs Material (mkdocs.yml). The
pinned, hash-locked toolchain is in hack/docs/requirements.txt:
make docs # build into bin/site with --strict, as CI does
make docs-serve # live preview on http://127.0.0.1:8000
Both create a virtualenv under bin/ on first use (Python 3.10 or newer).
--strict fails on a broken link or anchor, and on a page missing from the
nav.
Some pages are generated; edit their source, then regenerate:
| Page | Source | Command |
|---|---|---|
reference/cli/* |
the cobra commands in internal/cli |
make docs-gen |
reference/crd.md |
internal/crd/manifest.yaml |
make docs-gen |
reference/api.md |
api/openapi.yaml |
make docs-gen |
reference/helm-values.md, deploy/chart/README.md |
the # -- comments in deploy/chart/values.yaml, hack/docs/*.gotmpl |
make helm-docs |
make docs-check fails when any of them is stale; CI's docs workflow runs
it on every pull request, and go test ./... covers the Go-generated ones.
Other tests keep the hand-written pages honest: the OpenAPI document against
the server's routes and responses, the metrics reference against the
registered metrics, the webhook and JSON report schemas against real output,
the configuration reference against the loader, and the README's numbers
against the knowledge base. Every public claim is in the
claims ledger, with its proof.