Skip to content

Contributing guidelines

Make sure to discuss any changes you would like to make in the issue board, before putting in any work.

Setup

Development install:

pip install -e '.[all]'

Unit testing:

pytest

We use pre-commit hooks to ensure code styling. Install with:

pre-commit install

Now if you install it (which you are encouraged to do), you are encouraged to do the following command before committing your work:

pre-commit run --all-files

This will allow you to quickly see if the work you made contains some adaptions that you still might need to make before a pull request is accepted.

Documentation

We use mkdocs with mkdocs-material theme. The docs are structured using the divio documentation system. To view the docs locally:

pip install mkdocs-material
mkdocs serve

Releases and versioning

We use semver for versioning. When we are ready for a release, the maintainer runs:

git tag -a v0.1 -m "skorecard v0.1" && git push origin v0.1

When we create a new github release a github action is triggered that:

  • a new version will be deployed to pypi
  • the docs will be re-built and deployed

Terminology

  • BucketMapping is a custom class that stores all the information needed for bucketing, including the map itself (either boundaries for binning, or a list of lists for categoricals)
  • FeaturesBucketMapping is simply a collection of BucketMappings, and is used to store all info for bucketing transformations for a dataset.