Skip to main content

Contributing

CocoIndex is an open source project. We are respectful, open and friendly. This guide explains how to get involved and contribute to CocoIndex.

Issues:

We use GitHub Issues to track bugs and feature requests.

Good First Issues

We tag issues with the "good first issue" label for beginner contributors.

How to Contribute

  • If you decide to work on an issue, unless the PR can be sent immediately (e.g. just a few lines of code), we recommend you to leave a comment on the issue like I'm working on it or Can I work on this issue? to avoid duplicating work.
  • For larger features, we recommend you to discuss with us first in our Discord server to coordinate the design and work.
  • Our Discord server are constantly open. If you are unsure about anything, it is a good place to discuss! We'd love to collaborate and will always be friendly.

Start hacking! Setting Up Development Environment

Following the steps below to get cocoindex build on latest codebase locally - if you are making changes to cocoindex funcionality and want to test it out.

  • 🦀 Install Rust

    If you don't have Rust installed, run

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    Already have Rust? Make sure it's up to date

    rustup update
  • (Recommended) Setup Python virtual environment:

    python3 -m venv .venv

    Activate the virtual environment, before any installings / buildings / runnings:

    . .venv/bin/activate
  • Install maturin:

    pip install maturin
  • Build the library. Run at the root of cocoindex directory:

    maturin develop
  • (Optional) Before running a specific example, set extra environment variables, for exposing extra traces, allowing dev UI, etc.

    . ./.env.lib_debug

Submit Your Code

CocoIndex is committed to the highest standards of code quality. Please ensure your code is thoroughly tested before submitting a PR.

To submit your code:

  1. Fork the CocoIndex repository
  2. Create a new branch on your fork
  3. Make your changes
  4. Open a Pull Request (PR) when your work is ready for review

In your PR description, please include:

  • Description of the changes
  • Motivation and context
  • Note if it's a breaking change
  • Reference any related GitHub issues

A core team member will review your PR within one business day and provide feedback on any required changes. Once approved and all tests pass, the reviewer will squash and merge your PR into the main branch.

Your contribution will then be part of CocoIndex! We'll highlight your contribution in our release notes 🌴.