本指南将详细介绍作为 SpatialBench 贡献者,应如何搭建开发环境。
第一步是创建仓库的个人副本,并将其与主项目关联起来。
Fork 仓库
克隆你的 fork
sedona-spatialbench 的新目录中。YourUsername 替换为你实际的 GitHub 用户名。git clone https://github.com/YourUsername/sedona-spatialbench.git cd sedona-spatialbench
配置 remote
# 将主仓库添加为名为 "upstream" 的远程 git remote add upstream https://github.com/apache/sedona-spatialbench.git
验证配置
git remote -v
origin https://github.com/YourUsername/sedona-spatialbench.git (fetch) origin https://github.com/YourUsername/sedona-spatialbench.git (push) upstream https://github.com/apache/sedona-spatialbench.git (fetch) upstream https://github.com/apache/sedona-spatialbench.git (push)
SpatialBench 使用 Rust 编写,并采用标准的 cargo workspace。你可以从 rustup.rs 安装一个较新的 Rust 编译器和 cargo。
运行测试:
cargo test
可以使用以下命令运行 CLI 的本地开发版本:
cargo run --bin spatialbench-cli
调试 Rust 代码最方便的方式是编写或定位一个能够触发目标行为的测试,然后在 IDE 中通过 rust-analyzer 扩展使用 Debug 模式运行该测试。
调试 SpatialBench CLI 时,可以启用详细输出,以查看更详细的日志:
启用详细输出(info 级别日志):
cargo run --bin spatialbench-cli -- --scale-factor 1 --verbose
或者通过环境变量进行更精细的控制:
RUST_LOG=debug cargo run --bin spatialbench-cli -- --scale-factor 1
--verbose 标志会将日志级别设置为 info,并忽略 RUST_LOG 环境变量。如果未指定 --verbose,则日志通过 RUST_LOG 进行配置。
你可以使用 RUST_LOG 控制日志的粒度:
# 仅显示错误 RUST_LOG=error cargo run --bin spatialbench-cli -- --scale-factor 1 # 显示警告和错误 RUST_LOG=warn cargo run --bin spatialbench-cli -- --scale-factor 1 # 显示 info、警告和错误 RUST_LOG=info cargo run --bin spatialbench-cli -- --scale-factor 1 # 显示调试输出 RUST_LOG=debug cargo run --bin spatialbench-cli -- --scale-factor 1 # 显示 trace 输出(非常详细) RUST_LOG=trace cargo run --bin spatialbench-cli -- --scale-factor 1 # 仅显示特定模块的调试输出 RUST_LOG=spatialbench=debug cargo run --bin spatialbench-cli -- --scale-factor 1
我们使用 cargo 来运行 Rust 测试:
cargo test
也可以仅对某个 crate 运行测试:
cd spatialbench
cargo test
安装 pre-commit。它会自动运行通过 CI 所必需的各项检查(例如代码格式化):
pre-commit install
此外,在推送新的 Rust 改动前,你还应当运行 clippy 来发现常见的代码问题。该检查不包含在 pre-commit 中,因此需要手动运行。修复它给出的所有建议后,再运行一次以确认没有其他需要修改的地方:
cargo clippy
为 SpatialBench 文档做贡献的步骤如下:
pip install -r docs/requirements.txt
mkdocs serve —— 启动支持实时刷新的文档服务器。mkdocs build —— 构建文档站点。mkdocs -h —— 打印帮助信息并退出。