Contributing¶
Installation¶
Phaser is built with python 3.
To set up project for contributing:
% python -m venv venv
% source venv/bin/activate
% pip install -r dev_requirements.txt
% pip install -e . # installs the phaser library (in edit mode!) so pytest can import it
Note that ‘requirements.txt’ is empty because phaser has no dependencies beyond the python language and its default libraries. A project that uses pandas can use pandas DataFrames with phaser, but phaser itself does not require pandas. Pandas is required to test the features that use pandas, however, which is why pandas is listed in dev_requirements.txt.
Code of conduct¶
Please follow the django code of conduct.
Coding guidelines¶
How to test¶
% pytest
How to document¶
We use Sphinx to create docs in the docs folder in MyST Markdown format. When built, the docs also fold in docstrings from within the library’s python modules.
% pip install -r docs/requirements.txt
% cd docs
% make html
% open _build/html/index.html
First time: I had to do brew install sphinx-doc to run make html
How to build/distribute¶
Edit pyproject.toml to update version number if appropriate, as well as the version in init.py.
% pip install twine
% pip install build
% python3 -m build
% python3 -m twine upload --repository testpypi dist/*
If that looks good, remove the testpypi repository and upload to pypi itself.