108 lines
2.1 KiB
Markdown
108 lines
2.1 KiB
Markdown
## Rust 依赖更新
|
||
|
||
安全地更新 Rust 项目的依赖关系。
|
||
|
||
### 使用方法
|
||
|
||
```bash
|
||
# 确认依赖状态并请求 Claude
|
||
cargo tree
|
||
「将 Cargo.toml 的依赖更新到最新版本」
|
||
```
|
||
|
||
### 基本示例
|
||
|
||
```bash
|
||
# 确认当前依赖
|
||
cat Cargo.toml
|
||
「分析这个 Rust 项目的依赖并告诉我可更新的 crate」
|
||
|
||
# 确认可更新列表
|
||
cargo update --dry-run
|
||
「分析这些 crate 更新的危险度」
|
||
```
|
||
|
||
### 与 Claude 配合
|
||
|
||
```bash
|
||
# 全面的依赖更新
|
||
cat Cargo.toml
|
||
「分析 Rust 的依赖并执行以下操作:
|
||
1. 调查各 crate 的最新版本
|
||
2. 确认是否有破坏性变更
|
||
3. 评估危险度 (安全・注意・危险)
|
||
4. 提出必要的代码更改
|
||
5. 生成更新版 Cargo.toml」
|
||
|
||
# 安全的分阶段更新
|
||
cargo tree
|
||
「避免主版本升级,只更新可以安全升级的 crate」
|
||
|
||
# 特定 crate 的更新影响分析
|
||
「告诉我将 tokio 更新到最新版本的影响和必要的更改」
|
||
```
|
||
|
||
### 详细示例
|
||
|
||
```bash
|
||
# 包含 Release Notes 的详细分析
|
||
cat Cargo.toml && cargo tree
|
||
「分析依赖,为每个 crate 提供:
|
||
1. 当前 → 最新版本
|
||
2. 危险度评估 (安全・注意・危险)
|
||
3. 主要变更 (来自 CHANGELOG)
|
||
4. trait 边界的变更
|
||
5. 必要的代码修改
|
||
以表格形式展示」
|
||
|
||
# 异步运行时的迁移分析
|
||
cat Cargo.toml src/main.rs
|
||
「展示从 async-std 迁移到 tokio,或 tokio 主版本升级所需的所有更改」
|
||
```
|
||
|
||
### 危险度标准
|
||
|
||
```text
|
||
安全 (🟢):
|
||
- 补丁版本升级 (0.1.2 → 0.1.3)
|
||
- 仅修复 bug
|
||
- 保证向后兼容
|
||
|
||
注意 (🟡):
|
||
- 次版本升级 (0.1.0 → 0.2.0)
|
||
- 新增功能
|
||
- 有弃用警告
|
||
|
||
危险 (🔴):
|
||
- 主版本升级 (0.x.y → 1.0.0、1.x.y → 2.0.0)
|
||
- 破坏性变更
|
||
- API 的删除或更改
|
||
- trait 边界的变更
|
||
```
|
||
|
||
### 执行更新
|
||
|
||
```bash
|
||
# 创建备份
|
||
cp Cargo.toml Cargo.toml.backup
|
||
cp Cargo.lock Cargo.lock.backup
|
||
|
||
# 执行更新
|
||
cargo update
|
||
|
||
# 更新后确认
|
||
cargo check
|
||
cargo test
|
||
cargo clippy
|
||
```
|
||
|
||
### 注意事项
|
||
|
||
更新后必须进行功能测试。如果出现问题,使用以下命令恢复:
|
||
|
||
```bash
|
||
cp Cargo.toml.backup Cargo.toml
|
||
cp Cargo.lock.backup Cargo.lock
|
||
cargo build
|
||
```
|