Guide for Contributing to micromind

Step 0 - Preparing the Environment

To ensure there are no conflicts between different library versions, and that the CI pipeline works the same both locally and online, it’s recommended to create a dedicated environment for micromind. After installing Anaconda, you can achieve this with:

conda create -n micromind python=3.8

Optionally, you can replace “micromind” with a name that you prefer for the environment.

Step 1 - Creating a Fork from the Original Repository

Fork (and star! ⭐) the micromind repository to work on the project without any limitations related to accesses to the official repository.

Step 2 - Installation

After you have cloned the forked repository locally, navigate to the root folder and install micromind in editable mode, using the following command:

pip install -e .[conversion]

Step 3 - Creating a New Branch

To contribute with new features in micromind, create a new branch and give it a significant name. This might pertain to a new feature, patch, or bug fix that you’re working on.

git checkout -b your-branch-name

Step 4 - Implementing Changes

On the new branch, unleash your creativity and commit all the changes modifications as you normally would.

Step 5 - Unit tests and linters check


Before being merged, the code needs to pass unit tests and linters check. To check if your modified codebase does so, you can install pre-commit hooks:

pip install pre-commit

To configure pre-commit with the same settings decided for micromind, you should run

pre-commit install

from inside the micromind root folder. pre-commit will check linters every time you make a commit to the repo.

Unit tests

To run unit tests, you should run

pytest tests/

Moreover, you should write additional tests if your contribution requires so.

Step 6 - Making a Pull Request

Once your changes are complete, please contribute to the toolkit by creating a pull request. Here are some guidelines for a good pull request, adapted from GitHub’s blog post:

  • Reason for the Pull Request: clearly explain why you’re making this pull request and what value it brings to the project;

  • Changes Made: Describe the new behaviors, error fixes, or features that have been added.

By following these steps, you’ll be well-equipped to make meaningful contributions to the project. Happy coding!