跳转至

工程说明

这些笔记记录对贡献者有用的仓库交付工作,但不属于产品契约。产品实现状态与 路线图细节属于各产品的 Design 页面。

贡献者命令

从仓库根目录运行。just --list 列出全部 recipe。

命令 作用
just test 通过 cargo nextest 跑pChronicle 与 CLI 测试,再跑范围内的 Python 测试
just test <package> 单个 crate 或 Cargo package(例如 pchronicle 或 persisting-pchronicle)
just docs-sync 安装锁定的文档环境
just docs-serve 本地 Zensical 预览,文件修改时自动刷新
just docs-serve-dirty 自动重载卡住时重新启动 Zensical 预览
just docs-build 构建静态文档站点
just examples pChronicle 产品示例套件
just dev 自动格式化、lint,然后运行 Rust 测试
just ci 只读 lint 检查、Rust/Python 测试、性质测试,然后构建
just check-quick pChronicle CLI 与无默认 feature 的 pChronicle 检查

just test 使用 debug nextest profile 以便更快迭代。传入 Cargo package 名 或短 crate 别名(pchronicle、pchronicle-cli)。just test pchronicle 会同时跑 persisting-pchronicle 与 persisting-pchronicle-cli(与 CI 的 pchronicle shard 一致);只要 CLI 时用 just test pchronicle-cli。无参数形式还会跑 just test-py,覆盖打包、轨迹行契约与基准报告。Python 格式化和 lint 检查这些 测试及 pChronicle 构建、文档和用例脚本,遵循 AGENTS.md 的范围。

当前笔记

笔记 读者 用途
发布 Persisting 维护者 版本、trusted-publisher 与稳定发布流程
可复现示例 贡献者 examples/ 下的产品 CLI 套件

快速本地构建

仓库的 rust-toolchain.toml 选择 stable、rustfmt 与 Clippy。正常 开发、测试和发布构建都使用该 toolchain 的默认 LLVM backend。

Rust 测试用 cargo nextest 做进程隔离和并行执行;用 cargo install cargo-nextest --version 0.9.137 --locked 安装 0.9.137, 或使用仓库 CI setup action。

本地和普通 CI 构建使用平台默认 linker。Linux wheel 使用 manylinux_2_28 镜像(glibc 2.28),以便 rustc libstd 能链接 statx / copy_file_range。

just check-quick 检查 pChronicle CLI 以及无默认 feature 的 pChronicle。 just dev 先格式化文件,再运行 lint 和 Rust 测试;just ci 使用只读 lint 检查, 并额外运行 Python 和性质测试。GitHub Actions 还覆盖平台分片、Web 构建、S3 与示例。

cargo nextest 不跑 doctest。需要时把文档测试留在常规 Cargo runner 上, 例如 cargo test --doc -p <package>。

CI 构建复用

MinIO 工具按操作系统、架构、Go 版本和固定源码版本缓存。基准测试在同一 runner 上 顺序执行两个版本,复用 Cargo 构建目录,分别保存报告。Wheel 构建缓存两个 Rust 工作区,内嵌 Web 资源的缓存签名包含锁文件。

纯 Python 任务跳过 Rust 安装,只构建的任务跳过 cargo-nextest。文档任务按 ref 划分并发组,PR 构建不会取消主分支的文档部署。

支持的行为请从 pChronicle 指南 开始,实现理由见 系统架构。