frontend-app-learning icon indicating copy to clipboard operation
frontend-app-learning copied to clipboard

fix(deps): update dependency redux to v4.2.1

Open renovate[bot] opened this issue 3 years ago • 3 comments

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
redux (source) 4.1.2 -> 4.2.1 age adoption passing confidence

Release Notes

reduxjs/redux (redux)

v4.2.1

Compare Source

This bugfix release removes the isMinified internal check to fix a compat issue with Expo. That check has added in early 2016, soon after Redux 3.0 was released, at a time when it was still less common to use bundlers with proper production build settings. Today that check is irrelevant, so we've removed it.

What's Changed

Full Changelog: https://github.com/reduxjs/redux/compare/v4.2.0...v4.2.1

v4.2.0

Compare Source

This release marks the original createStore API as @deprecated to encourage users to migrate to Redux Toolkit, and adds a new legacy_createStore API as an alias without the deprecation warning.

Goal

Redux Toolkit (the @reduxjs/toolkit package) is the right way for Redux users to write Redux code today:

https://redux.js.org/introduction/why-rtk-is-redux-today

Unfortunately, many tutorials are still showing legacy "hand-written" Redux patterns, which result in a much worse experience for users. New learners going through a bootcamp or an outdated Udemy course just follow the examples they're being shown, don't know that RTK is the better and recommended approach, and don't even think to look at our docs.

Given that, the goal is to provide them with a visual indicator in their editor, like ~~createStore~~ . When users hover over the createStore import or function call, the doc tooltip recommends using configureStore from RTK instead, and points them to that docs page. We hope that new learners will see the strikethrough, read the tooltip, read the docs page, learn about RTK, and begin using it.

To be extremely clear:

WE ARE NOT GOING TO ACTUALLY REMOVE THE createStore API, AND ALL YOUR EXISTING CODE WILL STILL CONTINUE TO WORK AS-IS!

We are just marking createStore as "deprecated":

"the discouragement of use of some feature or practice, typically because it has been superseded or is no longer considered efficient or safe, without completely removing it or prohibiting its use"

For additional details, see the extensive discussion in https://github.com/reduxjs/redux/issues/4325 .

Rationale

  • RTK provides a vastly improved Redux usage experience, with APIs that simplify standard usage patterns and eliminate common bugs like accidental mutations
  • We've had suggestions to merge all of RTK into the redux core package, or fully deprecate the entire redux package and rename it to @reduxjs/core. Unfortunately, those bring up too many complexities:
    • We already had a package rename from redux-starter-kit to @reduxjs/toolkit, and all of our docs and tutorials have pointed to it for the last three years. I don't want to put users through another whiplash package transition for no real benefit
    • Merging or rearranging our packages would effectively require merging all of the Redux repos into a single monorepo. That would require hundreds of hours of effort from us maintainers, including needing to somehow merge all of our docs sites together. We don't have the time to do that.
  • I don't want to add runtime warnings that would be really annoying

So, this is the minimum possible approach we can take to reach out to users who otherwise would never know that they are following outdated patterns, while avoiding breaking running user code or having to completely rewrite our package and repo structure.

Results

When a user imports createStore in their editor, they will see a visual strikethrough. Hovering over it will show a doc tooltip that encourages them to use configureStore from RTK, and points to an explanatory docs page:

image

Again, no broken code, and no runtime warnings.

If users do not want to see that strikethrough, they have three options:

  • Follow our 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 @deprecation tag. The simplest option is to do an aliased import rename:

image

What's Changed

Full Changelog: https://github.com/reduxjs/redux/compare/v4.1.2...v4.2.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate[bot] avatar Apr 21 '22 19:04 renovate[bot]

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 89.25%. Comparing base (913c8e4) to head (2a5452e). Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #934   +/-   ##
=======================================
  Coverage   89.25%   89.25%           
=======================================
  Files         318      318           
  Lines        5563     5563           
  Branches     1341     1376   +35     
=======================================
  Hits         4965     4965           
+ Misses        583      582    -1     
- Partials       15       16    +1     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

codecov[bot] avatar Apr 21 '22 19:04 codecov[bot]

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: @edx/[email protected]
npm error Found: [email protected]
npm error node_modules/redux
npm error   redux@"4.2.1" from the root project
npm error   peer redux@"^4.0.5" from @edx/[email protected]
npm error   node_modules/@edx/frontend-lib-special-exams
npm error     @edx/frontend-lib-special-exams@"^3.0.1" from the root project
npm error   5 more (@edx/frontend-platform, @reduxjs/toolkit, ...)
npm error
npm error Could not resolve dependency:
npm error peer redux@"4.1.2" from @edx/[email protected]
npm error node_modules/@edx/frontend-lib-learning-assistant
npm error   @edx/frontend-lib-learning-assistant@"^2.0.0" from the root project
npm error
npm error Conflicting peer dependency: [email protected]
npm error node_modules/redux
npm error   peer redux@"4.1.2" from @edx/[email protected]
npm error   node_modules/@edx/frontend-lib-learning-assistant
npm error     @edx/frontend-lib-learning-assistant@"^2.0.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /tmp/renovate/cache/others/npm/_logs/2024-05-07T16_04_37_102Z-eresolve-report.txt

npm error A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-05-07T16_04_37_102Z-debug-0.log

renovate[bot] avatar Aug 23 '23 13:08 renovate[bot]