fix: disable Renovate updates for sync-generated examples - #1843
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
ℹ️ No critical issues — two minor suggestions inline.
Reviewed changes — PR #1843 "fix: disable Renovate updates for sync-generated examples". The single commit adds a packageRules block to .github/renovate.json disabling all Renovate updates for the ten sync-generated example directories plus examples/stackblitz, layered on top of the existing packageManager-specific disable rule.
- Add
packageRulesblock (matchFileNamesoverexamples/{basic,basic-js,stackblitz,with-bun,with-bun-react,with-nextjs,with-nextjs-strict,with-nuxt,with-solid-start,with-standard-schema,with-vite-react}+enabled: false) to stop lockfile-only churn from standalone example apps.
I verified the rule's directory list against the playground arkenvExamples configs — all ten sync-generated examples are covered and none are missing, and examples/with-zod / examples/with-valibot stay Renovate-updatable via the pnpm group.
ℹ️ Nitpicks
- The pre-existing packageManager disable rule (
.github/renovate.json:121-139,matchPackageNames: ["npm","pnpm","bun"]) is now fully subsumed by this broader rule for the ten shared directories. Consider removing it (or pointing it at the new rule) so the two directory lists don't drift independently next time an example is added.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
ℹ️ No critical issues — the prior feedback was addressed; two minor observations on the new derivation mechanism.
Reviewed changes — This pass covers everything added since the previous review (base 7cab7232): the hand-written Renovate rule was reworked into a metadata-driven generator that rewrites the matchFileNames list in .github/renovate.json between marker comments, wired into sync-examples.js (both write and CI --check modes), with the now-subsumed packageManager disable rule removed and autofix formatting applied.
- Add
scripts/sync-lib/renovate.jsgenerator that rewrites the// BEGIN GENERATED SYNC EXAMPLES…// END GENERATED SYNC EXAMPLESblock from playgroundarkenvExamplesnames (sorted, deduped). - Wire the generator into
sync-examples.jssopnpm sync:examples:checkfails when.github/renovate.jsondrifts from playground metadata; dropexamples/stackblitz/**(hand-maintained) and the redundantmatchPackageNamesdisable rule.
I verified the committed marker block is byte-identical to the generator's output for the current playground set, so sync-examples:check passes, and the config is valid JSONC (comments inside the matchFileNames array are fine — the config already used them elsewhere).
ℹ️ auto-sync won't commit a renovate.json rewrite
auto-sync in .github/workflows/sync-examples.yml only commits the examples tree (git add examples, lines 85-91), but pnpm sync:examples now also rewrites .github/renovate.json. A bot-triggered run that regenerates the marker block would leave that file modified-but-uncommitted, and check-sync is skipped for renovate[bot] PRs (line 30), so the drift would only surface on a later human PR that hits those paths. It's a rare path, but adding .github/renovate.json to the auto-sync commit line would make the mechanism bot-complete.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
No changeset is needed for this PR. The scope is limited to repository automation in |
Keep the marker region self-contained JSONC so a later hand-written entry after the END marker does not break Renovate parsing. Co-authored-by: Yam Borodetsky <hi@yam.codes>
Bot-triggered sync rewrites .github/renovate.json alongside examples; include it in the porcelain check and git add so drift is committed. Co-authored-by: Yam Borodetsky <hi@yam.codes>
Generated matchFileNames entries always trailing-comma so hand-written entries can follow the END marker. Enable Biome JSON trailing-comma parsing and keep formatter trailing commas for renovate.json so autofix no longer rejects the self-contained marker region. Co-authored-by: Yam Borodetsky <hi@yam.codes>
|
@pullfrog review |
|
There was a problem hiding this comment.
Important
The always-trailing-comma change (commit 2479659) breaks the repo's own lint gate: pnpm check (biome check) now fails to parse .github/renovate.json:73, and the autofix CI gate (node scripts/fix.js → biome check --write .) fails too. The prior head (a572b7d) parsed cleanly, so this is a regression from this delta.
Reviewed changes — Incremental re-review of the delta since the prior Pullfrog review (a572b7df):
- Added a config comment clarifying that hand-maintained examples (including StackBlitz) remain Renovate-managed.
- Reworked the generator to emit a trailing comma on every generated
matchFileNamesentry, with a new unit test (scripts/sync-lib/renovate.test.js) covering the trailing-comma behavior. - Updated the
auto-syncworkflow so a sync that rewrites.github/renovate.jsoncommits the file too (previously only theexamplestree was committed).
Verified that pnpm sync:examples:check still passes (marker block is in sync with generator output) and the new unit tests pass — the problem is confined to biome parsing.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — Re-review of the delta since the previous review (base 7c7db493):
- Enabled trailing commas for biome's JSON parser repo-wide (
json.parser.allowTrailingCommas: true) and added abiome.jsoncoverride for.github/renovate.jsonwith formattertrailingCommas: "all", then reformatted the config (trailing commas everywhere). - This resolves the prior IMPORTANT finding:
pnpm checkno longer fails, the autofix gate (biome check --write .) applies zero fixes torenovate.json,pnpm sync:examples:checkstill passes (marker region byte-identical to generator output),pnpm sync:examplesis idempotent, and the generator unit tests pass. The config remains valid Renovate JSONC.
Note: the thread reply mentions the generator now "omits the comma on the final generated entry," but the committed implementation keeps the always-trailing-comma generator and instead relaxes biome's parser — the actual head (ed4f5ce) is internally consistent and green either way, so no action is needed.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — Re-review of the delta since the previous review (base ed4f5ce1):
8070d964temporarily omitted the trailing comma from the final generated entry (and flipped the unit tests accordingly), which would have desynced the generated block from biome'strailingCommas: "all"formatter policy.4350775ereverted to emitting a trailing comma on every generated entry, updating the JSDoc and test descriptions to match the actual always-trailing-comma behavior.
Net effect: behavior is identical to the already-approved ed4f5ce1. Verified on head 4350775e: biome check and biome check --write apply zero fixes to renovate.json, pnpm sync:examples:check passes (marker region byte-identical to generator output), unit tests pass, write-mode sync is idempotent, and pnpm check is green.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

Summary
Disable Renovate updates for the sync-generated example apps so it stops creating lockfile-only PRs from standalone example projects.
Why
These
examples/*projects are standalone npm apps whose lockfiles are not part of the primary workspace update flow. Allowing Renovate to manage them causes noisy PR churn like dependency bumps that do not affect the actual monorepo packages.Changes
packageRulesblock to disable updates for sync-generated example directories.examples/with-zod,examples/with-valibot) eligible for the workspace group as before.Validation