Skip to content

chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide#223

Merged
agjs merged 1 commit into
mainfrom
chore/deps-lint-tooling-batch
Jun 24, 2026
Merged

chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide#223
agjs merged 1 commit into
mainfrom
chore/deps-lint-tooling-batch

Conversation

@agjs

@agjs agjs commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Two parts: (1) fix the immediate failing CI by bumping the shared lint toolchain in lockstep, and (2) fix the Dependabot config so this split never happens again.

Part 1 — the lockstep bump (supersedes #220 / #221 / #222)

Dependabot split the lint-group bump into per-app PRs (#220 api, #222 ui). This repo enforces a shared-tool-version-parity lint-meta rule: eslint-plugin-unicorn, typescript-eslint, etc. must be pinned to one version in every app that declares them. So an api-only (#220) or ui-only (#222) bump can never pass CIlint:meta fails on the drift. That's the red CI on #220.

This moves both apps together so parity holds, and folds in the ui tailwind-shadcn group (#221).

apps/api + apps/ui (lockstep):

Package From To PRs
eslint-plugin-unicorn 66.0.0 67.0.0 #220, #222
typescript-eslint 8.61.0 8.61.1 #220, #222
@typescript-eslint/utils (override) 8.61.0 8.61.1

apps/ui (#221):

Package From To
lucide-react 1.18.0 1.20.0
radix-ui 1.5.0 1.6.0

unicorn 67 is a major (~15 new rules) but flags nothing in either codebase — no source changes. typescript-eslint 8.61.1 is a version-bump-only patch.

Verified locally

  • api bun run check (typecheck + lint + lint:meta — no violations + knip) ✅
  • ui bun run check (lint + lint:meta + format:check + typecheck + knip) ✅

Part 2 — Dependabot config (prevents recurrence)

.github/dependabot.yml: apps/api and apps/ui were separate bun update configs, each with its own lint group — that's why shared-toolchain bumps split into per-app PRs that break parity.

Merged them into a single multi-directory entry (directories: [/apps/api, /apps/ui]) with a cross-directory dev-tooling group covering everything the parity rule controls: eslint + plugins, the typescript-eslint family, typescript, prettier, knip, husky, and @boring-stack-pkg/*. Shared-toolchain bumps now arrive as one lockstep PR — green by construction.

Also pulls knip/husky/typescript/@boring-stack-pkg/* into the group (parity-controlled but previously ungrouped — same latent problem, e.g. last week's #213 + #215 knip pair). App-specific groups and per-app major-version ignores preserved; @sentry/* now travels together too. docs/docker/actions/terraform configs unchanged.

Supersedes

Closes #220, #221, #222

Dependabot split the lint-group bump into per-app PRs (#220 api, #222 ui),
but the shared-tool-version-parity lint-meta rule requires eslint-plugin-unicorn
and typescript-eslint to be pinned to one version across every app that
declares them. An api-only or ui-only bump can never pass CI — they must move
together. This moves both, and folds in the ui tailwind-shadcn group (#221).

apps/api + apps/ui:
- eslint-plugin-unicorn 66.0.0 -> 67.0.0 (#220, #222) — major; the new
  recommended rules flag nothing in either codebase (lint green).
- typescript-eslint 8.61.0 -> 8.61.1 (#220, #222) — patch (version-bump only,
  no code changes); @typescript-eslint/utils override raised to 8.61.1 to match.

apps/ui:
- lucide-react 1.18.0 -> 1.20.0, radix-ui 1.5.0 -> 1.6.0 (#221)

Lockfiles regenerated with bun@1.3.14. api + ui static gates (typecheck, lint,
lint:meta — parity now clean, knip) pass locally; test suites run on CI.
@agjs agjs merged commit ea88df3 into main Jun 24, 2026
29 checks passed
@agjs agjs deleted the chore/deps-lint-tooling-batch branch June 24, 2026 08:17
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