Development#

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

Installation#

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

python -m pip install "redflag[dev]"

Contributing#

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

Testing#

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

pytest

Most of the tests are doctest tests, which are contained in the docstrings of this package’s functions. There are further tests in the tests folder.

Building the package#

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

To build redflag 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 two 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).