-
Notifications
You must be signed in to change notification settings - Fork 2k
fix(deps): update redux-related packages (major) #85379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Link to live branch is being generated... |
f824ce6 to
7d0d36f
Compare
e421929 to
7851f4e
Compare
f4ce1a2 to
2e17f97
Compare
b4e9af6 to
127e0eb
Compare
127e0eb to
a19b336
Compare
136a6ff to
f3e07d7
Compare
ec4e4b0 to
5350f53
Compare
According to docs (https://redux.js.org/usage/migrations/migrating-rtk-2): ``` createStore Deprecation In Redux 4.2.0, we marked the original createStore method as @deprecated. Strictly speaking, this is not a breaking change, nor is it new in 5.0, but we're documenting it here for completeness. This deprecation is solely a visual indicator that is meant to encourage users to migrate their apps from legacy Redux patterns to use the modern Redux Toolkit APIs. The deprecation results in a visual strikethrough when imported and used, like createStore, but with no runtime errors or warnings. createStore will continue to work indefinitely, and will not ever be removed. But, today we want all Redux users to be using Redux Toolkit for all of their Redux logic. To fix this, there are three options: Follow our strong suggestion to switch over to Redux Toolkit and configureStore Do nothing. It's just a visual strikethrough, and it doesn't affect how your code behaves. Ignore it. Switch to using the legacy_createStore API that is now exported, which is the exact same function but with no @deprecated tag. The simplest option is to do an aliased import rename, like import { legacy_createStore as createStore } from 'redux' ```
This reverts commit c190565.
|
This PR modifies the release build for the following Calypso Apps: For info about this notification, see here: PCYsg-OT6-p2
To test WordPress.com changes, run |
|
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: App Entrypoints (~207 bytes removed 📉 [gzipped]) DetailsCommon code that is always downloaded and parsed every time the app is loaded, no matter which route is used. Sections (~2233 bytes added 📈 [gzipped]) DetailsSections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. Async-loaded Components (~1079 bytes added 📈 [gzipped]) DetailsReact components that are loaded lazily, when a certain part of UI is displayed for the first time. Legend What is parsed and gzip size?Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Generated by performance advisor bot at iscalypsofastyet.com. |
Otherwise I'm getting a build error on conflicting dependencies: 15:05:37 #14 2.168 ➤ YN0060: │ redux is listed by your project with version 4.2.1, which doesn't satisfy what @automattic/sites (pe7e2c) and other dependencies request (^5.0.1). 15:05:37 #14 2.168 ➤ YN0060: │ redux is listed by your project with version 5.0.1, which doesn't satisfy what @automattic/design-picker (pf8e6b) and other dependencies request (^4.2.1).
This reverts commit 6a99d86.
|
I've got this working locally, but the docker build is failing: There's no direct calypso dependency on Running So, I'm at a loss on how to move forward. |
|
I created a PR in Gutenberg to upgrade Redux to v5.0.1, it's one of things that could help: WordPress/gutenberg#66966 |
Awesome, @jsnajdr. Thanks! |
|
Even after updating |
This PR contains the following updates:
^8.1.3->^9.1.2^4.2.1->^5.0.1^2.4.2->^3.1.0Release Notes
reduxjs/react-redux (react-redux)
v9.1.2Compare Source
This bugfix release removes the no-longer-necessary peer dependency on
react-native, and tweaks a few TS types for compat with the upcoming React 19 release.Changes
React Native Peer Dependency Removed
We've always had an awkward peer dependency on both ReactDOM and React Native, because of the need to import the
unstable_batchedUpdatesAPI directly from each reconciler. That's part of what led to the sequence of 9.x patch releases to deal with RN compat.As of 9.0.3, we dropped the batching imports completely, since React 18 now batches by default. That means we didn't even have any remaining imports from
react-native.Meanwhile, React 18.3 just came out, but so did React Native 0.74. RN 0.74 still requires React 18.2.
This caused NPM users to have installation failures when trying to use React-Redux:
We no longer need to list RN as a peer dep, and dropping that also fixes the NPM installation issues as well.
What's Changed
useRefusages to be called with an explicit argument ofundefined. by @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2164JSXglobal namespace withReact.JSXby @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2163Full Changelog: reduxjs/react-redux@v9.1.1...v9.1.2
v9.1.1Compare Source
This bugfix release fixes an issue with
connectand React Native caused by changes to our bundling setup in v9. Nestedconnectcalls should work correctly now.What's Changed
Equalsconstraint into an intersection type. by @DanielRosenwasser in https://github.com/reduxjs/react-redux/pull/2123useIsomorphicLayoutEffectusage in React Native environments by @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2156Full Changelog: reduxjs/react-redux@v9.1.0...v9.1.1
v9.1.0Compare Source
This minor release adds a new syntax for pre-typing hooks.
.withTypesPreviously, the approach for "pre-typing" hooks with your app settings was a little varied. The result would look something like the below:
React Redux v9.1.0 adds a new
.withTypesmethod to each of these hooks, analogous to the.withTypesmethod found on Redux Toolkit'screateAsyncThunk.The setup now becomes:
What's Changed
hook.withTypes<RootState>()method by @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2114New Contributors
Full Changelog: reduxjs/react-redux@v9.0.4...v9.1.0
v9.0.4Compare Source
This bugfix release updates the React Native peer dependency to be
>= 0.69, to better reflect the need for React 18 compat and (hopefully) resolve issues with thenpmpackage manager throwing peer dep errors on install.What's Changed
Full Changelog: reduxjs/react-redux@v9.0.3...v9.0.4
v9.0.3Compare Source
This bugfix release drops the ReactDOM / React Native specific use of render batching, as React 18 now automatically batches, and updates the React types dependencies
Changelog
Batching Dependency Updates
React-Redux has long depended on React's
unstable_batchedUpdatesAPI to help batch renders queued by Redux updates. It also re-exported that method as a util namedbatch.However, React 18 now auto-batches all queued renders in the same event loop tick, so
unstable_batchedUpdatesis effectively a no-op.Using
unstable_batchedUpdateshas always been a pain point, because it's exported by the renderer package (ReactDOM or React Native), rather than the corereactpackage. Our prior implementation relied on having separatebatch.tsandbatch.native.tsfiles in the codebase, and expecting React Native's bundler to find the right transpiled file at app build time. Now that we're pre-bundling artifacts in React-Redux v9, that approach has become a problem.Given that React 18 already batches by default, there's no further need to continue using
unstable_batchedUpdatesinternally, so we've removed our use of that and simplified the internals.We still export a
batchmethod, but it's effectively a no-op that just immediately runs the given callback, and we've marked it as@deprecated.We've also updated the build artifacts and packaging, as there's no longer a need for an
alternate-renderersentry point that omits batching, or a separate artifact that imports from"react-native".What's Changed
batchby @markerikson in https://github.com/reduxjs/react-redux/pull/2104@types/react-domand lower@types/reactto min needed by @markerikson in https://github.com/reduxjs/react-redux/pull/2105Full Changelog: reduxjs/react-redux@v9.0.2...v9.0.3
v9.0.2Compare Source
This bugfix release makes additional tweaks to the React Native artifact filename to help resolve import and bundling issues with RN projects.
What's Changed
.mjsto.jsby @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2102Full Changelog: reduxjs/react-redux@v9.0.1...v9.0.2
v9.0.1Compare Source
This bugfix release updates the package to include a new
react-redux.react-native.jsbundle that specifically imports React Native, and consolidates all of the'react'imports into one file to save on bundle size (and enable some tricky React Native import handling).What's Changed
Full Changelog: reduxjs/react-redux@v9.0.0...v9.0.1
v9.0.0Compare Source
This major release:
useSelectorThis release has breaking changes.
This release is part of a wave of major versions of all the Redux packages: Redux Toolkit 2.0, Redux core 5.0, React-Redux 9.0, Reselect 5.0, and Redux Thunk 3.0.
For full details on all of the breaking changes and other significant changes to all of those packages, see the "Migrating to RTK 2.0 and Redux 5.0" migration guide in the Redux docs.
Changelog
React 18 and RTK 2 / Redux core 5 Are Required
React-Redux 7.x and 8.x worked with all versions of React that had hooks (16.8+, 17.x, 18.x). However, React-Redux v8 used React 18's new
useSyncExternalStorehook. In order to maintain backwards compatibility with older React versions, we used theuse-sync-external-store"shim" package that provided an official userland implementation of theuseSyncExternalStorehook when used with React 16 or 17. This meant that if you were using React 18, there were a few hundred extra bytes of shim code being imported even though it wasn't needed.For React-Redux v9, we're switching so that React 18 is now required! This both simplifies the maintenance burden on our side (fewer versions of React to test against), and also lets us drop the extra bytes because we can import
useSyncExternalStoredirectly.React 18 has been out for a year and a half, and other libraries like React Query are also switching to require React 18 in their next major version. This seems like a reasonable time to make that switch.
Similarly, React-Redux now depends on Redux core v5 for updated TS types (but not runtime behavior). We strongly encourage all Redux users to be using Redux Toolkit, which already includes the Redux core. Redux Toolkit 2.0 comes with Redux core 5.0 built in.
ESM/CJS Package Compatibility
The biggest theme of the Redux v5 and RTK 2.0 releases is trying to get "true" ESM package publishing compatibility in place, while still supporting CJS in the published package.
The primary build artifact is now an ESM file,
dist/react-redux.mjs. Most build tools should pick this up. There's also a CJS artifact, and a second copy of the ESM file namedreact-redux.legacy-esm.jsto support Webpack 4 (which does not recognize theexportsfield inpackage.json). There's also two special-case artifacts: an "alternate renderers" artifact that should be used for any renderer other than ReactDOM or React Native (such as theinkReact CLI renderer), and a React Server Components artifact that throws when any import is used (since using hooks or context would error anyway in an RSC environment). Additionally, all of the build artifacts now live under./dist/in the published package.Previous releases actually shipped separate individual transpiled source files - the build artifacts are now pre-bundled, same as the rest of the Redux libraries.
Modernized Build Output
We now publish modern JS syntax targeting ES2020, including optional chaining, object spread, and other modern syntax. If you need to . If you need to target older browsers, please transpile the packages yourself (or use the
legacy-esmbuild artifact for ES2017).Build Tooling
We're now building the package using https://github.com/egoist/tsup. We also now include sourcemaps for the ESM and CJS artifacts.
Dropping UMD Builds
Redux has always shipped with UMD build artifacts. These are primarily meant for direct import as script tags, such as in a CodePen or a no-bundler build environment.
We've dropped those build artifacts from the published package, on the grounds that the use cases seem pretty rare today.
There's now a
react-redux.browser.mjsfile in the package that can be loaded from a CDN like Unpkg.If you have strong use cases for us continuing to include UMD build artifacts, please let us know!
React Server Components Behavior
Per Mark's post "My Experience Modernizing Packages to ESM", one of the recent pain points has been the rollout of React Server Components and the limits the Next.js + React teams have added to RSCs. We see many users try to import and use React-Redux APIs in React Server Component files, then get confused why things aren't working right.
To address that, we've added a new entry point with a
"react-server"condition. Every export in that file will throw an error as soon as it's called, to help catch this mistake earlier.Dev Mode Checks Updated
In v8.1.0, we updated
useSelectorto accept an options object containing options to check for selectors that always calculate new values, or that always return the root state.We've renamed the
noopCheckoption toidentityFunctionCheckfor clarity. We've also changed the structure of the options object to be:hoist-non-react-staticsandreact-isDeps InlinedHigher Order Components have been discouraged in the React ecosystem over the last few years. However, we still include the
connectAPI. It's now in maintenance mode and not in active development.As described in the React legacy docs on HOCs, one quirk of HOCs is needing to copy over static methods to the wrapper component. The
hoist-non-react-staticspackage has been the standard tool to do that.We've inlined a copy of
hoist-non-react-staticsand removed the package dep, and confirmed that this improves tree-shaking.We've also done the same with the
react-ispackage as well, which was also only used byconnect.This should have no user-facing effects.
TypeScript Support
We've dropped support for TS 4.6 and earlier, and our support matrix is now TS 4.7+.
What's Changed
uSESimports and run against RTK CI examples by @markerikson in https://github.com/reduxjs/react-redux/pull/2070sideEffects: "false"topackage.jsonin v9 by @markerikson in https://github.com/reduxjs/react-redux/pull/2079react-isutils to fix tree-shaking in 9.0 by @markerikson in https://github.com/reduxjs/react-redux/pull/2085noopChecktoidentityFunctionCheckby @aryaemami59 in https://github.com/reduxjs/react-redux/pull/2091Full Changelog: reduxjs/react-redux@v8.1.2...v9.0.0
reduxjs/redux (redux)
v5.0.1Compare Source
This patch release adjusts the
isPlainObjectutil to allow objects created viaObject.create(null), and fixes a type issue which accidentally made the store state type non-nullable.What's Changed
Store['getState']by @exuanbo in https://github.com/reduxjs/redux/pull/4638Full Changelog: reduxjs/redux@v5.0.0...v5.0.1
v5.0.0Compare Source
This major release:
action.typemust be a stringcreateStoreas deprecatedAnyActiontype in favor of anUnknownActiontype that is used everywherePreloadedStatetype in favor of a new generic argument for theReducertype.This release has breaking changes.
This release is part of a wave of major versions of all the Redux packages: Redux Toolkit 2.0, Redux core 5.0, React-Redux 9.0, Reselect 5.0, and Redux Thunk 3.0.
For full details on all of the breaking changes and other significant changes to all of those packages, see the "Migrating to RTK 2.0 and Redux 5.0" migration guide in the Redux docs.
Changelog
ESM/CJS Package Compatibility
The biggest theme of the Redux v5 and RTK 2.0 releases is trying to get "true" ESM package publishing compatibility in place, while still supporting CJS in the published package.
The primary build artifact is now an ESM file,
dist/redux.mjs. Most build tools should pick this up. There's also a CJS artifact, and a second copy of the ESM file namedredux.legacy-esm.jsto support Webpack 4 (which does not recognize theexportsfield inpackage.json). Additionally, all of the build artifacts now live under./dist/in the published package.Modernized Build Output
We now publish modern JS syntax targeting ES2020, including optional chaining, object spread, and other modern syntax. If you need to
Build Tooling
We're now building the package using https://github.com/egoist/tsup. We also now include sourcemaps for the ESM and CJS artifacts.
Dropping UMD Builds
Redux has always shipped with UMD build artifacts. These are primarily meant for direct import as script tags, such as in a CodePen or a no-bundler build environment.
We've dropped those build artifacts from the published package, on the grounds that the use cases seem pretty rare today.
There's now a
redux.browser.mjsfile in the package that can be loaded from a CDN like Unpkg.If you have strong use cases for us continuing to include UMD build artifacts, please let us know!
createStoreMarked DeprecatedIn Redux 4.2.0, we marked the original
createStoremethod as@deprecated. Strictly speaking, this is not a breaking change, nor is it new in 5.0, but we're documenting it here for completeness.This deprecation is solely a visual indicator that is meant to encourage users to migrate their apps from legacy Redux patterns to use the modern Redux Toolkit APIs.
The deprecation results in a visual strikethrough when imported and used, like
, but with no runtime errors or warnings.createStorecreateStorewill continue to work indefinitely, and will not ever be removed. But, today we want all Redux users to be using Redux Toolkit for all of their Redux logic.To fix this, there are three options:
configureStorelegacy_createStoreAPI that is now exported, which is the exact same function but with no@deprecatedtag. The simplest option is to do an aliased import rename, likeimport { legacy_createStore as createStore } from 'redux'Action types must be strings
We've always specifically told our users that actions and state must be serializable, and that
action.typeshould be a string. This is both to ensure that actions are serializable, and to help provide a readable action history in the Redux DevTools.store.dispatch(action)now specifically enforces thataction.typemust be a string and will throw an error if not, in the same way it throws an error if the action is not a plain object.In practice, this was already true 99.99% of the time and shouldn't have any effect on users (especially those using Redux Toolkit and
createSlice), but there may be some legacy Redux codebases that opted to use Symbols as action types.TypeScript Changes
We've dropped support for TS 4.6 and earlier, and our support matrix is now TS 4.7+.
Typescript rewrite
In 2019, we began a community-powered conversion of the Redux codebase to TypeScript. The original effort was discussed in #3500: Port to TypeScript, and the work was integrated in PR #3536: Convert to TypeScript.
However, the TS-converted code sat around in the repo for several years, unused and unpublished, due to concerns about possible compatibility issues with the existing ecosystem (as well as general inertia on our part).
Redux core v5 is now built from that TS-converted source code. In theory, this should be almost identical in both runtime behavior and types to the 4.x build, but it's very likely that some of the changes may cause types issues.
Please report any unexpected compatibility issues!!
AnyActiondeprecated in favour ofUnknownActionThe Redux TS types have always exported an
AnyActiontype, which is defined to have{type: string}and treat any other field asany. This makes it easy to write uses likeconsole.log(action.whatever), but unfortunately does not provide any meaningful type safety.We now export an
UnknownActiontype, which treats all fields other thanaction.typeasunknown. This encourages users to write type guards that check the action object and assert its specific TS type. Inside of those checks, you can access a field with better type safety.UnknownActionis now the default any place in the Redux source that expects an action object.AnyActionstill exists for compatibility, but has been marked as deprecated.Note that Redux Toolkit's action creators have a
.match()method that acts as a useful type guard:You can also use the new
isActionutil to check if an unknown value is some kind of action object.Middlewaretype changed - Middlewareactionandnextare typed asunknownPreviously, the
nextparameter is typed as theDtype parameter passed, andactionis typed as theActionextracted from the dispatch type. Neither of these are a safe assumption:nextwould be typed to have all of the dispatch extensions, including the ones earlier in the chain that would no longer apply.nextas the default Dispatch implemented by the base redux store, however this would causenext(action)to error (as we cannot promiseactionis actually anAction) - and it wouldn't account for any following middlewares that return anything other than the action they're given when they see a specific action.actionis not necessarily a known action, it can be literally anything - for example a thunk would be a function with no.typeproperty (soAnyActionwould be inaccurate)We've changed
nextto be(action: unknown) => unknown(which is accurate, we have no idea whatnextexpects or will return), and changed theactionparameter to beunknown(which as above, is accurate).In order to safely interact with values or access fields inside of the
actionargument, you must first do a type guard check to narrow the type, such asisAction(action)orsomeActionCreator.match(action).This new type is incompatible with the v4
Middlewaretype, so if a package's middleware is saying it's incompatible, check which version of Redux it's getting its types from!PreloadedStatetype removed in favour ofReducergenericWe've made tweaks to the TS types to improve type safety and behavior.
First, the
Reducertype now has aPreloadedStatepossible generic:Per the explanation in #4491:
Why the need for this change? When the store is first created by
createStore/configureStore, the initial state is set to whatever is passed as thepreloadedStateargument (orundefinedif nothing is passed). That means that the first time that the reducer is called, it is called with thepreloadedState. After the first call, the reducer is always passed the current state (which isS).For most normal reducers,
S | undefinedaccurately describes what can be passed in for thepreloadedState. However thecombineReducersfunction allows for a preloaded state ofPartial<S> | undefined.The solution is to have a separate generic that represents what the reducer accepts for its preloaded state. That way
createStorecan then use that generic for itspreloadedStateargument.Previously, this was handled by a
$CombinedStatetype, but that complicated things and led to some user-reported issues. This removes the need for$CombinedStatealtogether.This change does include some breaking changes, but overall should not have a huge impact on users upgrading in user-land:
Reducer,ReducersMapObject, andcreateStore/configureStoretypes/function take an additionalPreloadedStategeneric which defaults toS.combineReducersare removed in favor of a single function definition that takes theReducersMapObjectas its generic parameter. Removing the overloads was necessary with these changes, since sometimes it was choosing the wrong overload.Other Changes
Internal Listener Implementation
The Redux store has always used an array to track listener callbacks, and used
listeners.findIndexto remove listeners on unsubscribe. As we found in React-Redux, that can have perf issues when many listeners are unsubscribing at once.In React-Redux, we fixed that with a more sophisticated linked list approach. Here, we've updated the
listenersto be stored in aMapinstead, which has better delete performance than an array.In practice this shouldn't have any real effect, because React-Redux sets up a subscription in
<Provider>, and all nested components subscribe to that. But, nice to fix it here as well.isActionPredicateWe recently added an
isActionpredicate to RTK, then realized it's better suited for the Redux core. This can be used anywhere you have a value that could be a Redux action object, and you need to check if it is actually an action. This is specifically useful for use with the updated Redux middleware TS types, where the default value is nowunknownand you need to use a type guard to tell TS that the current value is actually an action:We've also exported the
isPlainObjectutil that's been in the Redux codebase for years as well.What's Changed
Entirely too many PRs to list here, as it's been a few years since 4.2 was released :) See the diff below.
Full Changelog: reduxjs/redux@v4.2.1...v5.0.0
reduxjs/redux-thunk (redux-thunk)
v3.1.0Compare Source
This major release:
This release has breaking changes. (Note: this actually points to v3.1.0, which includes a hotfix that was meant for 3.0.0.)
This release is part of a wave of major versions of all the Redux packages: Redux Toolkit 2.0, Redux core 5.0, React-Redux 9.0, Reselect 5.0, and Redux Thunk 3.0.
For full details on all of the breaking changes and other significant changes to all of those packages, see the "Migrating to RTK 2.0 and Redux 5.0" migration guide in the Redux docs.
Changelog
Named Exports Instead of Default Exports
The
redux-thunkpackage previously used a single default export that was the thunk middleware, with an attached field namedwithExtraArgumentthat allowed customization.The default export has been removed. There are now two named exports:
thunk(the basic middleware) andwithExtraArgument.If you are using Redux Toolkit, this should have no effect, as RTK already handles this inside of
configureStore.ESM/CJS Package Compatibility
The biggest theme of the Redux v5 and RTK 2.0 releases is trying to get "true" ESM package publishing compatibility in place, while still supporting CJS in the published package.
The primary build artifact is now an ESM file,
dist/redux-thunk.mjs. Most build tools should pick this up. There's also a CJS artifact, and a second copy of the ESM file namedredux-thunk.legacy-esm.jsto support Webpack 4 (which does not recognize theexportsfield inpackage.json).Build Tooling
We're now building the package using https://github.com/egoist/tsup. We also now include sourcemaps for the ESM and CJS artifacts.
The repo has been updated to use Yarn 3 for dependencies and Vitest for running tests.
Dropping UMD Builds
Redux has always shipped with UMD build artifacts. These are primarily meant for direct import as script tags, such as in a CodePen or a no-bundler build environment.
For now, we're dropping those build artifacts from the published package, on the grounds that the use cases seem pretty rare today.
Since the code is so simple, the ESM artifact can be used directly in the browser via Unpkg.
If you have strong use cases for us continuing to include UMD build artifacts, please let us know!
extend-reduxTypedefs RemovedRedux Thunk 2.x included a
redux-thunk/extend-reduxTS-only entry point, which extended the types ofdispatchandbindActionCreatorsto globally give them knowledge of the thunk types. We feel that global overrides from a library are an anti-pattern, and we've removed this entry point. (Note: this ended up being released in 3.1.0, as it was missed in the original 3.0.0 release.)Please follow our TS setup guidelines to infer the correct type of
dispatchfor your store.What's Changed
redux-thunkby @markerikson in https://github.com/reduxjs/redux-thunk/pull/345Full Changelog: reduxjs/redux-thunk@v2.4.2...v3.1.0
v3.0.1Compare Source
v3.0.0Compare Source
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.