Please ensure you have a recent enough version of setuptools:
pip install --upgrade "setuptools>=46.4.0"Install the dependencies with:
pip install -e ".[dev]"This installs the normal dependencies of the package plus the dependencies for tests.
Documentation is built with pdoc with the command:
pdoc --docformat=google -o doc/ ./src/dakara_playerTests are run by Pytest with:
pytestTests are split between unit tests, which are ligthweight and do not require VLC or mpv to be installed, and integration tests, which are heavier:
pytest tests/unit
pytest tests/integrationBoth Pytest style and standard Unittest style tests can be used. Coverage is checked automatically with Pytest-cov.
Imports are sorted by isort with the command:
isort .You need to call isort before committing changes.
The code follows the PEP8 style guide (88 characters per line). Quality of code is checked with Ruff:
ruff check .Style is enforced using Black:
black .You need to call Black before committing changes. You may want to configure your editor to call it automatically. Additionnal checking can be manually performed with Pylint.
Pre-commit hooks allow to perform checks before commiting changes. They are managed with Pre-commit, use the following command to install them:
pre-commit installNote that pre-commit hook does not run integration tests.
This process describes how to release a new version:
- Move to the
developbranch and pull.If there is any cosmetic modification to perform on the changelog file, do it now.git checkout develop git pull
- Call the bump version script:
with
./bump_version.sh 0.0.0 0.1.0
0.0.0the release version and0.1.0the next version (without 'v', without '-dev'). - Push the version commit and its tag:
git push git push --tags
- Move to the
masterbranch and merge the created tag into it. Then push:git checkout master git pull git merge 0.0.0 git push
- Call the script to create the package:
The distribution and source distribution are created and published on PyPI. Just add your username and password when prompted.
./create_archive.sh
- On GitHub, draft a new release, set the version number with the created tag ("Existing tag" should read). Set the release title with "Version 0.0.0" (with number, you get it?). Copy-paste corresponding section of the changelog file in the release description. You can now publish the release.