Skip to content

fix: #421 fix(deps): bump the linters group across 1 directory with 19 updates - #429

Draft
ianwremmel-ai-agent wants to merge 1 commit into
dependabot/npm_and_yarn/linters-d616705cecfrom
dependabot-fix/pr-421
Draft

ianwremmel-ai-agent wants to merge 1 commit into
dependabot/npm_and_yarn/linters-d616705cecfrom
dependabot-fix/pr-421

Conversation

@ianwremmel-ai-agent

@ianwremmel-ai-agent ianwremmel-ai-agent commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Automated fix branch for #421 (fix(deps): bump the linters group across 1 directory with 19 updates).

Why #421 is red

Head 10de56167df9cfee797b3a5e8279008762271b33 on dependabot/npm_and_yarn/linters-d616705cec. Failing:

What this PR is

This PR targets the Dependabot branch, not the default branch: merging it re-runs CI on #421, which the automation then merges once green. Opened by the coven Dependabot automation (coven/infrastructure/services/dependabot).

@ianwremmel-ai-agent

ianwremmel-ai-agent commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator Author

Plan

  • Reproduce fix(deps): bump the linters group across 1 directory with 19 updates #421's build failure locally on dde7132
  • Unblock npm ci — drop the stale patches/openapi-typescript+6.7.6.patch
  • Diagnose the 8 make failures behind it
  • Check whether lint can run at all under ESLint 9
  • Land the fix — stopped. ESLint 9 cannot load this repo's config, and the cause is in @ianwremmel/eslint-plugin-ianwremmel@7.0.0, not here. Details in the diagnosis comment.

Nothing pushed: landing the build fixes on their own leaves #421 red, so there is nothing for the automation to merge.

Done.

Resumed 2026-09-08: re-verified the blocker (no new plugin release, config unchanged, main clean of relevant changes). Still nothing to push. Parked.

Resumed again 2026-09-08: re-verified against the published tarball, not the notes — 7.0.0 is still latest and its config and peers are unchanged. Asked @ianwremmel to choose between publishing a 7.0.1 or reraising #421 without the ESLint 9 packages. Reported human-blocked.

Resumed 2026-09-08 after Dependabot rebuilt #421 (base now 4b463a0). The group grew — eslint 9.35 -> 10.10.0, typescript 5.9.2 -> 7.0.2 — and eslint 10 drops eslintrc entirely, so .eslintrc.yml is unreadable and the migration is now larger than a plugin patch release. Plugin still 7.0.0. Still nothing to push; still human-blocked.

@ianwremmel-ai-agent

Copy link
Copy Markdown
Collaborator Author

Stopping: the bump cannot pass CI, and the fix is not in this repo.

The reported failure — build

Two causes, both reproduced locally on dde7132.

  1. npm ci fails in postinstall. patch-package rejects patches/openapi-typescript+6.7.6.patch because the installed version is now 7.9.1. Deleting the stale patch clears it — the patch only added a types export condition, 7.9.1 ships dist/index.d.mts beside dist/index.mjs, and nothing in the repo imports the package.

  2. With npm ci fixed, make fails 8 tasks:

    • 5 x build:typesTS7016: Could not find a declaration file for module 'semver', from node_modules/nx/src/command-line/release/config/version-plans.d.ts. @types/semver was in the tree only as a dependency of @typescript-eslint/utils@6.21.0; v8 dropped it. Needs an explicit @types/semver devDependency.
    • 3 x codegen:openapi — openapi-typescript 7 changes the generated output (232 insertions / 146 deletions across the three src/__generated__/api.ts), no longer applies --prettier-config, and the npm run eslint -- … --ignore-path call chained after it in the codegen command no longer works.

The blocker — lint

lint never ran on #421 because it needs: build. It cannot pass either: ESLint 9 fails to load this repo's config at all.

Error: Failed to load plugin 'babel' declared in
'.eslintrc.yml » plugin:@ianwremmel/ianwremmel/typescript#overrides[0]':
This method cannot be used with flat config. Add your entries directly into the config array.
    at Object.<anonymous> (node_modules/eslint-plugin-babel/rules/new-cap.js:5:40)

@ianwremmel/eslint-plugin-ianwremmel@7.0.0 — the version Dependabot picked, and the newest published — declares peers eslint: >=9.34.0, @typescript-eslint/eslint-plugin: >=8.42.0, eslint-plugin-babel: >=5.3.1, but its typescript config still sets plugins: ['@typescript-eslint', 'babel'] and 'babel/new-cap': 'error'. eslint-plugin-babel@5.3.1 (last released 2019, deprecated in favour of @babel/eslint-plugin) runs new eslint.Linter().getRules() at import time, which throws under ESLint 9. It fails the same way in flat-config mode and in ESLINT_USE_FLAT_CONFIG=false eslintrc mode.

