Development#

If you’d like to develop kosu, this page should help you get started.

Installation#

You can install this package with pip. The dev option will install the packages you need for testing and building the documentation.

pip install kosu[dev]

Contributing#

If you’d like to contribute pull requests back to the main kosu project, please see CONTRIBUTING.md.

Testing#

You can run the tests (requires pytest and pytest-cov) with

python run_tests.py

Add tests by adding test files to the tests folder in the normal way.

Building the package#

This repo uses PEP 518-style packaging. Read more about this and about Python packaging in general.

Building the project requires build, so first:

python -m pip install build

Then to build kosu locally:

python -m build

This builds both .tar.gz and .whl files, either of which you can install with pip.

Building the docs#

You can build the docs with the following commands:

cd docs
make html

Don’t just run sphinx-build manually: there is other stuff happening in the Makefile.

There is a continuous integration script to update the docs on published releases.

Continuous integration#

This repo has GitHub ‘workflows’ or ‘actions’:

  • Push to main: Run all tests on all version of Python. This is the Build and test workflow.

  • Publish a new release: Build and upload to PyPI. This is the Publish to PyPI workflow. Publish using the GitHub interface, for example (read more).