跳到正文
cccskills
免费在 GitHub 公开

dependency-updater

Resolve failed Renovate or Dependabot dependency update PRs by fixing version constraints, API breaking changes, and verifying build/test/format compliance. Use when a dependency bump PR fails CI, Cargo cannot select versions, or a crate update requires code migration.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md5.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Updating Dependencies

Resolve failed dependency update PRs from Renovate or Dependabot by diagnosing version constraints and API breaks, then verifying with the project skills.

Core mission

  1. Diagnose — Understand what Renovate/Dependabot bumped and why it failed
  2. Reproduce — Recreate the failure locally
  3. Resolve — Fix version constraints and API changes methodically
  4. Verify — Follow the AGENTS.md testing sequence

Workflow

Phase 1: Analysis

  1. Read the PR description to understand:

    • Which package was updated (e.g. rand_core 0.9.3 -> 0.10.0)
    • The changelog/release notes for breaking changes
    • Any artifact update errors from Renovate
  2. Check CI logs for:

    • Version constraint conflicts (failed to select a version for the requirement)
    • Compilation errors (API changes, removed types/traits/methods)
    • Test failures
  3. Examine the commit diff to see exactly what changed in Cargo.toml

Phase 2: Reproduce locally

Confirm you are on the PR branch, then:

cargo update
cadmuscli test --features emulator

If cargo update fails with version constraints, note which packages conflict before changing manifests.

Phase 3: Resolve version constraints

When you see errors like:

error: failed to select a version for the requirement `rand_core = "^0.9.0"`
candidate versions found which didn't match: 0.10.0
required by package `rand_xoshiro v0.7.0`

Resolution strategy:

  1. Identify the dependency chain: rand_xoshiro requires rand_core ^0.9.0

  2. Check if dependent packages have updates: Look for versions compatible with the new requirement

  3. Update related dependencies together:

    cargo search rand_xoshiro
    
  4. Edit Cargo.toml (and workspace deps in the root manifest when applicable) so related packages move to compatible versions together

Phase 4: Resolve API breaking changes

After constraints resolve, build/test to surface API changes:

cadmuscli test --features emulator

To understand new APIs:

cargo doc -p <crate_name>

Docs land under target/doc/{crate_name}/. Prefer the crate's CHANGELOG or migration guide when one exists.

Phase 5: Fix compilation errors

For each error:

  1. Read the compiler message carefully — it usually suggests the fix
  2. Check the crate's migration guide if available
  3. Make minimal changes — do not refactor unrelated code

Phase 6: Verification

After Cargo.toml or dependency-related code changes, complete every step in AGENTS.md Testing:

  1. Formatting — fmt skill
  2. Lint — clippy-diff-report or build-cadmus-native skill
  3. Tests — build-cadmus-native skill (--features emulator; a device feature is required)
  4. Kobo ARM build — build-kobo skill (required)

Commit message format

chore(deps): resolve {package} {old_version} -> {new_version} update

- Update {related_package} to {version} for compatibility
- Migrate from {old_api} to {new_api}
- {other changes}

Resolves version constraint conflict with {explanation}

Known Renovate bugs

Cargo workspace packages with +metadata version strings

Affects: Packages that use build metadata in their version (e.g. toml@1.1.0+spec-1.1.0), when those packages are declared in multiple Cargo.toml files within the same workspace.

Symptom: Renovate runs cargo update --manifest-path <crate>/Cargo.toml --package pkg@old+meta --precise new once per manifest file. The first run succeeds and rewrites Cargo.lock. The second run then fails:

error: package ID specification `pkg@old+meta` did not match any packages

because old+meta no longer exists after the first run.

See: https://github.com/renovatebot/renovate/discussions/42208

Fix: Run cargo update from the workspace root, targeting the new version already written into Cargo.lock by the first run:

cargo update -p pkg@<new-version>+<meta> --precise <new-version>

Also bump the minimum version constraint in every affected Cargo.toml to the new version so the intent is explicit, e.g.:

toml = "1.1.2"

Important guidelines

  1. Never downgrade security updates — find forward-compatible solutions
  2. Update related packages together — do not leave partial updates
  3. Preserve existing functionality — API changes should not change behavior
  4. Document non-obvious migrations in commit messages or PR text (not inline code comments)
  5. Test thoroughly — run the full AGENTS.md verification sequence
  6. Keep changes minimal — only modify what the update requires

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Build Cadmus on Linux and macOS hosts using cadmuscli. Use when asked how to compile, test, lint, or run the project locally.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

Build, test, and lint Cadmus from a jj sibling workspace that has no .git (non-colocated checkout). Use when jj workspace root is a sibling tmp/agent workspace and builds fail with git submodule or .gitmodules errors, empty thirdparty/ sources, cache-marker misses, or missing sqlite.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

Cross-compile Cadmus for Kobo e-reader devices (ARM Linux). Use this when asked to build a Kobo release, cross-compile for ARM, or prepare a device binary.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

Run clippy locally and report only issues in the current diff, matching the CI reviewdog flow. Use when asked how to lint changed code or get clippy feedback on a branch before pushing.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

docs

免费

Build the full Cadmus documentation website (mdBook + cargo doc + Storybook + Next.js). Use this when asked to build, preview, or update the documentation site.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

Fetch Cadmus application logs from Loki by run ID. Use when asked to look up logs for a specific run, debug a device session, or find log output for a given run ID.

中文简介正在准备中。当前显示原文说明。

OGKevin/cadmus502026年10月22日 更新

查看 OGKevin 的全部技能

报告此技能的问题