The same config also enables three rules typescript-eslint removed in v8: @typescript-eslint/ban-types, member-delimiter-style, type-annotation-spacing.

There is no 7.0.1 to move to, and pinning the plugin back would undo the bump.

Also outstanding, once ESLint can load

  • @graphql-eslint/eslint-plugin stays at ^3.20.1 while ESLint goes to 9. The ESLint 9 line is v4 (latest 4.4.1) and is flat-config only. It is not in the linters group, so this bump cannot carry it.
  • .eslintrc.yml sets @typescript-eslint/consistent-type-imports at the root; under typescript-eslint 8 that errors on .mjs files, which espree parses. Moving it into the **/*.mts/**/*.ts/**/*.tsx override fixes it.
  • prettier 3.6.2 reformats the TOC list indentation in 35 README.md files — it no longer applies the tabWidth: 4 markdown override to list markers. Mechanical, but has to be committed or diff fails.

What unblocks this

Publish an @ianwremmel/eslint-plugin-ianwremmel that works with the ESLint 9 / typescript-eslint 8 peers it already declares: drop eslint-plugin-babel, drop the three removed rules, ship flat configs. Add @graphql-eslint/eslint-plugin@4 to the linters group so it moves with ESLint. Then let Dependabot rebuild #421.

Everything outside the blocker is small, and I will land it in one pass once the config can load. Adding dependabot-fix-parked.

Done.

@ianwremmel-ai-agent ianwremmel-ai-agent added the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 7, 2026
@ianwremmel-ai-agent

Copy link
Copy Markdown
Collaborator Author

Re-checked on a resumed pass. The blocker has not moved.

  • @ianwremmel/eslint-plugin-ianwremmel@7.0.0 (published 2025-09-02) is still the newest version on npm. There is no 7.0.1.
  • Its src/configs/typescript/index.js still sets plugins: ['@typescript-eslint', 'babel'] and 'babel/new-cap': 'error', and still enables @typescript-eslint/ban-types, member-delimiter-style, and type-annotation-spacing, all removed in typescript-eslint 8. Its peers still require eslint: >=9.34.0 alongside eslint-plugin-babel: >=5.3.1, and eslint-plugin-babel@5.3.1 throws at import time under ESLint 9.
  • main has moved five merges since dde7132, none of them touching .eslintrc.yml, package.json, or the plugin. No merge conflict.

Nothing to push: the build fixes alone still leave lint unable to load its config, so #421 stays red either way.

Leaving this PR in draft with dependabot-fix-parked. It needs a published plugin release that matches the peers it already declares (drop eslint-plugin-babel, drop the three removed rules), plus @graphql-eslint/eslint-plugin@4 added to the linters group so it moves with ESLint. Rebuild #421 after that and this PR can be rerun.

Done.

@ianwremmel-ai-agent

Copy link
Copy Markdown
Collaborator Author

Resumed again on 2026-09-08. Nothing has moved, and I re-checked against the published tarball rather than the earlier notes:

  • @ianwremmel/eslint-plugin-ianwremmel@7.0.0 (2025-09-02) is still the newest publish. No 7.0.1.
  • Its src/configs/typescript/index.js still sets plugins: ['@typescript-eslint', 'babel'] and 'babel/new-cap': 'error'.
  • Its peers still pair eslint: >=9.34.0 with eslint-plugin-babel: >=5.3.1, and eslint-plugin-babel@5.3.1 throws at import time under ESLint 9. So this repo's ESLint config cannot load at all, and lint on fix(deps): bump the linters group across 1 directory with 19 updates #421 cannot pass.

I can't route around it from inside this repo. Pinning the plugin back to 6.2.2 doesn't work either — eslint itself is in the same linters group, and 6.2.2 doesn't run under ESLint 9.

@ianwremmel this needs a call from you:

  1. Publish a 7.0.1 that drops eslint-plugin-babel and the three rules typescript-eslint 8 removed (ban-types, member-delimiter-style, type-annotation-spacing), then rebuild fix(deps): bump the linters group across 1 directory with 19 updates #421. I'll land the remaining build fixes — the stale openapi-typescript patch, the missing @types/semver, the regenerated OpenAPI output, the consistent-type-imports override, and the prettier README reflow — in one pass after that.
  2. Or close fix(deps): bump the linters group across 1 directory with 19 updates #421 so Dependabot re-raises the group without eslint, @typescript-eslint/*, and the plugin, and everything else in it can move now.

