Contributing ============ We love your input! We want to make contributing to SynCCFD as easy and transparent as possible, whether it's: - Reporting a bug - Discussing the current state of the code - Submitting a fix - Proposing new features - Becoming a maintainer Development Process ----------------- We use GitHub to host code, to track issues and feature requests, as well as accept pull requests. 1. Fork the repo and create your branch from ``main``. 2. If you've added code that should be tested, add tests. 3. If you've changed APIs, update the documentation. 4. Ensure the test suite passes. 5. Make sure your code lints. 6. Issue that pull request! Development Environment --------------------- 1. Clone your fork and install development dependencies:: git clone https://github.com/your-username/synccfd.git cd synccfd pip install -e .[dev] 2. Install pre-commit hooks:: pre-commit install 3. Run tests to verify your setup:: pytest Code Style --------- We use several tools to ensure consistent code style: - ``black`` for code formatting - ``flake8`` for code style and quality checks - ``mypy`` for static type checking - ``isort`` for import sorting You can run all style checks with:: black . flake8 . mypy . isort . Testing ------- We use ``pytest`` for testing. To run tests:: pytest For coverage report:: pytest --cov=synccfd --cov-report=html Documentation ------------ To build documentation locally:: cd docs make html The built documentation will be in ``docs/_build/html``.