mirror of
https://github.com/lancedb/lancedb.git
synced 2026-01-07 12:22:59 +00:00
docs: contributing guide (#1970)
* Adds basic contributing guides. * Simplifies Python development with a Makefile.
This commit is contained in:
78
python/CONTRIBUTING.md
Normal file
78
python/CONTRIBUTING.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Contributing to LanceDB Python
|
||||
|
||||
This document outlines the process for contributing to LanceDB Python.
|
||||
For general contribution guidelines, see [CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||
|
||||
## Project layout
|
||||
|
||||
The Python package is a wrapper around the Rust library, `lancedb`. We use
|
||||
[pyo3](https://pyo3.rs/) to create the bindings between Rust and Python.
|
||||
|
||||
* `src/`: Rust bindings source code
|
||||
* `python/lancedb`: Python package source code
|
||||
* `python/tests`: Unit tests
|
||||
|
||||
## Development environment
|
||||
|
||||
To set up your development environment, you will need to install the following:
|
||||
|
||||
1. Python 3.9 or later
|
||||
2. Cargo (Rust's package manager). Use [rustup](https://rustup.rs/) to install.
|
||||
3. [protoc](https://grpc.io/docs/protoc-installation/) (Protocol Buffers compiler)
|
||||
|
||||
Create a virtual environment to work in:
|
||||
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install maturin
|
||||
```
|
||||
|
||||
### Commit Hooks
|
||||
|
||||
It is **highly recommended** to install the pre-commit hooks to ensure that your
|
||||
code is formatted correctly and passes basic checks before committing:
|
||||
|
||||
```bash
|
||||
make develop # this will install pre-commit itself
|
||||
pre-commit install
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
Most common development commands can be run using the Makefile.
|
||||
|
||||
Build the package
|
||||
|
||||
```shell
|
||||
make develop
|
||||
```
|
||||
|
||||
Format:
|
||||
|
||||
```shell
|
||||
make format
|
||||
```
|
||||
|
||||
Run tests:
|
||||
|
||||
```shell
|
||||
make test
|
||||
make doctest
|
||||
```
|
||||
|
||||
To run a single test, you can use the `pytest` command directly. Provide the path
|
||||
to the test file, and optionally the test name after `::`.
|
||||
|
||||
```shell
|
||||
# Single file: test_table.py
|
||||
pytest -vv python/tests/test_table.py
|
||||
# Single test: test_basic in test_table.py
|
||||
pytest -vv python/tests/test_table.py::test_basic
|
||||
```
|
||||
|
||||
To see all commands, run:
|
||||
|
||||
```shell
|
||||
make help
|
||||
```
|
||||
Reference in New Issue
Block a user