Skip to content
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

[Snyk] Upgrade react-redux from 7.0.2 to 7.2.0 #407

Closed

Conversation

snyk-bot
Copy link
Contributor

@snyk-bot snyk-bot commented Mar 9, 2020

Snyk has created this PR to upgrade react-redux from 7.0.2 to 7.2.0.

ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
  • The recommended version is 14 versions ahead of your current version.
  • The recommended version was released 20 days ago, on 2020-02-18.
Release notes
Package name: react-redux
  • 7.2.0 - 2020-02-18

    This release fixes two bugs, an algorithmic problem with unsubscribing components and a memory leak with connect. It also has optimizations for production bundle size, and adds a couple small improvements to developer readability while debugging.

    Changes

    Bug Fixes

    connect in v7 is implemented using hooks, and the hooks usage captures numerous values from the surrounding scope. We received a PR informing us that the way we were capturing these values would likely result in a copy of the first version of its props being kept alive indefinitely.

    This memory leak has been fixed by extracting a custom hook that receives all the necessary values as arguments, so that they're not captured via closure.

    We also received a PR letting us know that the unsubscribe logic had a quadratic algorithm in it, as removing a subscriber would use an indexOf(listener) check to remove that callback. If there were a large number of subscribers, that line's runtime would increase rapidly, causing slowdowns.

    This algorithm has been replaced with tracking subscribers via a linked list, which drastically improves the runtime of this section of the code even with large numbers of subscribers.

    Thanks to @larrylin28 and @wurstbonbon for finding these bugs and submitting PRs to fix them!

    Bundle Size Improvements

    We've made a number of small tweaks to the codebase to improve the ability of bundlers to shake and minimize the final included size in a bundle. The net result is that react-redux@7.2.0 is smaller than 7.1.3, dropping 1.3K min and 0.6K min+gzip. (In fact, it's even smaller than the pre-hooks 7.0.0 when gzipped!)

    Thanks to @Andarist for doing most of the work on this!

    Debugging Improvements

    The ReactReduxContext instance now has a displayName set, so it should show up in the React DevTools as ReactRedux.Provider.

    Also, when an error is caught in useSelector and re-thrown, we now append the original stack trace.

    Thanks to @pieplu and @r3dm1ke for these!

    Changelog

    v7.1.3...v7.2.0

  • 7.1.3 - 2019-11-06

    Forgot to remove a console statement before I published 7.1.2. Oops!

    Lint your source code before publishing, folks.

    Changes

  • 7.1.2 - 2019-11-06

    This releases fixes a subtle timing bug with connect and useSelector in React Native environments, and adds the ability to pass through non-Redux-store values as a store prop.

    Fixed Store Subscriptions in React Native

    Our current implementation requires cascading updates down through connected components. This is primarily done during React's "commit phase" via the useLayoutEffect hook. Unfortunately, React warns when useLayoutEffect is called in SSR environments, so we try to feature-detect that and fall back to useEffect just to avoid that warning.

    Unfortunately, a tweak to the feature detection conditions during the pre-7.1.0 work caused the check to accidentally fail in React Native environments. This meant that useEffect was actually being used all the time, and this led to occasional timing bugs such as #1313 and #1437 . This affected the previous v7.1.x releases.

    We've fixed that issue, and added additional test cases to ensure that our code works correctly under React Native.

    See #1444 for more details on the feature detection and the fix.

    Passing Through Non-Store Values

    connect has always accepted passing a Redux store directly to connected components as a prop named store (with the exception of v6). As a result, the store prop has effectively been treated as a "reserved" prop, in much the same way that key and ref are "reserved" prop names handled by React.

    Some users may be using the word "store" to describe their domain data, and have asked to allow variables that aren't a Redux store through the store prop to the component (#1393). We've finally been able to implement that capability.

    Changes

  • 7.1.2-alpha.0 - 2019-11-05

    7.1.2-alpha.0

  • 7.1.1 - 2019-08-26

    This release is sponsored by Deft, providing technical teams to high-growth SaaS companies with the processes they need to scale successfully. Please reach out to see how we can help with your software development, systems architecture, and infrastructure design needs.


    This release includes some new APIs for those that want to use a custom React Context with our Hooks API, a small memory optimization, and has a fix for when the store changes on a Provider with incompatible children.

    Changes

    P.S. On the sponsorship section above, it's a thing we're trying out to see how it feels and if it causes any problems for your workflows. (Don't worry, no ads are coming to your npm installs!) The idea for future releases is to let those that contributed to that release have the opportunity to sponsor that release. We don't need donations, but we definitely do need PRs! Hopefully, it's a fair way to encourage them. Please let us know if it's a problem in any way.

  • 7.1.0 - 2019-06-11

    Hooks!

    After much discussion, we've decided these Hook things are probably going to stick around, so we might as well add some. Many thanks to @MrWolfZ, @josepot, @perrin4869, and @mpeyper for their contributions and to everyone else that offered feedback, ideas, and critiques as we built them out. Go open source!

    Changes

  • 7.1.0-rc.1 - 2019-05-30

    ⚠️We've got RC sign! ⚠️

    This version is essentially the same as the previous 7.1.0-alpha.5 release. But it has an rc tag on it, so you can more easily justify the upgrade to your manager.

    Get to it!

    npm install react-redux@next
    

  • 7.1.0-alpha.5 - 2019-05-20

    We're still making changes to our hooks APIs, but I'm hopeful that we're getting close to having the behavior nailed down.

    This release makes three specific changes to useSelector:

    • The deps array has been removed. If you want to ensure the same selector function reference is used, you should memoize it yourself.
    • The default equality check used to determine if a re-render is needed is now a strict === check, instead of a shallow equality check.
    • useSelector now accepts a comparison function as an optional second argument, similar to how React.memo() works conceptually. You may pass your own comparison function to customize how useSelector determines if a re-render is necessary.

    In addition, we now export our internal shallowEqual utility function. If you want to return to the prior equality behavior, you may pass that as the equality comparison function:

    import { shallowEqual, useSelector } from "react-redux"
    

    // later
    const selectedData = useSelector(mySelector, shallowEqual)

    The optional comparison function also enables using something like Lodash's _.isEqual() or Immutable.js's comparison capabilities.

    Changes

  • 7.1.0-alpha.4 - 2019-05-01

    Our previous alpha versions included both useSelector() (similar to mapState) and useActions() (similar to mapDispatch).

    However, Dan Abramov strongly suggested that we consider removing useActions(), as the idea of "binding action creators" is less relevant when using hooks, and also adds conceptual overhead and syntactic complexity. We requested feedback from alpha users, and the initial feedback agreed with Dan's suggestion.

    Based on that feedback, v7.1.0-alpha.4 removes the useActions() hook. Instead, call useDispatch() in your component, and manually call dispatch(someActionCreator()) in callbacks and effects as needed.

    If you still wish to use useActions(), the hooks alpha docs page has an implementation you can copy and paste into your own code.

    Changes

  • 7.1.0-alpha.3 - 2019-04-28
  • 7.1.0-alpha.2 - 2019-04-28
  • 7.1.0-alpha.1 - 2019-04-22
  • 7.1.0-alpha.0 - 2019-04-22
  • 7.0.3 - 2019-04-28
  • 7.0.2 - 2019-04-12
from react-redux GitHub release notes
Commit messages
Package name: react-redux
  • ec38c1b 7.2.0
  • fa5a7fd Fix memory leak issue with `UseEffect` (#1506)
  • e649fb6 Optimize createListenerCollection (#1523)
  • 3eb5271 Updated links (#1522)
  • b3db96c docs: mapDispatchToProps returning undefined (#1520)
  • 607f1ba Fix: Fix typo in connect.md (#1517)
  • 77a2044 Remove these spaces.
  • cff554d Update connect-dispatching-actions-with-mapDispatchToProps.md (#1501)
  • 9a10b15 Update hooks.md (#1405)
  • 7893b35 Fixed Q&A links (#1500)
  • b3ae892 Fixes broken links (#1494)
  • f9efe46 fix: correct link to Redux Troubleshooting page (#1493)
  • 863128e Fix Usage with React link.
  • 19359fb remove useless semicolon (#1486)
  • 67d5e86 Add Netlify Badge to Docs (#1485)
  • 66b69ec another weird semi colon in docs (#1484)
  • db35c54 unnecessary extra semi colon in docs (#1483)
  • 5bef286 fix broken link in hooks.md (#1465)
  • 24354a6 Fix code example in static-types.md (#1476)
  • 5402f24 Rethrowing original errors thrown in selector functions (#1474)
  • b198f26 Add links to further TS resources
  • f059ad0 WIP: Static Types doc page (#1439)
  • 1b39cdd Pass @babel/runtime version to @babel/plugin-transform-runtime (#1473)
  • 9ebd1a9 Remove invariant in favor of doing NODE_ENV checks directly (#1472)

Compare


Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

For more information:

🧐 View latest project report

🛠 Adjust upgrade PR settings

🔕 Ignore this dependency or unsubscribe from future upgrade PRs

@coveralls
Copy link

Coverage Status

Coverage remained the same at 93.056% when pulling 95e4acc on snyk-upgrade-7a0fd25750f6a7750c4f7b6bf3689f2a into 7f3a266 on master.

@danactive
Copy link
Owner

Unit tests are failing

@danactive danactive closed this Jun 6, 2020
@danactive danactive deleted the snyk-upgrade-7a0fd25750f6a7750c4f7b6bf3689f2a branch June 11, 2020 21:04
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.

3 participants