Contributing ============ We welcome contributions via GitLab merge requests. Workflow -------- 1. Fork the repository and create a feature branch from ``main``:: git checkout -b feature/my-feature 2. Install the development environment:: pip install -e ".[dev,docs]" 3. Make your changes, add tests, and verify locally:: pytest tests/ --cov=src/gasfir black src/ tests/ isort src/ tests/ flake8 src/ tests/ mypy src/ 4. Open a merge request against ``main``. Code Style ---------- * **Formatter**: `black `_ (line length 88) * **Import order**: `isort `_ (Black-compatible profile) * **Linter**: flake8 * **Type checking**: mypy (strict mode) * **Docstrings**: Google style, processed by Sphinx napoleon extension Commit Messages --------------- Follow the `Conventional Commits `_ specification: * ``feat:`` — new feature * ``fix:`` — bug fix * ``docs:`` — documentation only * ``refactor:`` — code restructuring without behaviour change * ``test:`` — adding or updating tests * ``chore:`` — maintenance (deps, CI, build scripts)