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)