Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions .github/skills/update-deps/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Automate the full dependency update lifecycle: discover what's outdated, apply u

## Repository context

This is a Rust workspace containing utility crates published to crates.io. All dependency update PRs target the **`main`** branch.
This is a Rust workspace containing utility crates published to crates.io.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Keep the target beside creation: Repeating the target in introductory context creates another rule to maintain without changing the updater's action. The PR-creation instruction and command already require main, and branch setup remains unchanged. Commit


Dependabot is configured (`.github/dependabot.yaml`) to open PRs against `main` on the 2nd of each month. This skill gathers individual dependabot PRs, combines updates by ecosystem, fixes any breakage, gets CI green, and creates consolidated PRs for human review.
Dependabot is configured (`.github/dependabot.yaml`) to open PRs against `main` on the 2nd of each month.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Keep one lifecycle overview: A second lifecycle description adds upkeep without a distinct duty: the imperative overview already covers discovery, grouped updates, repairs, green CI, and review handoff, and the numbered workflow retains those stages. The separate Dependabot schedule and target statement stays unchanged. Commit


### Crates in this workspace

Expand Down Expand Up @@ -56,8 +56,6 @@ git fetch origin main
git rev-parse --verify origin/main
```

Detect which ecosystems have pending updates:

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Separate discovery from update checks: Finding dependency files could be mistaken for proving updates are pending. The presence checks establish only ecosystem availability; the later intelligence step still finds updates. Both sets of commands remain unchanged. Commit


```bash
[ -f Cargo.toml ] && echo "cargo"
ls .github/workflows/*.yml .github/workflows/*.yaml 2>/dev/null && echo "github-actions"
Expand Down Expand Up @@ -268,7 +266,6 @@ Report the final PR URL and a summary of what was done.

## Guidelines

- **All PRs target `main`.** There is no separate dev branch.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Keep one PR-target mandate: Another target rule adds maintenance without an independent action. The creation step still requires every dependency PR to target main; the removed dev-branch explanation adds no action beyond that target. The separate feature-branch and no-direct-push requirements remain. Commit

- **Never push to `main` directly.** Always work on a feature branch.
- **Never push code that doesn't pass `make lint` and `make test`.** If you can't fix it in 3 tries, stop and ask.
- **Be conservative with major version bumps.** If a major version update breaks things and the fix isn't obvious, skip that package and note it in the PR description.
Expand All @@ -280,10 +277,8 @@ Report the final PR URL and a summary of what was done.

## Edge cases

- **Cargo workspace:** Dependencies are declared per-crate but share a single `Cargo.lock` at the workspace root. Always run `cargo update` and `cargo check` from the repo root.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Keep Cargo guidance with its commands: A repeated workspace item creates another maintenance point without a distinct trigger or action. The earlier Cargo recipe already requires root execution and explains per-crate manifests and the root lockfile; those requirements remain intact. Commit

- **npm:** Look for `package.json` files to discover npm packages rather than hardcoding paths — the repo layout may change.
- **WASM builds:** After updating `wasm-bindgen` or related deps, verify `make build-js` still works — WASM toolchain version mismatches are common.
- **Rate limits:** If `gh api` hits rate limits, wait and retry. Report to user if persistent.
- **Nothing to update:** Report cleanly and move to the next ecosystem (or exit).

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Keep one no-updates branch: Repeating the empty-update disposition adds upkeep without a different reader action. The existing rules already require skipping unchanged ecosystems, telling the user, and working through ecosystems serially. Optional exit when finished adds no further duty. Commit

- **Merge conflicts on push:** Rebase on `main` and retry: `git fetch origin main && git rebase origin/main`.
- **Branch already exists:** If `deps/{ecosystem}-updates-{date}` already exists, append a counter or ask user.
Loading