-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Remaining dependency updates from #4668
How to Contribute (Read Carefully)
- Pick a package
- Create a sub-issue: For a single package, create a new issue with your implementation plan to address the blocker
- Discuss: Let maintainers review your implementation plan on your 'sub-issue'
- Create PR: Only after the maintainers review create and link your PR to both this issue and your sub-issue
Note for New Contributors:
Low-effort items (Cypress, cssnano) are good entry points.
Description
Issue #4668 addressed several outdated dependencies. The following updates were completed:
- Babel packages (chore(deps): update @babel packages to 7.28.5 #5149)
- Gulp build tools (chore(deps): update gulp build tools #5200)
- cssnano (chore(deps): update cssnano and remove unused clean-css #5256)
- ESLint (chore(deps): update eslint to 8.57.1 and remove unused packages #5292)
However, several packages require more significant changes and were deferred. This issue tracks those remaining updates and provides implementation options for contributors.
Remaining Updates
1. Jest 29 → 30
Current: 29.7.0 | Latest: 30.x
Blocker: Jest 30 bundles JSDOM 26 which breaks window.location mocking in tests.
2. Cypress 14 → 15
Current: 14.5.4 | Latest: 15.x
Blocker: Cypress 15 requires Node.js 20.1+. CI currently uses Node 18.x (now EOL).
3. jQuery 2.1.4 → 3.7.1 (Security)
Current: 2.1.4 in index.html | Latest: 3.7.1 (already in lib/)
Blocker: Search functionality depends on jQuery loading synchronously (without defer). Past attempts to defer jQuery loading broke search (#4955, #4987 fixed this by reverting). Upgrading jQuery may introduce similar timing/compatibility issues.
4. gulp-prettier 3 → 6
Current: 3.0.0 | Latest: 6.x
Blocker: gulp-prettier 6 requires ES Modules. gulpfile.js uses CommonJS.
5. ESLint 8 → 9
Current: 8.57.1 (via #5292) | Latest: 9.x
Blocker: ESLint 9 requires "flat config" format.
6. cssnano 6 → 7
Current: 6.1.2 | Latest: 7.x
Blocker: cssnano 7 requires Node.js 18.12+.
7. electron 39 → 40
Current: 39.2.7 | Latest: 40.x
Notes: Major version upgrade, needs thorough testing of Electron app functionality.
8. express 4 → 5
Current: 4.22.1 | Latest: 5.x
Notes: Major version with API changes.