Contributing¶
Everyone is invited to contribute to this project. Feel free to create a pull request . If you find errors, omissions, inconsistencies, or other things that need improvement, please create an issue.
Development Installation¶
Instead of pip-installing the latest release from PyPI, you should get the newest development version from Github:
git clone https://github.com/audeering/audinterface/
cd audinterface
uv sync
This way, your installation always stays up-to-date, even if you pull new changes from the Github repository.
Coding Convention¶
We follow the PEP8 convention for Python code
and use ruff as a linter and code formatter.
In addition,
we check for common spelling errors with codespell.
Both tools and possible exceptions
are defined in pyproject.toml
.
The checks are executed in the CI using pre-commit. You can enable those checks locally by executing:
uvx pre-commit install
uvx pre-commit run --all-files
Afterwards ruff and codespell are executed every time you create a commit.
You can also install ruff and codespell and call it directly:
uvx ruff check --fix . # lint all Python files, and fix any fixable errors
uvx ruff format . # format code of all Python files
uvx codespell
It can be restricted to specific folders:
uvx ruff check audinterface/ tests/
uvx codespell audinterface/ tests/
Building the Documentation¶
If you make changes to the documentation, you can re-create the HTML pages using Sphinx:
uv run python -m sphinx docs/ build/html -b html
The generated files will be available
in the directory build/html/
.
It is also possible to automatically check if all links are still valid:
uv run python -m sphinx docs/ build/html -b linkcheck
Creating a New Release¶
New releases are made using the following steps:
Update
CHANGELOG.rst
Commit those changes as “Release X.Y.Z”
Create an (annotated) tag with
git tag -a X.Y.Z
Push the commit and the tag to Github