# 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
