Skip to content

ci(dependabot): stop proposing Mantine and React majors (locked decision §2) - #106

Merged
tyler-rich merged 1 commit into
devfrom
claude/dependabot-triage-v0.2.0-w714if-dependabot-ignores
Jul 26, 2026
Merged

ci(dependabot): stop proposing Mantine and React majors (locked decision §2)#106
tyler-rich merged 1 commit into
devfrom
claude/dependabot-triage-v0.2.0-w714if-dependabot-ignores

Conversation

@tyler-rich

@tyler-rich tyler-rich commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Dependabot #86 proposes @mantine/* 7.15.2 → 9.4.2 and react/react-dom 18.3.1 → 19.2.8. Both are breaches of CLAUDE.md locked decision §2 (React 18 + Mantine v7), so #86 is not mergeable and should be closed by hand. This PR stops it recurring.

What changed

.github/dependabot.yml's npm entry gains an ignore: block for major updates only:

  • @mantine/*
  • react, react-dom
  • @types/react, @types/react-dom

Minor and patch updates inside Mantine v7 and React 18 are untouched and still open weekly. No other ecosystem entry changes. A comment above the block cites locked decision §2, so the reason is visible where the rule lives.

Why config and not just closing #86

Because Dependabot groups the entire npm ecosystem into one branch, a single unmergeable entry makes the whole PR unmergeable — and closing it discards the dozen mergeable bumps sitting next to it. Without the ignores, next week's run rebuilds the same PR and the same manual close happens again. The lock has to be expressed in the config or it gets re-litigated every week.

Why @types/react* are in the list

Beyond what a literal reading of "Mantine and React" covers, and deliberately so: their major version tracks React's. @types/react 19 against react 18 is a type-level mismatch, and with type-aware ESLint enabled (2026-07-24) that mismatch is a failing lint gate, not a quiet inconsistency. Ignoring the runtime majors while letting their @types majors through would leave the group unmergeable for the same reason it already is.

What this deliberately does not do

It does not touch the frontend tooling majors #86 also proposes — TypeScript 5.7 → 7.0, ESLint 9 → 10, typescript-eslint 8.19 → 8.65, Vite 6 → 8, Vitest 3 → 4, jsdom 26 → 29. Those are not locked and are wanted, but every one of them lands on the type-aware ESLint gate, so they are real work with real churn potential in the lint config. They belong in their own scoped PR, not folded into a config change.

It is also not a permanent verdict on React 19 / Mantine v9. An ignore rule says a bot may not make this decision, not that the decision can never be made — lifting either line is a locked-decision change and goes through the maintainer first.

See docs/ARCHIVE.md § Deviations for the dated entry.

…ion §2)

The npm entry now ignores major updates for @mantine/*, react, react-dom,
@types/react and @types/react-dom. Minor and patch updates inside Mantine v7
and React 18 still flow as before, and no other ecosystem entry changes.

CLAUDE.md locked decision §2 fixes the frontend at React 18 + Mantine v7, but
Dependabot had no way to know that, so the weekly grouped frontend PR proposed
@mantine/* 7.15.2 -> 9.4.2 and react/react-dom 18.3.1 -> 19.2.8 alongside a
dozen updates that were fine. One unmergeable entry makes the whole grouped PR
unmergeable, and closing it discards the mergeable bumps with it — so the lock
has to be expressed in the config or it gets re-litigated every week.

@types/react* are included because their major tracks React's: @types/react 19
against react 18 fails the type-aware ESLint gate enabled 2026-07-24.

See docs/ARCHIVE.md § Deviations for the dated entry.
@tyler-rich
tyler-rich merged commit 9e20b93 into dev Jul 26, 2026
4 checks passed
@tyler-rich
tyler-rich deleted the claude/dependabot-triage-v0.2.0-w714if-dependabot-ignores branch July 26, 2026 07:31
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