Developer overview

Contributing

Supriya accepts contributions on GitHub.

When fixing bugs, fork the repository and open a pull request against it.

When suggesting features, please open an issue or start a discussion on GitHub before opening a pull request. Just like with Python itself, not everything needs to be part of the base project. If the feature is deemed worth adding to the base project, proceed like opening a bug: fork the repo and open a pull request.

See the following sections for more detailed guidance on developing Supriya itself.

Editorial

I (Joséphine) am exceedingly disinterested in helping package Supriya for random Linux distributions. Please just install Supriya from PyPI. There’s no reason to package it up for Arch, etc. That just creates a graveyard of unmaintained ancient packages which - if anyone even notices them - can become a burden for me.

Tooling

Supriya provides a Makefile with targets for common local development tasks:

josephine@laptop:~/supriya$ make
make[2]: Entering directory '/home/runner/work/supriya/supriya'
clean                          Clean-out transitory files
docs-clean                     Build documentation from scratch
docs                           Build documentation
help                           This help
lint                           Run all linters
mypy-cov                       Type-check via mypy with coverage reported to ./mypycov/
mypy-strict                    Type-check via mypy strictly
mypy                           Type-check via mypy
pytest                         Unit test via pytest
reformat                       Reformat codebase
ruff-format-fix                Lint via ruff
ruff-format                    Lint via ruff
ruff-imports-fix               Format imports via ruff
ruff-imports                   Format imports via ruff
ruff-lint-fix                  Lint via ruff
ruff-lint                      Lint via ruff
make[2]: Leaving directory '/home/runner/work/supriya/supriya'