# Contributing to imajViewer Thanks for taking the time to contribute! 🎉 ## Development setup - [Flutter SDK](https://docs.flutter.dev/get-started/install) (stable channel) - Linux: GTK dev libraries (`libgtk-3-dev`, `ninja-build`, `clang`, `cmake`) - Windows: Visual Studio 2022 Build Tools with "Desktop development with C++" ```bash flutter pub get flutter build linux # or: flutter build windows --release ``` ## Code style - Follow `flutter_lints` (see `analysis_options.yaml`) - Keep changes minimal and focused — no drive-by refactors - Use existing patterns in `lib/` (services, widgets, screens) ## Tests Run the test suite before opening a PR: ```bash flutter test ``` ## Commit conventions We use conventional commit prefixes: - `feat:` — new feature - `fix:` — bug fix - `perf:` — performance improvement - `build:` — build/packaging/CI changes - `docs:` — documentation only ## Pull request process 1. Fork the repository 2. Create a branch: `git checkout -b fix/describe-the-fix` 3. Make your changes, run `flutter test` 4. Commit with a conventional message 5. Open a PR against `main` and describe what you changed and why ## Reporting bugs Open an issue using the bug report template. Include: - imajViewer version (from `pubspec.yaml` or the release name) - OS and desktop environment - Steps to reproduce - Expected vs. actual behavior