Skip to content

Contributing

Thanks for contributing! Here's some useful information when requesting features/bugfixes.

Setup

We believe in well linted code. That means we also advocate for linting tools. Amongst those, we include:

(See .pre-commit-config.yaml for versions.)

You may notice that these are not included in our pyproject.toml 😱. How's that, you ask? We use pre-commit to run these tools, which will create a separate environment for each tool (and avoid some dependency conflicts!). Though recommended, you don't need to use it, but we'll check that the code is compliant with these tools. We also package the code and set up environments using poetry. Putting it all together, we have

pip install poetry==1.1.14
git clone git@github.com:datarootsio/expiring-lru-cache.git
cd expiring-lru-cache
poetry install
poetry run pre-commit install

Versioning

We follow SemVer for package versions. You can check the version from expirining_lru_cache.__version__. This is set dyanamically via CICD and kept in sync with git tags.

Git tags

Tagging happens in CICD. See the CICD file for more information. The bumping of tags also happens automatically with codacy/git-version@2.2.0 for commits in the main branch. If any commit contains breaking:, we'll have a major version bump. Including feature: will incur a minor version bump. The absence of both breaking: and feature: yields a patch bump. Including both breaking: and feature: will yield a major version bump.

Documentation

Documentation is handled by mkdocs, and can be created with markdown files in the docs/ directory. Documentation is hosted in GitHub pages and is also deployed via CICD.