From 55073c7c2358312c2def726d0ee16e4d90144fb8 Mon Sep 17 00:00:00 2001 From: Simon van Lierde Date: Sun, 18 Oct 2026 23:16:38 +0000 Subject: [PATCH] docs(contributing): list generated files, live-host recipes and the dockerignore rule --- .github/CONTRIBUTING.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 87ea961cb..50deb61f3 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -110,6 +110,9 @@ Three layers, each check in one of them: hooks fix and guard staged files, `just Scorecard, dependency review). Do not add a verification to the hooks; add it to the recipe CI already runs. +Every new Dockerfile needs a sibling `.dockerignore` and an entry in the `docker-lint` specs +in the root `justfile`. + Keep new settings in the smallest surface that needs them. If a change adds or renames env vars, update the examples, validation rules, and affected docs in the same PR. @@ -136,6 +139,8 @@ ladder, cheapest first: | `just ci` | the everyday local gate: `pre-commit` hooks, `check`, `test-ci`, `policy-check` | | `just ci-full` | everything GitHub Actions runs: `ci` plus `audit`, `cloudflare-check`, `docker-smoke`, `test-e2e` | +`just stack`, `backup`, `restore`, and `deploy` change live hosts. Do not run them to test a change. + Pull requests also run `cloudflare-check`, the www E2E suite, and `docker-smoke`, so a green `just ci` can still leave a red PR check. `just ci-full` covers them; it takes tens of minutes and needs Docker. Only CodeQL, Trivy, Scorecard, and dependency review stay GitHub-only: they scan built @@ -207,6 +212,22 @@ just test-ci After backend API changes, run `just app/codegen` to regenerate the app's TypeScript types. +### Generated Files + +Do not hand-edit generated files. Change the source and regenerate. `just check` fails on a stale +copy. + +| Output | Regenerate with | +| ------ | --------------- | +| `app/src/types/openapi.json` | `just backend/openapi` | +| `app/src/types/api.generated.ts` | `just app/codegen` | +| `docs/src/components/datamodel/*.generated.mdx` | `just backend/datamodel` | +| `backend/app/templates/emails/build/` (edit the MJML in `src/`) | `just backend/compile-email` | +| brand outputs: `*.generated.*` under `app/src/theme/`, `www/src/styles/`, `docs/src/styles/`, and `www/src/copy/research.generated.ts` | `just assets-sync` | + +`app/src/components/base/ui/` is vendored react-native-reusables output: regenerate it with the RNR +CLI, do not refactor it by hand. + ### Schema Changes Drop or rename a column one release after the code stops reading it, never in the same release.