跳到内容

为 Lance Namespace 贡献

Lance Namespace 代码库位于 lancedb/lance-namespace

仓库结构

组件 语言 路径 描述
规范 docs/src/spec Lance Namespace 规范
Rust Reqwest 客户端 Rust rust/lance-namespace-reqwest-client 为 Lance REST Namespace 生成的 Rust reqwest 客户端
Rust Lance Namespace 核心 Rust rust/lance-namespace Lance Namespace Rust 核心 SDK
Python UrlLib3 客户端 Python python/lance_namespace_urllib3_client 为 Lance REST Namespace 生成的 Python urllib3 客户端
Python Lance Namespace 核心 Python python/lance_namespace Lance Namespace Python 核心 SDK
Java Apache 客户端 Java java/lance-namespace-apache-client 为 Lance REST Namespace 生成的 Java Apache HTTP 客户端
Java Springboot 服务器 Java java/lance-namespace-springboot-server 为 Lance REST Namespace 生成的 Java SpringBoot 服务器
Java Lance Namespace 核心 Java java/lance-namespace-core Lance Namespace Java 核心 SDK
Java Lance Namespace 适配器 Java java/lance-namespace-adaptor Lance Namespace 适配器服务器实现
Java Lance Namespace Hive Java java/lance-namespace-hive Java Lance Namespace Apache Hive Metastore 实现
Java Lance Namespace Glue Java java/lance-namespace-glue Java Lance Namespace AWS Glue Data Catalog 实现
Java Lance Namespace LanceDB Java java/lance-namespace-lancedb 与 LanceDB Cloud & Enterprise 一起使用 Lance Namespace SDK 的 Java 工具

安装 uv

我们使用 uv 进行开发。确保已安装,然后运行

uv sync --all-packages

代码检查

为确保 OpenAPI 定义有效,您可以使用 lint 命令进行检查。

make lint

构建

顶级和每个语言文件夹中都有 3 个可用命令

  • make clean: 删除所有代码生成模块
  • make gen: 生成并检查所有模块(取决于 clean
  • make build: 构建所有模块(取决于 gen

您还可以运行 make <command>-<language>,只在特定语言中运行命令,例如

  • make gen-python: 生成并检查所有 Python 模块
  • make build-rust: 构建所有 Rust 模块

您还可以在语言文件夹中运行 make <command>-<language>-<module>,针对特定模块运行命令,例如

  • make gen-rust-reqwest-client: 生成并检查 Rust reqwest 客户端模块
  • make build-java-springboot-server: 构建 Java Spring Boot 服务器模块

文档

设置

文档网站使用 mkdocs-material 构建。启动服务器:

make serve-docs

从 OpenAPI 规范生成文档

docs/src/rest.yaml 中的 OpenAPI 规范经过消化并生成 Markdown 文档,以提高可读性。生成最新文档:

make gen-docs

了解构建过程

lance-namespace/docs 中的内容是为了方便贡献者编辑和预览。代码合并后,内容在 Lance 文档 CI 构建期间添加到 主 Lance 文档,并在 Lance 网站的 Lance Namespace 规范下展示。

CONTRIBUTING.md 文档会自动构建到 Lance 贡献指南

发布流程

本节描述了用于自动化版本管理、发布和发布的 CI/CD 工作流程。

版本方案

  • 稳定版本: X.Y.Z (例如,1.2.3)
  • 预览版本: X.Y.Z-beta.N (例如,1.2.3-beta.1)

创建发布

  1. 创建发布草稿
  2. 转到 Actions → "Create Release"
  3. 选择参数
    • 发布类型 (major/minor/patch)
    • 发布渠道 (stable/preview)
    • 空运行 (不推送地测试)
  4. 运行工作流程 (创建草稿发布)

  5. 审查和发布

  6. 转到发布页面审查草稿
  7. 根据需要编辑发布说明
  8. 点击 "Publish release" 以
    • 对于稳定版本:触发 Java、Python、Rust 的自动发布
    • 对于预览版本:创建测试版发布(未发布)