Skip to content

Conversation

@Gudahtt
Copy link
Member

@Gudahtt Gudahtt commented Dec 3, 2025

Note

Publishes v15.0.0 with stricter JSDoc requirements, escalates select rules to errors, updates TypeScript rules/peer deps, and bumps peer deps across all configs.

  • Base (@metamask/eslint-config):
    • BREAKING: Expand jsdoc/require-jsdoc coverage (arrow functions, classes, TS enums/interfaces/types, methods, etc.).
    • BREAKING: Promote several promise/* rules from warn to error.
  • TypeScript (@metamask/eslint-config-typescript):
    • BREAKING: Require typescript-eslint@>=8.39.0; switch to import-x/consistent-type-specifier-style preferring top-level type imports.
    • Disable @typescript-eslint/no-unnecessary-type-arguments, promise/valid-params, and import-x/no-duplicates; loosen naming for object literal properties; disable jsdoc/check-indentation.
    • Widen typescript peer range to all 5.x; fix issues with type-import grouping and TSDoc indentation.
  • Test configs:
    • Jest: Bump peer on base to ^15.0.0; promote select jest/* rules to error; widen typescript peer to 5.x.
    • Vitest: Version aligned to 15.0.0; bump peer on base to ^15.0.0.
  • Environment configs:
    • Browser, CommonJS, Node.js, Mocha: Bump versions to 15.0.0 and peer on base to ^15.0.0.
  • Repo:
    • Root version to 15.0.0; update changelogs and comparison links.

Written by Cursor Bugbot for commit 5eaa19a. This will update automatically on new commits. Configure here.

@Gudahtt
Copy link
Member Author

Gudahtt commented Dec 3, 2025

I've tested this in core, and it generally seems OK except that the auto-fixer for jsdoc/require-jsdoc is awful and had to be disabled.

The auto-fixer for import-x/consistent-type-specifier-style had some issues as well, but they were manageable (when extracting inline types to be top-level, it failed to consolidate the new top-level type import with other per-existing top-level type imports).

@Gudahtt Gudahtt marked this pull request as ready for review December 3, 2025 15:26
@Gudahtt Gudahtt requested a review from a team as a code owner December 3, 2025 15:26
Copy link
Contributor

@cryptodev-2s cryptodev-2s left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! One question though: without prior knowledge of how versioning works in this repo, it’s easy to miss the impact of a major bump, especially since we’re using workspace-based versioning (e.g. "@metamask/eslint-config": "workspace:^"). Should we consider using version sync like we do in core, so that major changes are more visible and coordinated across packages?

@Gudahtt
Copy link
Member Author

Gudahtt commented Dec 3, 2025

Good point, I've documented that problem here: #432

@Gudahtt Gudahtt merged commit 0b8cf6d into main Dec 3, 2025
26 checks passed
@Gudahtt Gudahtt deleted the release/15.0.0 branch December 3, 2025 16:51
Gudahtt added a commit to MetaMask/core that referenced this pull request Dec 3, 2025
Update all ESLint config packages from v14.x to v15. These updates introduce
some helpful new rules, and loosen/disable a few rules that were causing us
problems.

Details here: MetaMask/eslint-config#431
Gudahtt added a commit to MetaMask/core that referenced this pull request Dec 3, 2025
Update all ESLint config packages from v14.x to v15. These updates introduce
some helpful new rules, and loosen/disable a few rules that were causing us
problems.

Details here: MetaMask/eslint-config#431
Gudahtt added a commit to MetaMask/core that referenced this pull request Dec 3, 2025
## Explanation

Update all ESLint config packages from v14.x to v15. These updates
introduce some helpful new rules, and loosen/disable a few rules that
were causing us problems.

Details here: MetaMask/eslint-config#431

Most of the changes are due to the newly introduced
`import-x/consistent-type-specifier-style ` rule. The majority of the
changes were from running `yarn lint:fix`, but I did make [one
commit](735caaf)
to consolidate some duplicate import lines that the auto-fixer added.

## References

N/A

## Checklist

- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs)
- [ ] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Bumps ESLint config packages to v15 and updates imports across the
repo to the new `import type { ... }` style, with minor ESLint rule
tweaks (jsdoc) and lockfile updates.
> 
> - **Tooling/Config**:
> - Upgrade `@metamask/eslint-config*` packages to v15 in `package.json`
and `yarn.lock`.
> - Tweak `eslint.config.mjs`: keep `jsdoc/require-jsdoc` and related
jsdoc rules disabled; update comments.
> - **Codebase-wide refactor (lint autofix)**:
> - Conform to `import-x/consistent-type-specifier-style`: switch to
`import type { ... }` for type-only imports; separate value vs type
imports across packages.
>   - Minor import consolidations/reorders in tests and sources.
> - **No functional changes**: Only lint-driven import/style updates.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
735caaf. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
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.

3 participants