# Development Setup for Pull Requests

To test your changes before submitting a pull request:

**1. Prepare your Environment with `uv`**

Ensure you have the development tools (like `ruff`) installed and your environment synced:

```bash
uv sync --group dev
```

Install the pre-commit hook that ensures linting, formatting and version upgrades through pre-commit.py

```bash
uv run pre-commit install
```

**2. Run Quasarr**

```bash
uv run Quasarr.py
```

**3. Start the required services using the `dev-services-compose.yml` file**

```bash
CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml up
```

Replace `/path/to/config` with your desired configuration location.
The `CONFIG_VOLUMES` environment variable is **mandatory**.

By default, only JDownloader and Flaresolverr are enabled. See next step how to emulate supported *arr services.

**4. Validate your changes**

Use the `cli_tester.py` script to simulate Radarr, Sonarr, and LazyLibrarian interactions.

```bash
uv run cli_tester.py
```

This tool allows you to test searches, feeds, and downloads without needing the full stack of services running.

---

### Code Quality & Maintenance

The CI pipeline enforces strict code styling and import optimization. Please run this commands before pushing your
changes. Alternatively, set up the pre-commit hook as described above.

**Format code AND upgrade dependencies manually:**

```bash
uv run pre-commit.py --upgrade
```
