Keeping up to date with external software dependencies is important to keep code healthy.
The list of outdated NPM dependencies is currently:
Package Current Wanted Latest babel-loader 7.1.4 7.1.4 8.0.4 babel-preset-env 1.6.0 1.6.0 1.7.0 babel-register 6.24.1 6.24.1 6.26.0 bundlesize 0.15.3 0.15.3 0.17.0 clean-webpack-plugin 0.1.19 0.1.19 1.0.0 eslint-plugin-qunit 3.3.1 3.3.1 4.0.0 grunt-contrib-watch 1.0.1 1.0.1 1.1.0 husky 0.13.3 0.13.3 1.1.3 nyc 12.0.2 12.0.2 13.1.0 redux 3.6.0 3.6.0 4.0.1 redux-thunk 2.2.0 2.2.0 2.3.0 stylelint 9.2.0 9.2.0 9.8.0 wdio-mocha-framework 0.6.1 0.6.1 0.6.4 wdio-spec-reporter 0.1.4 0.1.4 0.1.5 webdriverio 4.13.1 4.13.1 4.14.0 webpack 4.1.1 4.1.1 4.25.1 webpack-cli 2.0.12 2.0.12 3.1.2
Some of these are major version-breaking upgrades and should be performed with great caution. The changelists for all upgrades should be reviewed with important changes summarized in the commit message. It is the duty of the committer to socialize important updates to the rest of the team, task new functionality we should use, do their best to confirm no unwanted changes will be inherited, and minimize risk. Please do your due diligence!
Acceptance criteria
- Upgrade each library to latest
- We should switch out husky with precommit (for consistency with other repos e.g. MobileFrontend)
Developer notes
Clean upgrades are tricky. Most packages are to do with testing.
- webpack and redux upgrades are going to be the biggest concern, since they impact the code.
- nyc, webpack-cli,eslint-plugin-qunit, babel-loader and redux likely to have breaking changes.
- Important: If a library upgrade proves too difficult we have agreed to setup a new task and descope as part of this task to give the upgrade the attention it deserves.