Contributing Guide
Happy baking!
Set up development environment
git clone https://github.com/font-bakers/glaze.git
cd glaze/
make develop
source venv/bin/activate
# Do your work...
deactivate
Before committing
make check
This will both lint the glaze/ directory (with black and pylint), and run
test scripts. You may lint and test separately with make lint and make test,
respectively.
Make sure that all checks pass before committing: you should get several blue success messages as each check passes.
Note that glaze uses a pre-commit git
hook to
format staged Python files in-place using black.
Packaging and releasing glaze
First, ensure that the version number has been bumped appropriately:glaze
adopts the Semantic Versioning
2.0.0 specification. This can be
done either by running
bumpversion --current-version CURRENT_VERSION PART glaze/__init__.py
or by directly editing the __version__ variable in glaze/__init__.py (the
latter method is simpler and recommended for such a simple project as glaze).
For more information, see the bumpversion
documentation.
Then, run make package. It will package glaze and validate the resulting
source archive and
built
distribution.
Finally, upload the source archive and build distribution to PyPI. You will be asked for a username and password for PyPI.
twine upload dist/*
For more information, refer to the Python packaging documentation.
Miscellaneous development details
- 
glazeadopts the Semantic Versioning 2.0.0 specification. - 
glazetargets Python 3.5+ (specifically, 3.5.2+) compatibility. - 
glazeusesblackandpylintto format and lint code, respectively. - 
However,
blackrequires Python 3.6+ to run. Thus, we test in Python 3.5 but lint in Python 3.6. See our Travis configuration for more details. - 
glazeis unit tested throughpytest, and integration tested through thetest_cli.shscript. - 
The
glazedocumentation is generated usingmkdocs. See themkdocs.ymlconfiguration for more details.