Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To think through some of the challenges in upgrading
react-redux
to v7, I decided to scaffold a PR and see how far I get in this effort. Detailed info on the release notes and breaking changes for v7 can be found here. Since, the only public breaking change is the min peer dependency of react package from16.4
to16.8.4
, I didn't bump react* packages in this repo since they seem to be at a compatible version already (16.13.1
).The decision to go with
v7.2.0
was deliberate because there had been a few minor releases and this contains some important bug fixes and memory leak mitigations.Learnings
Within the ouptuts repo, the
jupyter-widgets
package depends uponreact-redux
support. So, I imagine that all the other packages maintained in this repo should be unaffected by the upgrade.To validate the package, I decided to update our host app to
react-redux
v7.2.0
as well and I seem to be hitting this issue when attempting to render ipywidgets:We lazy load the
WidgetDisplay
component from the jupyter widgets package and from the error it seems like in theTransformMedia
component, it loses context of the store. Here's how we use theTransformMedia
component:Based on some troubleshooting guidance (here and here), I was able to explore the idea of providing the
store
directly as a prop and make some progress. However, I don't know if that is required since our App already has a top levelProvider
component that should make thestore
available to all children elements.I think it might be important to consider the inter dependency and use cases of some packages in the nteract/nteract monorepo like the
TransformMedia
component when upgrading the outputs repo.