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).