Skip to content

fix(ci): point Dependabot npm ecosystem at pnpm workspace root - #235

Merged
nikcio merged 1 commit into
mainfrom
fix/dependabot-workspace-root
Oct 27, 2026
Merged

nikcio merged 1 commit into
mainfrom
fix/dependabot-workspace-root

Conversation

@nikcio

@nikcio nikcio commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Problem

Same root cause as identified in nikcio/Nikcio.UHeadless#637: this repo has two npm entries in .github/dependabot.yml — one at directory: "/" (the pnpm workspace root) and one at directory: "/docs/". Both resolve the same shared pnpm-lock.yaml at the repo root; Dependabot's npm ecosystem does not split a pnpm workspace lockfile per subdirectory.

That split docs dependency updates across two independent PR streams:

PR Changed Should have changed
#229 (astro, /docs group) docs/package.json only manifest + lockfile together
#232 (zod) pnpm-lock.yaml only same PR as the manifest/lockfile bump that pulls it in
#233 (undici) pnpm-lock.yaml only same
#234 (postcss-selector-parser) pnpm-lock.yaml only same
#217, #218 (older /docs bumps) docs/package.json only, closed as superseded —

Because the two streams merge in arbitrary order, pnpm-lock.yaml accumulated real drift. pnpm install --lockfile-only --fix-lockfile on main produces a 121-line correction:

pnpm install --frozen-lockfile still passes on main only because nothing reachable references the orphaned entries — the lockfile is not in the state pnpm would generate, it just happens to be a superset.

Fix

  • Drop the /docs/ npm entry (plus its now-redundant astro group and chore(deps-docs) prefix). Dependabot now updates the workspace manifests (/, /docs) and the shared pnpm-lock.yaml in the same PR, and groups related transitive bumps instead of splitting them.
  • Regenerate pnpm-lock.yaml to remove the accumulated drift.

The existing biome group, cooldowns, schedule, and chore(deps) prefix are unchanged. NuGet and github-actions entries are untouched.

Verification

  • pnpm install --frozen-lockfile passes on this branch.
  • A follow-up pnpm install --lockfile-only reports "Already up to date" — the lockfile is now in the exact state pnpm generates.
  • Docs site builds successfully: pnpm exec astro build in /docs completes (10 pages, search index, sitemap).
  • Config-only + lockfile-cleanup change; no source code touched.

The npm ecosystem had two entries: directory: "/" (the pnpm workspace
root) and directory: "/docs/". Both resolve the same shared
pnpm-lock.yaml at the repo root, because Dependabot's npm ecosystem
handles a pnpm workspace lockfile at the root and does not split a
single shared lockfile per subdirectory.

That split the docs dependency updates across two independent PR
streams:

- /docs entry produced manifest-only PRs (e.g. #229: docs/package.json
  only, no lockfile change)
- / entry produced lockfile-only PRs for docs' transitive deps (e.g.
  #232 zod, #233 undici, #234 postcss-selector-parser: pnpm-lock.yaml
  only, no manifest change)

Since those PRs merge in arbitrary order, pnpm-lock.yaml accumulated
drift: an orphaned shiki@4.4.3 + @shikijs/*@4.4.3 tree, a stale
@astrojs/markdown-satteri@0.4.3 variant, and a missing
@astrojs/mdx@8.0.1(...markdown-satteri@0.4.4...) snapshot. pnpm
install --frozen-lockfile still passed only because nothing reachable
references the orphans.

Fixes:

- Drop the /docs/ npm entry (and its redundant astro group and
  chore(deps-docs) prefix). Dependabot now updates workspace manifests
  and the shared pnpm-lock.yaml in the same PR.
- Regenerate pnpm-lock.yaml to remove the accumulated drift.

Verification: pnpm install --frozen-lockfile passes, a follow-up
pnpm install --lockfile-only reports 'Already up to date', and the
docs site builds successfully (pnpm exec astro build).
@nikcio
nikcio enabled auto-merge (squash) October 27, 2026 20:17
@nikcio
nikcio merged commit 152086a into main Oct 27, 2026
6 checks passed
@nikcio
nikcio deleted the fix/dependabot-workspace-root branch October 27, 2026 20:18
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