56 lines
1.2 KiB
Markdown
56 lines
1.2 KiB
Markdown
# Contributing
|
|
|
|
## 版本控制
|
|
|
|
本仓库使用 **[Jujutsu (jj)](https://jj-vcs.dev/)**。请勿使用 `git` 命令。
|
|
|
|
```bash
|
|
jj log # 查看历史
|
|
jj status # 查看状态
|
|
jj new # 创建新变更
|
|
jj commit # 提交
|
|
jj rebase # 变基
|
|
jj squash # 合并提交
|
|
jj git push # 推送到远端
|
|
```
|
|
|
|
详见 [AGENTS.md](AGENTS.md) 的「版本控制」章节。
|
|
|
|
## 本地开发
|
|
|
|
```bash
|
|
# 复制环境变量
|
|
cp deploy/.env.example .env
|
|
|
|
# 填写数据库连接等配置后
|
|
cargo build
|
|
cargo test --locked
|
|
```
|
|
|
|
## 提交前检查
|
|
|
|
每次提交前必须通过:
|
|
|
|
```bash
|
|
cargo fmt -- --check
|
|
cargo clippy --locked -- -D warnings
|
|
cargo test --locked
|
|
```
|
|
|
|
或使用脚本:
|
|
|
|
```bash
|
|
./scripts/release-check.sh
|
|
```
|
|
|
|
## 发版规则
|
|
|
|
涉及 `crates/**`、根目录 `Cargo.toml`/`Cargo.lock`、`secrets-mcp` 行为变更的提交,默认需要发版。
|
|
|
|
1. 检查 `crates/secrets-mcp/Cargo.toml` 的 `version`
|
|
2. 运行 `jj tag list` 确认对应 tag 是否已存在
|
|
3. 若 tag 已存在且有代码变更,**必须 bump 版本**并 `cargo build` 同步 `Cargo.lock`
|
|
4. 通过 release-check 后再提交
|
|
|
|
详见 [AGENTS.md](AGENTS.md) 的「提交 / 推送硬规则」章节。
|