-
Notifications
You must be signed in to change notification settings - Fork 0
how to contribute development workflow
Use this page for the normal branch, code, test, and PR cycle. For validation details, see testing. For project patterns, see patterns and conventions.
- Start from the current
mainbranch and inspect the working tree before changing files. - Create a focused branch for one fix or feature.
- Read the relevant Rust, Tauri, frontend, or script files before editing.
- Keep shared behavior in
/Users/vriesd/projects/csv-align/src/backend/,/Users/vriesd/projects/csv-align/src/comparison/, or/Users/vriesd/projects/csv-align/src/data/instead of duplicating it in a transport layer. - Update tests in the matching layer as you change behavior.
- Run the validators in testing.
- Open a PR with a concise description of the behavior change, validation run, and any release impact.
The web app served by cargo run requires a built frontend first. The Rust server does not build /Users/vriesd/projects/csv-align/frontend/dist for you.
(cd /Users/vriesd/projects/csv-align/frontend && npm install)
(cd /Users/vriesd/projects/csv-align/frontend && npm run build)
cargo run --manifest-path /Users/vriesd/projects/csv-align/Cargo.tomlThen open http://127.0.0.1:3001.
For frontend-only iteration, use Vite:
cd /Users/vriesd/projects/csv-align/frontend && npm run devThe production web server entry point is /Users/vriesd/projects/csv-align/src/main.rs, and the frontend dist lookup is implemented in /Users/vriesd/projects/csv-align/src/api/app.rs.
Install frontend dependencies first, then run Tauri:
(cd /Users/vriesd/projects/csv-align/frontend && npm install)
cargo install tauri-cli --locked --version "^2"
(cd /Users/vriesd/projects/csv-align && cargo tauri dev)/Users/vriesd/projects/csv-align/src-tauri/tauri.conf.json runs cd frontend && npm run dev before desktop dev startup. Desktop commands live in /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, and command registration lives in /Users/vriesd/projects/csv-align/src-tauri/src/main.rs.
When adding, renaming, or removing a frontend transport operation:
- Update HTTP route constants in
/Users/vriesd/projects/csv-align/src/api/app.rs. - Update frontend route builders in
/Users/vriesd/projects/csv-align/frontend/src/services/apiRoutes.ts. - Update Tauri command constants in
/Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts. - Add or update the command implementation in
/Users/vriesd/projects/csv-align/src-tauri/src/commands.rs. - Register the command in
/Users/vriesd/projects/csv-align/src-tauri/src/main.rs. - Extend parity tests in
/Users/vriesd/projects/csv-align/tests/transport_parity_integration.rsand/Users/vriesd/projects/csv-align/src-tauri/src/tests.rs.
Do not bump versions during normal feature work. Real release prep must update all version-bearing files, add a /Users/vriesd/projects/csv-align/CHANGELOG.md section with the exact ## vX.Y.Z - YYYY-MM-DD heading, and run /Users/vriesd/projects/csv-align/scripts/check_release_metadata.py.
Release work should follow /Users/vriesd/projects/csv-align/docs/releasing.md and deployment. The CI and release workflows reuse Linux artifacts, sign Debian and APT repository outputs, and publish macOS DMGs, so a release change can affect more than application code.
| File | Purpose |
|---|---|
/Users/vriesd/projects/csv-align/src/main.rs |
Local web server startup on 127.0.0.1:3001. |
/Users/vriesd/projects/csv-align/src/api/app.rs |
API routes, body limits, and frontend dist lookup. |
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts |
Runtime transport switch. |
/Users/vriesd/projects/csv-align/frontend/src/services/apiRoutes.ts |
Browser route templates. |
/Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts |
Tauri command names used by the frontend. |
/Users/vriesd/projects/csv-align/src-tauri/src/commands.rs |
Desktop command implementations. |
/Users/vriesd/projects/csv-align/src-tauri/src/main.rs |
Desktop command registration. |
/Users/vriesd/projects/csv-align/docs/releasing.md |
Release process and signing prerequisites. |