Bump eslint-plugin-vue from 9.33.0 to 10.8.0#14494
Bump eslint-plugin-vue from 9.33.0 to 10.8.0#14494dependabot[bot] wants to merge 1 commit intodevelopfrom
Conversation
Build Artifacts
Smoke test screenshot |
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 9.33.0 to 10.8.0. - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases) - [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md) - [Commits](vuejs/eslint-plugin-vue@v9.33.0...v10.8.0) --- updated-dependencies: - dependency-name: eslint-plugin-vue dependency-version: 10.8.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
b017fc2 to
6f2acbb
Compare
rtibblesbot
left a comment
There was a problem hiding this comment.
Dependency Update Review
Package: eslint-plugin-vue 9.33.0 → 10.8.0
Semver risk: Major
Dependency type: devDependency (linting toolchain — eslint-plugin-kolibri and kolibri-format)
CI status: Failing (lint + frontend tests)
Changelog Analysis
Sources consulted:
Breaking changes:
- Internal module paths removed:
eslint-plugin-vue/lib/utilsis no longer a public export in v10. This is the module path used by Kolibri's custom ESLint plugin. - Node.js version requirement raised:
^18.18.0 || ^20.9.0 || >=21.1.0(was^14.17.0 || >=16.0.0). - New peer dependency:
vue-eslint-parser@^10.0.0is now a required peer (the lockfile resolves it to the existing v9.4.3, which may itself be incompatible — the peerDep spec requires^10.0.0). - ESLint minimum raised:
^8.57.0 || ^9.0.0 || ^10.0.0(was^6.2.0).
Other notable changes (v10.0–10.8):
- New rules:
vue/no-literals-in-template,vue/no-undef-directives,vue/no-duplicate-class-names - ESLint v10 support added
- Various false-positive fixes and new rule options
Compatibility Assessment
- Project uses affected APIs: Yes — 11 files in
packages/eslint-plugin-kolibri/lib/importeslint-plugin-vue/lib/utils, which no longer exists in v10. - Peer dependency changes: Yes —
vue-eslint-parser@^10.0.0is now required, but the lockfile resolves to v9.4.3. - Code changes required: Yes — all 11 usages of
require('eslint-plugin-vue/lib/utils')must be migrated to v10's public API. - Prior failed attempts: No.
CI Evidence
Lint failure: Every .vue file triggers Error: Cannot find module 'eslint-plugin-vue/lib/utils' because Kolibri's custom rules depend on this removed internal path.
Frontend test failure: packages/eslint-plugin-kolibri/tests/lib/rules/vue-no-rtl-breaking-inline-styles.spec.js fails with the same Cannot find module 'eslint-plugin-vue/lib/utils' error.
Affected files (all in packages/eslint-plugin-kolibri/lib/):
utils.jsrules/vue-watch-no-string.jsrules/vue-string-objects-formatting.jsrules/vue-no-unused-vuex-properties.jsrules/vue-no-unused-vuex-methods.jsrules/vue-no-unused-translations.jsrules/vue-no-undefined-string-uses.jsrules/vue-component-require-img-src.jsrules/vue-component-block-tag-newline.jsrules/vue-no-rtl-breaking-inline-styles.jsrules/vue-component-block-padding.js
Recommendation
REQUEST_CHANGES — This major version bump removes eslint-plugin-vue/lib/utils, an internal module path that 11 custom ESLint rule files depend on. The PR contains no code migration, so both linting and tests are broken. This upgrade requires investigating eslint-plugin-vue v10's public API for an equivalent to the utils module, updating all 11 import sites, and potentially upgrading vue-eslint-parser to v10 to satisfy the new peer dependency.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Reviewed the pull request diff checking for:
- Correctness: bugs, edge cases, undocumented behavior, resource leaks, hardcoded values
- Design: unnecessary complexity, naming, readability, comment accuracy, redundant state
- Architecture: duplicated concerns, minimal interfaces, composition over inheritance
- Testing: behavior-based assertions, mocks only at hard boundaries, accurate coverage
- Completeness: missing dependencies, unupdated usages, i18n, accessibility, security
- Principles: DRY (same reason to change), SRP, Rule of Three (no premature abstraction)
- Checked CI status and linked issue acceptance criteria
- For UI changes: inspected screenshots for layout, visual completeness, and consistency
| }, | ||
| "dependencies": { | ||
| "eslint-plugin-vue": "^9.33.0", | ||
| "eslint-plugin-vue": "^10.8.0", |
There was a problem hiding this comment.
blocking: This major version bump breaks Kolibri's custom ESLint plugin. eslint-plugin-vue v10 removed the internal lib/utils module path, which is imported by 11 files in packages/eslint-plugin-kolibri/lib/. Both CI linting and frontend tests fail with Cannot find module 'eslint-plugin-vue/lib/utils'.
Additionally, v10 requires vue-eslint-parser@^10.0.0 as a peer dependency, but the lockfile resolves to v9.4.3.
This upgrade needs a companion code migration:
- Find the v10-equivalent public API for the utils that
eslint-plugin-kolibriuses (likelyeslint-plugin-vue/lib/utilswas restructured or re-exported differently) - Update all 11 import sites
- Upgrade
vue-eslint-parserto v10 to satisfy the peer dependency
Bumps eslint-plugin-vue from 9.33.0 to 10.8.0.
Release notes
Sourced from eslint-plugin-vue's releases.
... (truncated)
Changelog
Sourced from eslint-plugin-vue's changelog.
... (truncated)
Commits
4b92896Version Packages (#3023)2523927feat: allow ESLint v10 as peer dependency (#2962)57058cefeat(define-props-destructuring): addonly-when-assignedoption (#3009)72fdd6eFix release workflow (#3022)69604f7feat(no-async-in-computed-properties): add missing Promise methods (#3020)8bfb795feat(valid-v-for): addallowEmptyAliasoption (#3011)9cb3e87feat(attributes-order): addignoreVBindObjectoption (#3012)598d30fFix deploy preview (#3021)99dcf29docs(no-unused-properties): complete options list (#3018)138db47fix(no-unused-vars): detect slot props used as component tags (#3008)Maintainer changes
This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for eslint-plugin-vue since your current version.