Contributing
We welcome pull requests from anyone!
Formatting
Code formatting, import sorting, and spell checks are done automatically with black, isort and codespell.
You can automatically enforce the formatting guidelines with
pip install nox
nox -s lint -- write
nox -s spell -- write
If you use pixi, you can run
pixi shell
pixi run lint-write
pixi run spell-write
Tests
Please ensure your contribution passes the tests in the CI (.github/worklows/ci.yml).
To run the unit tests
conda activate bird
pip install pytest
BIRD_HOME=`python -c "import bird; print(bird.BIRD_DIR)"`
cd ${BIRD_HOME}/../
pytest .
If you use pixi
pixi shell
BIRD_HOME=`python -c "import bird; print(bird.BIRD_DIR)"`
cd ${BIRD_HOME}/../
pixi run test
To run the regression tests
source <OpenFOAM-9 installation directory>/etc/<your-shell>rc
conda activate bird
pip install pytest
BIRD_HOME=`python -c "import bird; print(bird.BIRD_DIR)"`
cd ${BIRD_HOME}/../tutorial_cases
bash run_all.sh
Demonstrating and documenting your contribution
We prefer the use of docstrings and type hinting. A good example to follow are functions in bird/utilities/ofio.py.
If you add a new capability, please make sure to add relevant unit tests in the tests/ folder. A good example to follow are tests tests/io.