Contributing guidelines

Hi! I'm so glad that you want to help with the Datastorm project, I really do!

All contributions and work that comes in good faith are welcome. Please, check Datastorm's Code of Conduct before contributing.

Questions, feature requests, bugs...

...should be reported to the project's issue tracker

Ways to contribute

You can contribute to Datastorm by:

  • Looking and comment at opened issues. Feedback is always welcome!
  • Help with code review: (PRs)
  • Fixing or improving the docs.
  • Reporting bugs
  • Giving the project a star if you feel like doing so :)

Contribute to code

First, fork Datastorm on Github.

Setting up your environment

This project uses the Poetry dependency management tool, so you must have it installed.

Then, run make development. This will: * Install datastorm and its dependencies * Install pre-commit hooks

To be able to run the tests, you should either install Docker or the Datastore emulator.

Docker is preferred, as the Makefile has targets to run the tests under a docker container, but feel free to use the emulator instead.

Git workflow

Repository branches

This repository has two main branches: * master: Latest stable version released. * develop: Latest version released, including pre-releases.

Note: At the moment, no stable version has been released, so master and develop are being used as "latest version released" and "next version" respectively.

Branch naming

Please, create a separate branch to do your work, no important how little it'd be. Use the following naming:

  • Features: feature/DS-<issue id>-<issue keywords>. Example: feature/DS-11-pytests
  • Bugs: bug/DS-<issue id>-<issue keyworkds>. Example: bug/DS-14-list-dict-serialization

Please branch from develop and target your PR to develop as well.

Commits

Atomic commits are preferred over big ones, and please, write meaningful commit messages. Commit messages should start with DS-<issue id>:.

PR acceptance criteria

  • Unit tests to cover your new code. Ideally, test for all possible branches.
  • Integration tests
  • E2E tests if deem necessary
  • Covers the issue
  • Passes code review

Running tests

You can run all tests with make docker-tests to spin up a docker-based datastore emulator, or do make tests to use a local datastore emulator.

Documentation

Docs are located in the docs directory and are written in markdown using mkdocs.

You can build and take a look at the docs with make docs.

Docs are hosted on Read the docs and are built and pushed automatically.