Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 78 additions & 78 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,123 +34,123 @@
"node-renderer": "node renderer/node-renderer.js"
},
"dependencies": {
"@babel/cli": "^7.21.0",
"@babel/cli": "^7.29.7",
"@babel/core": "^7.29.7",
"@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/runtime": "^7.17.9",
"@glennsl/rescript-fetch": "^0.2.0",
"@glennsl/rescript-json-combinators": "^1.2.1",
"@babel/plugin-transform-runtime": "^7.29.7",
"@babel/preset-env": "^7.29.7",
"@babel/runtime": "^7.29.7",
"@glennsl/rescript-fetch": "^0.3.0",
"@glennsl/rescript-json-combinators": "^1.5.1",
"@hotwired/stimulus": "^3.2.1",
"@hotwired/stimulus-webpack-helpers": "^1.0.1",
"@hotwired/turbo-rails": "^7.3.0",
"@rails/actioncable": "7.0.5",
"@rescript/core": "^0.5.0",
"@rescript/react": "^0.11.0",
"@rspack/cli": "2.0.4",
"@rspack/core": "2.0.4",
"@swc/core": "^1.13.5",
"@hotwired/turbo-rails": "^8.0.23",
"@rails/actioncable": "8.1.400",
"@rescript/core": "^1.6.1",
"@rescript/react": "^0.15.0",
"@rspack/cli": "2.2.8",
"@rspack/core": "2.2.8",
"@swc/core": "^1.16.13",
"ajv": "^8.20.0",
"autoprefixer": "^10.4.14",
"axios": "^0.34.0",
"autoprefixer": "^10.6.1",
"axios": "^1.20.0",
"classnames": "^2.3.2",
"compression-webpack-plugin": "10.0.0",
"css-loader": "^6.8.1",
"css-minimizer-webpack-plugin": "^5.0.1",
"compression-webpack-plugin": "12.0.0",
"css-loader": "^7.1.5",
"css-minimizer-webpack-plugin": "^8.0.0",
"es5-shim": "^4.6.7",
"estraverse": "^5.3.0",
"expose-loader": "^4.0.0",
"expose-loader": "^5.0.1",
"file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0",
"immutable": "^4.3.9",
"imports-loader": "^4.0.0",
"html-webpack-plugin": "^5.6.8",
"immutable": "^5.1.9",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Replace the removed Immutable default imports

Immutable 5 removed its default export, but the comments application still uses import Immutable from 'immutable' in its reducers, stores, and components (for example, commentsReducer.js and commentsStore.js). When these packs are compiled, the imports either fail export validation or resolve to undefined, preventing Redux state initialization; migrate them to named imports or import * as Immutable, or retain Immutable 4.

Useful? React with 👍 / 👎.

"imports-loader": "^5.0.0",
"intl": "^1.2.5",
"jquery": "^3.2.1",
"jquery": "^4.0.0",
"jquery-ujs": "^1.2.2",
"js-yaml": "^4.3.2",
"loader-utils": "^1.1.0",
"js-yaml": "^5.4.3",
"loader-utils": "^3.3.1",
"lodash": "^4.18.1",
"marked": "^5.1.0",
"marked-gfm-heading-id": "^3.0.5",
"marked-mangle": "^1.1.0",
"marked": "^18.1.0",
"marked-gfm-heading-id": "^4.1.4",
"marked-mangle": "^1.1.14",
"node-uuid": "^1.4.8",
"postcss": "^8.5.28",
"postcss-loader": "7.3.3",
"postcss-preset-env": "^8.5.0",
"postcss-loader": "8.2.1",
"postcss-preset-env": "^11.6.1",
"prop-types": "^15.8.1",
"react": "19.2.8",
"react-dom": "19.2.8",
"react-error-boundary": "^4.1.2",
"react-intl": "^6.4.4",
"react": "19.3.0",
"react-dom": "19.3.0",
"react-error-boundary": "^6.1.6",
"react-intl": "^12.1.4",
"react-on-rails-pro": "17.2.0-rc.2",
"react-on-rails-pro-node-renderer": "17.2.0-rc.2",
"react-on-rails-rsc": "19.3.0",
"react-redux": "^8.1.0",
"react-router": "^6.30.6",
"react-router-dom": "^6.30.6",
"react-redux": "^9.3.0",
"react-router": "^8.4.0",
"react-router-dom": "^7.18.4",
"react-router-redux": "^4.0.8",
"react-server-dom-webpack": "19.2.8",
"react-server-dom-webpack": "19.3.0",
"react-transition-group": "4.4.5",
"redux": "^4.2.1",
"redux-thunk": "^2.2.0",
"rescript": "^11.1.4",
"redux": "^5.0.1",
"redux-thunk": "^3.1.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Switch the stores to redux-thunk's named export

Both commentsStore.js and routerCommentsStore.js still use import thunkMiddleware from 'redux-thunk', but redux-thunk 3.1 removed its default export and exposes thunk as a named export. Consequently the registered client and SSR stores cannot supply a valid middleware to applyMiddleware, preventing the comments applications from initializing; update those imports as part of this major-version bump.

Useful? React with 👍 / 👎.

"rescript": "^12.3.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Migrate the ReScript build before upgrading to v12

Every production/test build runs yarn res:build, but this repository still uses bsconfig.json and invokes the v11-style rescript build command. The ReScript v12 migration guide requires renaming and updating the configuration and replacing rescript build with rescript, so CI stops during the ReScript step before packs can be generated. Either retain ReScript 11 or migrate the config and package scripts with this upgrade.

Useful? React with 👍 / 👎.

"rescript-react-on-rails": "1.1.0",
"resolve-url-loader": "^2.2.0",
"sanitize-html": "~2.17.7",
"sass": "^1.58.3",
"sass-loader": "^13.3.2",
"resolve-url-loader": "^5.0.0",
"sanitize-html": "~2.18.0",
"sass": "^1.105.1",
"sass-loader": "^17.0.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Raise the declared Node floor for sass-loader 17

This project still advertises node: ">=22", which includes Node 22.0–22.10, while sass-loader 17 requires Node 22.11.0 or newer. Yarn Classic enforces dependency engine ranges during installation, so users following the declared engine contract on those Node releases cannot install the application; update the project engine constraint to match the new loader requirement or remain on sass-loader 16.

Useful? React with 👍 / 👎.

"sass-resources-loader": "^2.2.5",
"shakapacker": "10.3.2",
"stimulus": "^3.0.1",
"style-loader": "^3.3.1",
"swc-loader": "^0.2.6",
"tailwindcss": "^3.3.3",
"style-loader": "^4.0.0",
"swc-loader": "^0.2.7",
"tailwindcss": "^4.3.3",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Migrate the PostCSS setup before enabling Tailwind 4

Shakapacker processes application.css through postcss.config.js, which still registers tailwindcss directly and uses the v3 tailwindcss/base, components, and utilities imports. In v4, the PostCSS plugin moved to @tailwindcss/postcss, but that package is not installed here, so asset compilation fails as soon as PostCSS loads Tailwind. Keep v3 or include the required PostCSS and CSS migration.

Useful? React with 👍 / 👎.

"terser-webpack-plugin": "5",
"turbolinks": "^5.2.0",
"url-loader": "^4.1.1",
"webpack": "5",
"webpack-assets-manifest": "5",
"webpack-cli": "5",
"webpack-merge": "5"
"webpack-assets-manifest": "6",
"webpack-cli": "7",
"webpack-merge": "6"
},
"devDependencies": {
"@babel/eslint-parser": "^7.16.5",
"@babel/preset-react": "^7.18.6",
"@rspack/dev-server": "^2.0.4",
"@rspack/plugin-react-refresh": "2.0.0",
"@tailwindcss/typography": "^0.5.10",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@webpack-cli/serve": "^2.0.5",
"babel-jest": "^29.5.0",
"body-parser": "^1.20.8",
"eslint": "^8.35.0",
"eslint-config-prettier": "^8.6.0",
"@babel/eslint-parser": "^7.29.9",
"@babel/preset-react": "^7.29.7",
"@rspack/dev-server": "^2.2.1",
"@rspack/plugin-react-refresh": "2.0.2",
"@tailwindcss/typography": "^0.5.20",
"@testing-library/dom": "^10.4.2",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.3",
"@webpack-cli/serve": "^3.0.1",
"babel-jest": "^30.5.2",
"body-parser": "^2.3.0",
"eslint": "^10.12.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add a flat configuration before upgrading to ESLint 10

The lint workflow invokes yarn eslint, while the repository only provides .eslintrc and .eslintignore; there is no eslint.config.*. ESLint's v10 migration guide states that the old configuration format is no longer supported, so the lint job exits without loading the project's rules or ignore patterns. Migrate the configuration first or keep ESLint on a compatible major.

Useful? React with 👍 / 👎.

"eslint-config-prettier": "^10.1.8",
"eslint-config-shakacode": "^19.0.0",
"eslint-import-resolver-webpack": "^0.13.2",
"eslint-import-resolver-webpack": "^0.13.11",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.2",
"eslint-plugin-jest": "^29.16.6",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-prettier": "^5.5.6",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-hooks": "^7.1.1",
"estraverse-fb": "^1.3.2",
"express": "^4.18.2",
"express": "^5.2.1",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.5.0",
"jest-environment-jsdom": "^30.2.0",
"mini-css-extract-plugin": "^2.7.2",
"jest": "^30.5.2",
"jest-environment-jsdom": "^30.5.2",
"mini-css-extract-plugin": "^2.10.2",
"patch-package": "^8.0.0",
"preload-webpack-plugin": "^3.0.0-alpha.1",
"prettier": "^2.2.1",
"prettier-eslint-cli": "^7.1.0",
"react-refresh": "^0.14.0",
"prettier": "^3.9.9",
"prettier-eslint-cli": "^9.2.1",
"react-refresh": "^0.19.0",
"react-transform-hmr": "^1.0.4",
"regenerator-runtime": "^0.13.11",
"regenerator-runtime": "^0.14.1",
"rspack-manifest-plugin": "^5.2.2",
"typescript": "^5.1.3",
"webpack-dev-server": "^4.11.1"
"typescript": "^7.0.2",
"webpack-dev-server": "^6.0.0"
},
"browser": {
"fs": false
Expand Down
Loading
Loading