Note: This page can be viewed at either next.catcolab.org/dev or github.com/ToposInstitute/CatColab/contribute
Grouping | Package | Language | Instructions | Documentation |
---|---|---|---|---|
Core | catlog |
Rust | — | /dev/rust/catlog |
Frontend | frontend |
TypeScript | — | /dev/frontend/ |
catlog-wasm |
Rust | — | /dev/rust/catlog_wasm | |
Backend | backend |
Rust | README | /dev/rust/backend |
automerge-doc-server |
TypeScript | README | — |
CatColab is written in a mix of Rust and TypeScript. To start any development, the first steps are
"Most" development will likely only require changes to the core (catlog
) and the frontend (frontend
) (and thus also the bindings in catlog-wasm
). For this, you can simply follow the instructions in the frontend
docs, replacing $MODE
by staging
, i.e. running
pnpm run build && pnpm run dev --mode staging
to view any changes made.
If your development touches the actual backend (e.g. file storage) then you will need to also follow the backend
README.
To maintain a clean and consistent codebase, we follow strict conventions on code formatting and style. To format and lint the frontend code, run these commands from the top-level directory:
pnpm --filter ./packages/frontend run format
pnpm --filter ./packages/frontend run lint
To format and lint the Rust code, run these commands from the top-level directory:
cargo fmt
cargo clippy
Try to remember to run these commands before making a PR. (If you forget, the CI will remind you.)