Thanks for contributing to git-dash. Keep changes small, focused, and aligned to the spec.
src/for Rust application code.tests/for integration tests.assets/for static resources (icons, fixtures).
Suggested module splits: discovery, status parsing, UI rendering, and background workers.
just runorcargo runto start the TUI locally.just buildorcargo build --releasefor a release build.just testorcargo testto run tests.
- Use
rustfmtdefaults. snake_casefor functions/modules,UpperCamelCasefor types,SCREAMING_SNAKE_CASEfor constants.- Avoid shared mutable state across threads; use message passing for background Git operations.
- Use Rust’s built-in test framework (
#[test]). - Name integration tests by behavior, e.g.,
tests/repo_discovery.rs.
- Use short, imperative commit summaries (e.g., “Add repo scanner”).
- PRs should include a concise description, linked issues when relevant, and screenshots or terminal captures for UI changes.
Follow the steps in RELEASE.md when preparing a release.
The tool is local-first. Do not add telemetry or network access beyond invoking Git. If configuration is introduced later, document safe defaults and avoid handling credentials directly.