Guide for New Contributors¶
This is a guide for new contributors to the Lance project. Even if you have no previous experience with python, rust, and open source, you can still make an non-trivial impact by helping us improve documentation, examples, and more. For experienced developers, the issues you can work on run the gamut from warm-ups to serious challenges in python and rust.
If you have any questions, please join our Discord for real-time support. Your feedback is always welcome!
Getting Started¶
- Join our Discord and say hi
- Setup your development environment
- Pick an issue to work on. See https://github.com/lancedb/lance/contribute for good first issues.
- Have fun!
Development Environment¶
Currently Lance is implemented in Rust and comes with a Python wrapper. So you'll want to make sure you setup both.
- Install Rust: https://www.rust-lang.org/tools/install
- Install Python 3.9+: https://www.python.org/downloads/
- Install protoctol buffers: https://grpc.io/docs/protoc-installation/ (make sure you have version 3.20 or higher)
- Install commit hooks:
a. Install pre-commit: https://pre-commit.com/#install
b. Run
pre-commit install
in the root of the repo
Sample Workflow¶
- Fork the repo
- Pick Github issue
- Create a branch for the issue
- Make your changes
- Create a pull request from your fork to lancedb/lance
- Get feedback and iterate
- Merge!
- Go back to step 2
Example Notebooks¶
Example notebooks are under examples
.
These are standalone notebooks you should be able to download and run.
Benchmarks¶
Our Rust benchmarks are run multiple times a day and the history can be found here.
Separately, we have vector index benchmarks that test against the sift1m dataset, as well as benchmarks for tpch.
These live under benchmarks
.
Code of Conduct¶
We follow the Code of Conduct of Python Foundation and Rust Foundation.