contributing¶
the repo is pfeifferj/specdoc, AGPL-3.0,
default branch master. start with local development: the whole
stack runs on one machine.
where things live¶
| what | where |
|---|---|
| editor build inputs | editor/UPSTREAM, editor/critic.bundle |
| editor rebrand overlay | editor/overlay.sh, editor/branding/ |
| editor source | the critic branch inside the bundle, not this tree |
| spec board | spec-board/server.js, tests in spec-board/test.js |
| docs (this site) | docs/, mkdocs.yml |
| manifests for the reference deployment | specdoc-infra |
what CI checks on a pull request¶
node spec-board/test.js- the feedback provider, model/UI and service suites, plus persistence tests against an isolated postgres schema
- the editor build inputs agree: the fork tree is reconstructed from
editor/critic.bundleand the base commit is checked against the tag ineditor/UPSTREAM editor/overlay.shstill finds every string it rewrites, run against a real checkout of the fork. upstream moving a template is a build failure here rather than a silently unbranded image later- the board's copied critic parser matches the exported editor source
- editor critic regression tests, lint, the full mocha suite and webpack build under node 20 with an immutable yarn install
- shellcheck on the shell scripts
mkdocs build --strictwhen docs change
conventions¶
- conventional commits (
feat:,fix:,docs:,refactor:,test:,chore:), subject in the imperative, body explaining why - lowercase headings and prose in these docs
- comments explain why, never what
- changing anything that stores, sends or publishes user data means updating
the board's
/privacypage in the same commit