-
Notifications
You must be signed in to change notification settings - Fork 0
how to contribute
Douwe de Vries edited this page Jul 1, 2026
·
2 revisions
This section orients contributors to the CSV Align repository. Start here, then use development workflow, testing, debugging, tooling, and patterns and conventions for the focused checklists.
CSV Align has one shared Rust backend and two runtime shells:
- The local web app starts from
/Users/vriesd/projects/csv-align/src/main.rs, serves/Users/vriesd/projects/csv-align/frontend/dist, and exposes Axum/api/*routes. - The desktop app starts from
/Users/vriesd/projects/csv-align/src-tauri/src/main.rsand registers Tauri commands. - The React app starts from
/Users/vriesd/projects/csv-align/frontend/src/main.tsxand calls/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, which switches between HTTP and Tauri transports. - Shared business behavior belongs in
/Users/vriesd/projects/csv-align/src/backend/workflow.rs,/Users/vriesd/projects/csv-align/src/comparison/, and/Users/vriesd/projects/csv-align/src/data/.
Most changes should preserve browser and desktop parity. If a frontend operation calls invoke(...), the matching command must exist in /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs and be registered in /Users/vriesd/projects/csv-align/src-tauri/src/main.rs.
A change is done when:
- The implementation follows the existing module boundaries in patterns and conventions.
- Browser and desktop transports still expose the same user-visible workflow where applicable.
- New or changed behavior has regression coverage in the right test layer.
- Release metadata is untouched unless the change is a real release prep change.
- Validation has passed locally with the commands listed in testing.
- The commit message follows the Conventional Commit types documented in
/Users/vriesd/projects/csv-align/AGENTS.md.
For code changes, the normal validation set is:
cargo fmt --check
cargo test
cargo clippy -- -D warnings
(cd /Users/vriesd/projects/csv-align/src-tauri && cargo test && cargo fmt --check && cargo clippy -- -D warnings)
(cd /Users/vriesd/projects/csv-align/frontend && npm test && npm run lint && npm run build)Documentation-only changes do not require a release. Real releases must follow /Users/vriesd/projects/csv-align/docs/releasing.md.
- Check route and command parity before merging transport changes.
- Keep frontend domain logic out of JSX when a shared helper already exists under
/Users/vriesd/projects/csv-align/frontend/src/features/or/Users/vriesd/projects/csv-align/frontend/src/hooks/. - Keep public Rust workflow coverage in
/Users/vriesd/projects/csv-align/tests/. - Keep Tauri wrapper coverage in
/Users/vriesd/projects/csv-align/src-tauri/src/*tests*.rs. - Keep frontend tests colocated under
/Users/vriesd/projects/csv-align/frontend/src/. - Do not add a maintainer page unless ownership data is introduced later. No CODEOWNERS file was found during the wiki scan.
| File | Purpose |
|---|---|
/Users/vriesd/projects/csv-align/AGENTS.md |
Repository-specific contributor, validation, and release guidance. |
/Users/vriesd/projects/csv-align/README.md |
User-facing setup, run, and project structure overview. |
/Users/vriesd/projects/csv-align/src/backend/workflow.rs |
Shared session and comparison workflow orchestration. |
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts |
Runtime transport switch between browser API and Tauri commands. |
/Users/vriesd/projects/csv-align/src-tauri/src/main.rs |
Desktop entry point and Tauri command registration. |
/Users/vriesd/projects/csv-align/docs/releasing.md |
Maintainer release process and signing requirements. |