mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-12 23:02:28 +00:00
Move the public website pages into `docs/web` beside the SDK, with
shared navigation and executable example sources in `docs/web-tests`.
The combined website is assembled by
[lancedb/docs#355](https://github.com/lancedb/docs/pull/355), with six
Enterprise replacements from
[lancedb/sophon#7681](https://github.com/lancedb/sophon/pull/7681).
This includes Function guidance, runnable Quickstarts, regenerated
snippets, production contact/demo fixes, the legacy SQL route, and the
LeRobot redirect. LeRobot remains attributed to Geneva; all 34 Geneva
pages remain in the docs repository until Function officially launches.
Materialized-view guidance follows the full rebuild refresh introduced
by #4373: local refresh writes the complete result, has no `full`
argument, supports `source_version`, and no longer requires stable row
IDs. Deployment SQL refresh options and stable-ID setup are qualified by
version/configuration. Function input guidance distinguishes ordinary
stored columns from computed inputs supported by newer deployments.
**Validation:** independently accepted local checks include 95 Python
tests (real Enterprise excluded), eight TypeScript tests, Rust
Quickstart, snippet parity, typos, deterministic assembly, Mint
validation and links/anchors/redirects. The combined baseline retains
all 181 production routes and 17 legacy redirects. Examples ran locally
against source-built Python SDK 0.40.0b13; existing GitHub workflows do
not run `docs/web-tests`. New main at `069b2f7d` is 0.41.0b0 and adds
computed Function inputs; that SDK was not exercised by the accepted
tests. Latest prose corrections receive focused site validation.
**Merge/rollout:** merge this and #7681 before #355's combined CI, which
reads producer `main`. This is migration infrastructure: section
overlays, source-owned skills and automatic versioned paired releases
remain follow-ups. The current manual publisher is transitional. Hosted
validation, a supported SDK/Enterprise release pair and a real
Enterprise walkthrough remain pending.
Production Mintlify watches `lancedb/docs:deploy-freeze`, directory
`docs`; preserve that source through review. The separate SDK GitHub
Pages reference workflow rebuilds on main merges.
**Updated-head CI (9a50f8db):**
[Typos](https://github.com/lancedb/lancedb/actions/runs/37654185443/job/112904990558),
[PR
title](https://github.com/lancedb/lancedb/actions/runs/37654179507/job/112904974595)
and
[Aikido](https://app.aikido.dev/featurebranch/scan/215386145?groupId=74229)
pass. Critical findings in the example lockfiles were patched: all Sharp
copies use 0.35.5, protobufjs 7.6.6, tar 7.5.22, quinn-proto 0.11.19,
zerovec 0.11.8 and zerovec-derive 0.11.6. The SDK's product dependencies
are unchanged. The revised lockfiles pass eight TypeScript examples,
HuggingFace decode/resize/crop/rescale/normalize plus AVIF roundtrip,
and Rust Quickstart. Aikido passing does not mean every advisory is
cleared; npm still reports 29 high and five moderate advisories in the
example dependency graph. No scanner bypass or suppression was added.
The Function prose correction passes combined/standalone Mint,
deterministic assembly, routes and assets. The revised 325-file site
checksum is
`175bec06864abb400dd292e667ba93448c0479b8359fd7bf6146afabf9040647`. This
PR remains open for independent review; further merges are on hold.
---------
Co-authored-by: Brendan Clement <brendan.clement@lancedb.com>
122 lines
5.0 KiB
Markdown
122 lines
5.0 KiB
Markdown
# Contributing to LanceDB
|
|
|
|
LanceDB is an open-source project and we welcome contributions from the community.
|
|
This document outlines the process for contributing to LanceDB.
|
|
|
|
## Reporting Issues
|
|
|
|
If you encounter a bug or have a feature request, please open an issue on the
|
|
[GitHub issue tracker](https://github.com/lancedb/lancedb).
|
|
|
|
## Picking an issue
|
|
|
|
We track issues on the GitHub issue tracker. If you are looking for something to
|
|
work on, check the [good first issue](https://github.com/lancedb/lancedb/contribute) label. These issues are typically the best described and have the smallest scope.
|
|
|
|
If there's an issue you are interested in working on, please leave a comment on the issue. This will help us avoid duplicate work. Additionally, if you have questions about the issue, please ask them in the issue comments. We are happy to provide guidance on how to approach the issue.
|
|
|
|
## Configuring Git
|
|
|
|
First, fork the repository on GitHub, then clone your fork:
|
|
|
|
```bash
|
|
git clone https://github.com/<username>/lancedb.git
|
|
cd lancedb
|
|
```
|
|
|
|
Then add the main repository as a remote:
|
|
|
|
```bash
|
|
git remote add upstream https://github.com/lancedb/lancedb.git
|
|
git fetch upstream
|
|
```
|
|
|
|
## Setting up your development environment
|
|
|
|
We have development environments for Python, Typescript, and Java. Each environment has its own setup instructions.
|
|
|
|
* [Python](python/CONTRIBUTING.md)
|
|
* [Typescript](nodejs/CONTRIBUTING.md)
|
|
<!-- TODO: add Java contributing guide -->
|
|
* [Documentation](docs/README.md)
|
|
|
|
|
|
## Best practices for pull requests
|
|
|
|
For the best chance of having your pull request accepted, please follow these guidelines:
|
|
|
|
1. Unit test all bug fixes and new features. Your code will not be merged if it
|
|
doesn't have tests.
|
|
1. If you change the public API, update the documentation in the `docs` directory.
|
|
1. Aim to minimize the number of changes in each pull request. Keep to solving
|
|
one problem at a time, when possible.
|
|
1. Before marking a pull request ready-for-review, do a self review of your code.
|
|
Is it clear why you are making the changes? Are the changes easy to understand?
|
|
1. Use [conventional commit messages](https://www.conventionalcommits.org/en/) as pull request titles. Examples:
|
|
* New feature: `feat: adding foo API`
|
|
* Bug fix: `fix: issue with foo API`
|
|
* Documentation change: `docs: adding foo API documentation`
|
|
1. If your pull request is a work in progress, leave the pull request as a draft.
|
|
We will assume the pull request is ready for review when it is opened.
|
|
1. When writing tests, test the error cases. Make sure they have understandable
|
|
error messages.
|
|
|
|
## Project structure
|
|
|
|
The core library is written in Rust. The Python, Typescript, and Java libraries
|
|
are wrappers around the Rust library.
|
|
|
|
* `src/lancedb`: Rust library source code
|
|
* `python`: Python package source code
|
|
* `nodejs`: Typescript package source code
|
|
* `node`: **Deprecated** Typescript package source code
|
|
* `java`: Java package source code
|
|
* `docs/src`: SDK reference, built with mkdocs
|
|
* `docs/web`: the open-source pages of [docs.lancedb.com](https://docs.lancedb.com)
|
|
* `docs/web-tests`: the tests the documentation's code examples are extracted from
|
|
|
|
## Documentation
|
|
|
|
The open-source pages of [docs.lancedb.com](https://docs.lancedb.com) live in
|
|
`docs/web`, so a change to behaviour and the change to the page describing it
|
|
belong in the same pull request.
|
|
|
|
Preview them locally — this serves `docs/web` on its own, with no other checkout:
|
|
|
|
```bash
|
|
npm i -g mint # https://mintlify.com/docs/installation
|
|
cd docs/web && mint dev
|
|
```
|
|
|
|
This repository holds a page at every path the site publishes, so the whole
|
|
navigation resolves locally. Enterprise pages exist here as open-source pages --
|
|
what the capability is, and what the embedded form does instead. A separate
|
|
private repository supplies the fuller version of each, which replaces the page
|
|
at the same path when the published site is assembled.
|
|
|
|
Two things to know before editing:
|
|
|
|
**Code examples are not written into the pages.** They live in real tests under
|
|
`docs/web-tests/{py,ts,rs}`, are extracted into `docs/web/snippets/`, and are
|
|
imported by the pages. Edit the test, then regenerate from the repository root:
|
|
|
|
```bash
|
|
uv run docs/web-tests/mdx_snippets_gen.py -s docs/web-tests/py -s docs/web-tests/ts -s docs/web-tests/rs -o docs/web/snippets
|
|
```
|
|
|
|
Review the diff before committing: a few modules currently regenerate with
|
|
unrelated changes, so commit only the snippets for the examples you changed.
|
|
|
|
Run the Python, TypeScript and Rust examples in `docs/web-tests/{py,ts,rs}`
|
|
locally before submitting the change. These examples are not yet wired into
|
|
pull-request CI; that integration remains follow-up work.
|
|
|
|
**Every heading carries an explicit `{#anchor}`.** Those anchors are how the
|
|
Enterprise pages attach their additions to the right section, so they are
|
|
assigned once and never regenerated. Leave an existing anchor alone even when
|
|
you reword the heading above it; only new headings need a new one.
|
|
|
|
## Release process
|
|
|
|
For information on the release process, see: [release_process.md](release_process.md)
|