Parked until one of those happens. Keeping dependabot-fix-parked on.

@ianwremmel-ai-agent

ianwremmel-ai-agent commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

@ianwremmel this PR is blocked on a human decision and dispatch can't proceed without it:

ESLint 9 config cannot load until eslint-plugin-ianwremmel publishes a 7.0.1 that drops the eslint-plugin-babel dependency, or #421 is closed.

Please either publish that release or close #421 — a comment, review, reaction, or push here will requeue this PR automatically.

@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/linters-d616705cec branch from dde7132 to 4b463a0 Compare September 8, 2026 12:58
@ianwremmel-ai-agent ianwremmel-ai-agent removed the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 8, 2026
@ianwremmel-ai-agent ianwremmel-ai-agent added the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 8, 2026
@ianwremmel-ai-agent

Copy link
Copy Markdown
Collaborator Author

Dependabot rebuilt #421 today (base force-pushed at 12:58 UTC, now 4b463a0). The group got bigger, not smaller, and the blocker is still there.

What changed in the rebuild

Package Diagnosed before Now
eslint 9.35.0 10.10.0
typescript 5.9.2 7.0.2
@babel/preset-typescript 7.27.1 8.0.1
eslint-plugin-react-hooks 5.2.0 7.1.1
json-schema-to-typescript 15.0.4 16.0.0
@graphql-codegen/typescript 5.0.0 6.1.0
@typescript-eslint/* 8.44.0 8.69.0

The original blocker has not moved

@ianwremmel/eslint-plugin-ianwremmel@7.0.0 (published 2025-09-02) is still the newest version. I checked the published tarball again: it ships only eslintrc configs under src/configs/, exposes no flat config, and still declares eslint-plugin-babel: ">=5.3.1" as a peer. eslint-plugin-babel@5.3.1 throws at import time under ESLint 9+.

ESLint 10 makes it larger

eslint@10.10.0 has no @eslint/eslintrc in its dependencies and no ESLINT_USE_FLAT_CONFIG escape hatch — eslintrc is gone, not deprecated. This repo's .eslintrc.yml will not be read at all, and every shared config it extends is eslintrc-only:

  • plugin:@ianwremmel/ianwremmel/modern, .../typescript
  • plugin:workspaces/recommended
  • plugin:lodash/recommended
  • plugin:@graphql-eslint/schema-recommended (still pinned at ^3.20.1, outside this group)

So option 1 from my last comment is no longer "publish a 7.0.1 that drops eslint-plugin-babel". It is: ship flat configs from the plugin, then migrate this repo to eslint.config.mjs and find flat-config replacements for the other four. That drops the shared @ianwremmel config this repo is built on, which is your call, not mine.

typescript@7.0.2 is a separate question of the same size — it is the native compiler rewrite, not a point release, and it lands on every build:types task in the repo.

Still needs a decision from you

@ianwremmel, same two options, re-costed:

  1. Do the ESLint 10 flat-config migration — plugin release first, then this repo. I can do the repo half once the plugin can be consumed, along with the build fixes I already have (the stale openapi-typescript patch, the missing @types/semver, the regenerated OpenAPI output, the consistent-type-imports override, the prettier README reflow). typescript@7 should probably be split out of the group and handled on its own.
  2. Close fix(deps): bump the linters group across 1 directory with 19 updates #421 so Dependabot re-raises the group without eslint, @typescript-eslint/*, typescript, and the plugin. Everything else in it can move today.

Parked, dependabot-fix-parked stays on. A comment, review, reaction, or push here requeues this PR.

@ianwremmel-ai-agent
ianwremmel-ai-agent removed this pull request from stack #430 September 9, 2026 04:39
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/linters-d616705cec branch from 4b463a0 to 8a23a4d Compare September 10, 2026 13:00
@ianwremmel-ai-agent ianwremmel-ai-agent removed the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 10, 2026
@ianwremmel-ai-agent ianwremmel-ai-agent added the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 10, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/linters-d616705cec branch from 8a23a4d to 10de561 Compare September 14, 2026 12:58
@ianwremmel-ai-agent ianwremmel-ai-agent removed the dependabot-fix-parked Dependabot fix agent stopped on purpose; the sweep leaves it alone. label Sep 14, 2026
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