8000 ci: batch weekly dependabot updates for cargo, npm and actions by jrnxf · Pull Request #44 · jrnxf/thokr · GitHub
[go: up one dir, main page]

Skip to content

ci: batch weekly dependabot updates for cargo, npm and actions - #44

Merged
jrnxf merged 2 commits into
mainfrom
fm/thokr-dependabot
Oct 30, 2026
Merged

jrnxf merged 2 commits into
mainfrom
fm/thokr-dependabot

Conversation

@jrnxf
@jrnxf jrnxf commented Oct 30, 2026
Copy link
Copy Markdown
Owner

Intent

Dependabot: set up batched weekly PRs on thokr, fsrx and gh-eco? yes. Context: gh-eco already has .github/dependabot.yml (gomod + github-actions, weekly, one PR per dependency), which opened about 5 separate PRs at once. The proposal the captain approved: on each repo, batch minor and patch updates into one weekly PR per ecosystem, keep major versions as their own PRs (they need a real check), and cover the repo's language dependencies plus GitHub Actions versions (for thokr, also the web demo's npm packages).

What Changed

  • Add .github/dependabot.yml with weekly update checks for cargo (/ and /web/engine in one entry), npm (/web) and GitHub Actions (/).
  • Each ecosystem has its own group that puts minor and patch updates into one weekly PR. Major updates are not grouped, so each one still opens its own PR.

Risk Assessment

✅ Low: The change is a CI config file and nothing else. It covers cargo (both the root crate and web/engine, each with its own lockfile), npm (/web) and github-actions with weekly minor/patch groups, and majors stay ungrouped as separate PRs. That meets the intent and the user's round-1 fix decision.

Testing

The diff is a Dependabot config file only, and only GitHub's Dependabot service runs it. I parsed the YAML into a semantic model. There is one weekly cargo group covering both / and /web/engine, as the review decision asked. There is one npm group for /web and one github-actions group. Each group batches only minor and patch updates, so majors get their own PRs. Every target directory has the manifest Dependabot needs. No Dependabot run was possible locally, so the verdict is no-surface. No UI changed, so there are no screenshots.

  • Live validation: ⚠️ no-surface - 0 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Dependabot opens one weekly grouped minor/patch PR for cargo covering both the root crate and web/engine ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service reads this file and opens PRs. No local Dependabot runner is available, and triggering the real service needs the change pushed to the default…
Dependabot opens one weekly grouped minor/patch PR for the web demo's npm packages ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.
Dependabot opens one weekly grouped minor/patch PR for GitHub Actions versions ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.
Major version bumps stay out of the groups and open as separate PRs ⏸️ untested no No live surface. Only GitHub's Dependabot service applies grouping, and nothing local can run it.
Evidence: Dependabot config semantic check

cargo | / | target present cargo | /web/engine | target present interval: weekly | groups: {"cargo-minor-patch":["minor","patch"]} npm | /web | target present interval: weekly | groups: {"npm-minor-patch":["minor","patch"]} github-actions | / | target present interval: weekly | groups: {"github-actions-minor-patch":["minor","patch"]}

cargo | / | target present
cargo | /web/engine | target present
  interval: weekly | groups: {"cargo-minor-patch":["minor","patch"]}
npm | /web | target present
  interval: weekly | groups: {"npm-minor-patch":["minor","patch"]}
github-actions | / | target present
  interval: weekly | groups: {"github-actions-minor-patch":["minor","patch"]}
- Outcome: ⚠️ 1 warning across 1 run (53.4s)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

🔧 **Review** - 1 issue found → auto-fixed ✅
  • ⚠️ .github/dependabot.yml:2 - Intent asks to "batch minor and patch updates into one weekly PR per ecosystem". The config has two separate cargo entries: directory: / with group cargo-minor-patch at line 3, and directory: /web/engine with group cargo-web-engine-minor-patch at line 12. That gives two cargo PRs each week, not one. It also matters for correctness. web/engine compiles thokr's own ../../src modules against its own Cargo.lock, and it shares ratatui, clap, rand and cgisf_lib with the root crate. With two PRs, one can merge without the other, and the shared crates then drift to different versions between the TUI and the web build. Suggested fix: one cargo entry with directories: ["/", "/web/engine"] and a single minor/patch group. Dependabot then opens one grouped PR covering both lockfiles. Confirm whether one cargo PR is wanted, or whether two per-directory PRs are acceptable.

🔧 Fix applied.
✅ Re-checked - no issues remain.

⚠️ **Test** - 1 warning
  • ⚠️ this change has no live-validatable surface; proceed without live validation? (0 of 4 scenarios were driven live against the product); Dependabot opens one weekly grouped minor/patch PR for cargo covering both the root crate and web/engine: No live surface. Only GitHub's hosted Dependabot service reads this file and opens PRs. No local Dependabot runner is available, and triggering the real service needs the change pushed to the default branch, which belongs to later phases.; Dependabot opens one weekly grouped minor/patch PR for the web demo's npm packages: No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.; Dependabot opens one weekly grouped minor/patch PR for GitHub Actions versions: No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.; Major version bumps stay out of the groups and open as separate PRs: No live surface. Only GitHub's Dependabot service applies grouping, and nothing local can run it.
  • Live validation: ⚠️ no-surface - 0 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Dependabot opens one weekly grouped minor/patch PR for cargo covering both the root crate and web/engine ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service reads this file and opens PRs. No local Dependabot runner is available, and triggering the real service needs the change pushed to the default…
Dependabot opens one weekly grouped minor/patch PR for the web demo's npm packages ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.
Dependabot opens one weekly grouped minor/patch PR for GitHub Actions versions ⏸️ untested no No live surface. Only GitHub's hosted Dependabot service runs this config, and it does so after merge to the default branch.
Major version bumps stay out of the groups and open as separate PRs ⏸️ untested no No live surface. Only GitHub's Dependabot service applies grouping, and nothing local can run it.
  • Parsed .github/dependabot.yml with the npm yaml package in a throwaway temp dir. Checked version 2, the weekly interval, the minor/patch group types, and that each target directory has its manifest (Cargo.toml, package.json, .github/workflows)
  • git diff --stat 5fba3f9 HEAD: only .github/dependabot.yml changed
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@jrnxf
jrnxf merged commit 4f9f55d into main Oct 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0