Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ changelog:
- title: Breaking Changes 🛠
labels:
- breaking-change
- title: Critical Fixes ‼️
labels:
- critical-fix
- title: New Features 🎉
labels:
- enhancement
Expand Down
31 changes: 31 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,37 @@ Our Rust benchmarks are run multiple times a day and the history can be found [h
Separately, we have vector index benchmarks that test against the sift1m dataset, as well as benchmarks for tpch.
These live under `benchmarks`.

## Reviewing issues and pull requests

Please consider the following when reviewing code contributions.

### Rust API design
* Design public APIs so they can be evolved easily in the future without breaking
changes. Often this means using builder patterns or options structs instead of
long argument lists.
* For public APIs, prefer inputs that use `Into<T>` or `AsRef<T>` traits to allow
more flexible inputs. For example, use `name: Into<String>` instead of `name: String`,
so we don't have to write `func("my_string".to_string())`.

### Testing
* Ensure all new public APIs have documentation and examples.
* Ensure that all bugfixes and features have corresponding tests. **We do not merge
code without tests.**

### Important Labels

There are two important labels to apply to relevant issues and PRs:

1. `breaking-change`: Any PR that introduces a breaking change to the public API
(Rust or Python) must be labelled as such. This is used to determine how to
bump the version number when releasing. You can still add this label even
after merging a PR.
2. `critical-fix`: Any PR that fixes a critical bug (e.g., security issue, data
corruption, crash) should be labelled as such. These are bugs that users might
have without realizing. Fixes that aren't critical include bugs that return
an error message. These labels are used to determine whether a patch release
is needed.

## Code of Conduct

We follow the Code of Conduct of [Python Foundation](https://www.python.org/psf/conduct/) and
Expand Down