Contributing¶
Sharing feedback¶
This project is still quite new and therefore having your feedback will really help to prioritize relevant feature developments .
The easiest way to share feedback and discuss about the project is to join the Gitter chatroom.
If you want to contribute (thanks a lot ! ), you can open an issue on Github.
Before creating a non obvious (typo, documentation fix) Pull Request, please make sure to open an issue.
Developing locally¶
With the VSCode's devcontainer feature¶
This feature will make the tools/environment installation very simple as you will develop in a container that has already been configured to run this project.
Here are the steps:
- Clone the repository and open it with Visual Studio Code.
- Make sure that the Remote -
Containers
(
ms-vscode-remote.remote-containers
) extension is installed. - Run the
Remote-Container: Reopen in Container
command (pressCtrl
+Shift
+P
and then type the command). - After the setup script completes, the environment is ready. You can start the local development .
You can go to the development tasks section to see the
available task
commands.
MongoDB container
In this containerized development environment, a MongoDB instance should already be
running as a part of the development docker-compose.yml
file internally used by
VSCode.
Regular environment setup¶
Installing the tools¶
- Git LFS: used to store documentation assets in the repository
- Docker: used to run a local MongoDB instance
- Docker Compose (Optional): used to run a local MongoDB cluster (replica set or shards)
- Task: task manager
Installing python based development tools
In order to install the devtools written in python, it's recommended to use pipx.
python3 -m pip install --user pipx
python3 -m pipx ensurepath
-
flit: packaging system and dependency manager
pipx install flit
-
tox: multi-environment test runner
pipx install tox
-
pre-commit: pre commit hook manager
pipx install pre-commit
Python versions
If you want to test the project with multiple python versions, you'll need to install them manually.
You can use pyenv to install them easily.
# Install the versions
pyenv install "3.7.9"
pyenv install "3.8.9"
pyenv install "3.9.0"
# Make the versions available locally in the project
pyenv local 3.8.6 3.7.9 3.9.0
Configuring the local environment¶
task setup
Running development tasks¶
The following tasks are available for the project:
-
task setup
: Configure the development environment. -
task lint
: Run the linting checks. -
task format
: Format the code (and imports). -
mongodb:standalone-docker
: Start a standalone MongoDB instance using a docker container -
mongodb:standalone-docker:down
: Stop the standalone instance -
mongodb:replica-compose
: Start a replica set MongoDB cluster using docker-compose -
mongodb:replica-compose:down
: Stop the replica set cluster -
mongodb:sharded-compose
: Start a sharded MongoDB cluster using docker-compose -
mongodb:sharded-compose:down
: Stop the sharded MongoDB cluster -
task test
: Run the tests with the current version. -
task full-test
: Run the tests against all supported versions. -
task coverage
: Get the test coverage (xml and html) with the current version. -
task docs
: Start the local documentation server.