Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Latest commit

 

History

History
125 lines (99 loc) · 5.44 KB

CONTRIBUTING.md

File metadata and controls

125 lines (99 loc) · 5.44 KB

Contributing

Thank you for your interest in contributing to Blue Brain Search!

Before you open an issue or start working on a pull request, please make sure to read the following guidelines.

  1. Creating Issues
    1. Search related issues
    2. Open new issue
  2. Creating Pull Requests
    1. Refer to an issue
    2. Add unit test
    3. Add type annotations
    4. Update dependencies
    5. Update documentation
    6. Ensure all CI tests pass
    7. Get reviews and approval

Creating Issues

This section contains the instructions to be followed to create issues on our issue tracker.

Search related issues

Before you submit an issue, please search our issue tracker to verify if any similar issue was raised in the past. Even if you cannot find a direct answer to your question, this can allow you to collect a list of related issues that you can link in your new issue.

Open new issue

Once you are done with that, feel free to open a new issue. To make sure that your issue can be promptly addressed, please use one of the available templates and try to fill every field in it.

  • 🐛 Bug Report — You encountered some error or unexpected behavior.
  • 🚀 Feature Request — You would like some feature to be added or improved.
  • 📚 Documentation — You found something wrong or missing in the docs.
  • ❓ Other Questions / Help — For any other question or help request.

Creating Pull Requests

If you wish to contribute to the code base, opening a pull request on GitHub is the right thing to do!

Please read the following paragraphs to make sure that your work can be considered for a potential integration in our source code.

Refer to an issue

In general, every pull request should refer to a specific issue. If you would like to provide your contribution on a untracked issue, please create first an issue as explained here so that we can discuss the value of the proposed contribution and its implementation.

Add unit tests

Concerning CI tests, we are running various checks on linting, unit tests, docs, and packaging. If you are adding or modifying a functionality in the code, you are also expected to provide a unit test demonstrating and checking the new behavior.

Add type annotations

We are gradually introducing type annotations to our code, and our CI performs type checking with mypy. If your PR introduces a new function or heavily modifies an existing function, you should also add type annotations for such function.

Update dependencies

If your PR introduces a dependency on a new python package, this should be added to both the setup.py and the requirements.txt files.

Update documentation

The whatsnew.rst file in our docs keeps tracks of the updates introduced in every new release, so you should update it if your PR adds or changes a feature, fixes a bug, etc.

Moreover, instructions and examples in the docs should be updated whenever deemed appropriate.

Ensure all CI tests pass

We use GitHub Actions to run our CI tests. Once you open a PR, the workflow that runs all CI tests is automatically triggered. This workflow is also triggered every time a new commit is pushed to that PR branch. If you want to push a commit without triggering the CI tests (e.g. if a feature is still work in progress and you want to save time), your commit message should include an appropriate label like [skip ci], [ci skip], [no ci] etc. (see here for the complete list).

All CI tests must pass before the pull request can be considered for review.

Get reviews and approval

Once you have satisfied all the previous points, feel free to open your pull request!

We will get back to you as soon as possible with comments and feedback in the format of pull request reviews. At least two positive reviews from the maintainers are required for the pull request to be merged into the master.