Development of kPAL happens on GitHub: https://github.com/LUMC/kPAL
Contributions to kPAL are very welcome! They can be feature requests, bug reports, bug fixes, unit tests, documentation updates, or anything els you may come up with.
Start by installing all kPAL development dependencies:
$ pip install -r requirements.txt
This installs dependencies for building the documentation and running unit tests.
After that you’ll want to install kPAL in development mode:
$ pip install -e .
Instead of copying the source code to the installation directory, this only links from the installation directory to the source code such that any changes you make to it are directly available in the environment.
The latest documentation with user guide and API reference is hosted at Read The Docs.
You can also compile the documentation directly from the source code by
make html from the
doc/ subdirectory. This requires Sphinx
to be installed.
To run the unit tests with pytest, just run:
Use tox to run the unit tests in all supported Python environments automatically:
You can use the flake8 tool to assist in style and error checking.
A normal version number takes the form X.Y.Z where X is the major version, Y is the minor version, and Z is the patch version. Development versions take the form X.Y.Z.dev where X.Y.Z is the closest future release version.
Note that this scheme is not 100% compatible with SemVer which would require X.Y.Z-dev instead of X.Y.Z.dev but compatibility with setuptools is more important for us. Other than that, version semantics are as described by SemVer.
Releases are published at PyPI and available from the git repository as tags.
Releasing a new version is done as follows:
Make sure the section in the
CHANGES.rstfile for this release is complete and there are no uncommitted changes.
Commits since release X.Y.Z can be listed with
git log vX.Y.Z..for quick inspection.
CHANGES.rstfile to state the current date for this release and edit
kpal/__init__.pyby updating __date__ and removing the
devvalue from __version_info__.
Commit and tag the version update:
git commit -am 'Bump version to X.Y.Z' git tag -a 'vX.Y.Z' git push --tags
Upload the package to PyPI:
python setup.py sdist upload
Add a new entry at the top of the
CHANGES.rstfile like this:
Version X.Y.Z+1 --------------- Release date to be decided.
Increment the patch version and add a
devvalue to __version_info__ in
kpal/__init__.pyand commit these changes:
git commit -am 'Open development for X.Y.Z+1'