Skip to content

chore(deps): upgrade all dependencies (2026-04-15)#6

Open
devin-ai-integration[bot] wants to merge 13 commits into
mainfrom
deps/upgrade-all-2026-04-15
Open

chore(deps): upgrade all dependencies (2026-04-15)#6
devin-ai-integration[bot] wants to merge 13 commits into
mainfrom
deps/upgrade-all-2026-04-15

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Apr 15, 2026

Summary

Upgrades all 15 outdated npm dependencies across patch, minor, and major versions. Upgrades were applied in batched commits (patch → minor → major one-at-a-time) for easy bisecting/revert.

Patch upgrades

Package Old New
@testing-library/jest-dom 5.16.3 5.17.0
@testing-library/react 12.1.4 12.1.5
react-countdown 2.3.2 2.3.6
react-transition-group 4.4.2 4.4.5
react-scripts 5.0.0 5.0.1
lint-staged 12.3.7 12.5.0

Minor upgrades

Package Old New
classnames 2.3.1 2.5.1
react-icons 4.3.1 4.12.0
sass 1.49.9 1.99.0

Major upgrades

Package Old New Notes
@testing-library/jest-dom 5.17.0 6.9.1
@testing-library/user-event 13.5.0 14.6.1
@testing-library/react 12.1.5 16.3.2 Requires React 18+
husky 7.0.4 9.1.7 Hook format + prepare script changed
lint-staged 12.5.0 15.5.2
prettier 2.6.1 3.8.3 Trailing commas in args, SCSS reformatting
react 17.0.2 18.3.1 createRoot migration (see note below)
react-dom 17.0.2 18.3.1 createRoot migration (see note below)
react-icons 4.12.0 5.6.0
web-vitals 2.1.4 5.2.0 getFIDonINP, getter → observer API

Why React 18 instead of React 19

React 19 was initially attempted but react-transition-group v4.4.5 (the latest release) uses ReactDOM.findDOMNode, which was fully removed in React 19 — causing a blank-screen crash whenever modals open. Since react-transition-group has no React 19-compatible release, React 18.3.1 was chosen as the upgrade target. findDOMNode is deprecated-but-functional in React 18, so modals work correctly (with console deprecation warnings in StrictMode).

Skipped packages

None — all outdated packages were successfully upgraded.

Source code changes required

  • src/index.js: Migrated from ReactDOM.render() to createRoot() API (required for React 18+)
  • src/reportWebVitals.js: Replaced deprecated getCLS/getFID/getFCP/getLCP/getTTFB with onCLS/onINP/onFCP/onLCP/onTTFB (web-vitals v5 observer API)
  • .husky/pre-commit: Simplified for husky v9 (removed shell shim)
  • package.json: prepare script changed from husky install to husky
  • Several source files: Prettier 3 auto-reformatting (trailing commas in multi-line function args, multi-line SCSS transition properties)

Validation results

  • Lint (prettier --check): ✅ Pass
  • Build (react-scripts build): ✅ Pass
  • Tests: ❌ Pre-existing failure on main branch (useAlert hook destructure error in App.test.jsx) — not caused by this PR
  • Frontend manual verification: ✅ App loads, all modals work, keyboard input and word submission with color-coded feedback all functional

Frontend verification video

Frontend walkthrough recording

View original video (rec-ba6a6280f2c04bc3a5d0e9d1039c5a2c-edited.mp4)

Review & Testing Checklist for Human

  • Play a game of Wordle end-to-end. React 17→18 is a major version jump. While build passes and manual testing showed the game working, verify that alert/toast animations, modal transitions, and keyboard input behave identically to the pre-upgrade version.
  • Review the prettier reformatting diffs in App.jsx, words.js, useOnClickOutside.js, _transitionStyles.scss to confirm they are purely cosmetic trailing-comma / multi-line changes with no accidental edits.
  • Confirm the husky pre-commit hook fires correctly on a fresh clone (npm install should run husky via prepare, then committing a file should trigger npx lint-staged).
  • Decide on the react-transition-group deprecation path. Console shows findDOMNode deprecation warnings in StrictMode. This library blocks upgrading to React 19. Consider replacing it with framer-motion or CSS-only transitions in a follow-up PR.
  • Fix the pre-existing test failure (App.test.jsxuseAlert hook) separately so the test suite can serve as a regression gate.

Notes

  • The test suite was already broken on main before any upgrades, so automated regression testing was not possible for these changes. Manual frontend verification is essential.
  • react-scripts pinning was preserved as exact (5.0.1 without caret) to match the original convention. All other deps use caret ranges as before.
  • Sass build emits "legacy JS API" deprecation warnings from sass-loader — these are cosmetic and do not affect functionality.

Link to Devin session: https://app.devin.ai/sessions/fa477c8a5cac4f2a8d3f01a56ddfd747
Requested by: @dr-phil


Open with Devin

devin-ai-integration Bot and others added 12 commits April 15, 2026 09:08
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

…transition-group compatibility

Co-Authored-By: Phil Bedford <phil.bedford@cognition.ai>
Copy link
Copy Markdown
Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

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