While writing this blog post, I spoke to @Ville to get a better idea of how people outside of Facebook upgraded their codebases. The new ReactRedux libdefs are for 0.89+, so just upgrading to 0.85.0 might not be enough. Here is how @Ville took Smartly.io's codebase from 0.84.0 to 0.89.0:
We went with brute-force approach, suppressing all the errors caused by the update. Roughly:
- remove all the problematic libdefs from the project
- update version by version until 0.89.0, adding suppressions/fixing issues as you go
- re-introduce libdefs one by one
- suppress errors that you can't fix in reasonable time or lack domain knowledge or what ever.
- you can use the flow tool to do this, and add a custom comment. In our case I added bit.ly link to issue fixing guides:
- https://bit.ly/2XHdwf9
- https://bit.ly/2Uvi2uU
- Emphasize the importance of fixing Flow suppressions for the whole team. (He said this part was especially difficult, but worth it)