Contributing¶
Code Ownership¶
The repository defines Brian-Funk as the default code owner for all files through .github/CODEOWNERS.
For code owner approval to be enforced, configure main branch protection in GitHub:
- Require a pull request before merging.
- Require approvals.
- Enable
Require review from Code Owners. - Require status checks to pass.
- Require
desktop-ci-result. - Disable direct pushes to
mainfor normal development.
GitHub requires listed code owners to have write access to the repository. If the repository later moves to an organisation, replace or supplement the user owner with an organisation team.
Development Flow¶
- Create a feature branch.
- Keep changes focused.
- Run app-native tests for the touched subsystem.
- Update manual docs when behaviour or workflows change.
- Update docstrings or exported TypeScript comments when public APIs change.
- Open a pull request into
main. - Wait for CI and code owner review before merge.
Tests¶
Use the desktop CI workflow as the minimum acceptance bar. Locally, run the focused command for the area you touched:
- Web:
npm --prefix web run build - Backend:
cd backend && venv/Scripts/python -m pytest - Compute:
cd compute && python -m pytest - Desktop:
npm --prefix desktop run verify:frontend - External Testing repo:
npm run test:desktopandpython -m pytest desktop_backend -v
Documentation Updates¶
Manual docs live in /docs. Generated docs are rebuilt from source:
python -m pip install -r docs/requirements.txt
npm --prefix web ci
npm --prefix web run docs:typedoc
mkdocs build --strict
CI sets DISABLE_MKDOCS_2_WARNING=true before strict MkDocs builds. Set the same variable locally if the upstream MkDocs ecosystem warning appears.
The TypeScript docs use web/src/docs-api.ts as the curated public entrypoint. Add exports there only when they represent reusable app APIs, components, hooks, utilities, or types.
Python docs are generated from backend/app and compute/src during the MkDocs build.