v3.7.0
Another long break!
Oh, hey! I didn't see you sitting there. You look bored. How about a Redux release to spice things up?
Not a huge set of changes to report here. The biggest change, and the reason for the minor bump, is the UMD build is now done via Rollup. One big advantage is more readable code in the bundle. Rollup does "scope hoisting", which is a fancy term for putting every module at the top level of the file. Other than a surrounding IIFE, all of the code in Redux all lives together. You can compare the two here:
Rollup UMD build
vs
Webpack UMD build
There is also a cost savings of 30,811 vs 26,880 bytes, and 6,999 vs 5,995 bytes minified. Redux is already a small library, and this helps shave some extra bytes for our UMD users.
One thing to note is that Webpack has introduced it's own scope hoisting feature in 3.0 beta. So, this isn't intended as an indictment of Webpack. You should continue to use it in your own apps. The adage of "Webpack is for apps, Rollup is for libraries" definitely holds true. It still has a superior developer experience with hot module reloading and webpack-dev-server. But use whatever makes sense for your project, not just whatever we use. 😄
We're also looking at applying this to the NPM bundle. The main motivation is again more readable code in your bundles. Instead of transpilation oddities from Babel, you will end up with a single clean file, which should be easier to read through and debug. It's currently scheduled for the big, mythical 4.0 release and you can follow along in #2358
Changes
- Build UMD with rollup (#2283 by @TrySound)
- Warn when bindActionCreators encounters non-function property (#2279 by @artgillespie)
- Update variables to ES6 (#2169 by @dfrownfelter)
- Remove filtering inside compose (#2167 by @istarkov)
- Simplify compose (#2147 by @JoeCortopassi)