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.