AgentSkillsCN

cargo-lock-manager

在CI/CD中管理Cargo.lock文件的更新,并解决--locked标志引发的问题。 当用户提及以下内容时触发: - “Cargo test --locked失败” - “无法更新锁文件” - “Cargo.lock已过期” - “PR因--locked错误而失败” - “修复Cargo.lock”

SKILL.md
--- frontmatter
name: cargo-lock-manager
description: |
  Manages Cargo.lock file updates and resolves --locked flag issues in CI/CD.

  Triggers when user mentions:
  - "cargo test --locked failed"
  - "cannot update the lock file"
  - "Cargo.lock is out of date"
  - "PR failed with --locked error"
  - "fix Cargo.lock"

Quick Usage (Already Configured)

Check Cargo.lock status

bash
cd packages/desktop/src-tauri
cargo check --locked 2>&1 | head -20

Update Cargo.lock locally

bash
cd packages/desktop/src-tauri
cargo update --workspace

Test with --locked after update

bash
cd packages/desktop/src-tauri
cargo test --locked

Common Gotchas

  • The --locked flag prevents automatic updates to Cargo.lock, which is good for reproducible builds but fails when dependencies change.
  • PRs often fail because the lock file wasn't committed after dependency updates.
  • Running cargo update without --workspace may not update all workspace members.

When CI Fails with --locked

Option 1: Update lock file and commit (Recommended)

bash
cd packages/desktop/src-tauri
cargo update --workspace
git add Cargo.lock
git commit -m "chore: update Cargo.lock"
git push

Option 2: Use --offline flag (for air-gapped environments)

bash
cargo test --manifest-path packages/desktop/src-tauri/Cargo.toml --offline

First-Time Setup (If Not Configured)

No setup required. This skill assumes:

  • Rust/Cargo is installed
  • You're in the openwork repository
  • The Tauri app is in packages/desktop/src-tauri/

Prevention Tips

  • Always run cargo check or cargo build after modifying Cargo.toml files
  • Include Cargo.lock changes in the same commit as dependency updates
  • Consider adding a pre-commit hook to verify lock file is up to date