chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide#223
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-paritylint-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 CI —lint:metafails 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):
apps/ui (#221):
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
bun run check(typecheck + lint + lint:meta — no violations + knip) ✅bun run check(lint + lint:meta + format:check + typecheck + knip) ✅Part 2 — Dependabot config (prevents recurrence)
.github/dependabot.yml:apps/apiandapps/uiwere separate bun update configs, each with its ownlintgroup — 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-directorydev-toolinggroup 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