Updates the table "build" to use Webpack 5 and newer versions of the toolchain packages (e.g. babel, typescript, loaders).
There's a chain of side-effects at play here and most (but not all) of this PR is to deal with the side-effects. Depending on which, they are more or less difficult to fix:
Storybook, which we use here to generate the Percy snapshots hooks into the webpack configuration and expects Webpack 4.x -- some changes in tooling is done here to make it work with Webpack 5. Sadly there are "alpha" releases, which is a similar problem we've run into in the past. Storybook is notoriously slow at supporting new versions of key third-parties
Cypress has been in a derelict state for our purpose for quite a while and this Webpack 5 update is causing problems that can't be fixed (as far as I can tell) in the unit tests -- this PR moves the unit tests from using Cypress to another stack that has been around for a lot of time and is very stable.. Karma/Mocha/Chai, since the cypress test syntax already was compatible with Mocha/Chai, it left only the runner to be updated. For context, mocha tests are normally run directly in Node which won't do for our purposes, Karma is used, amongst other things, to load the tests into the browser to be run there. Additional context, Karma has been around for a very long time (it's ancient by web development standards, ~2012), this will hopefully provide more solid footing for the unit tests
More on Cypress, back in 2018 I introduced Cypress into the table stack to run integration tests as our Selenium setup was less than ideal at the time, this has proven problematic ever since Cypress 4.x came out. This PR includes a port of the remaining Cypress integration tests to Selenium. The tests are ported mostly "as-is" and while some improvements are made, tests that are sub-par are still basically just ported and left to be improved and re-organized at a later time.
Update other dependencies. react-select can/t automatically be updated as the API changed and the visual style changed -- this would require deeper rework/investigation. Updating @types/ramda causes typing issues that have to do with the types definition and not with the underlying library -- as for react-select, fixing this would require a deeper investigation of the side-effects. Frequently the port will also involve running the test in more scenarios than it did before.
Need to remove ci/circleci: standalone-test from the required build steps
All-in-all this PR proposes to update the table toolchain in depth as part of keeping up with our third party dependencies as the ever growing gap has now reached chasm proportions... one must not fear the reaper.
Depends on https://github.com/plotly/dash/pull/1563 Fixes partially https://github.com/plotly/dash-core/issues/203
Updates the table "build" to use Webpack 5 and newer versions of the toolchain packages (e.g. babel, typescript, loaders).
There's a chain of side-effects at play here and most (but not all) of this PR is to deal with the side-effects. Depending on which, they are more or less difficult to fix:
Storybook
, which we use here to generate the Percy snapshots hooks into the webpack configuration and expects Webpack 4.x -- some changes in tooling is done here to make it work with Webpack 5. Sadly there are "alpha" releases, which is a similar problem we've run into in the past. Storybook is notoriously slow at supporting new versions of key third-partiesCypress
has been in a derelict state for our purpose for quite a while and this Webpack 5 update is causing problems that can't be fixed (as far as I can tell) in the unit tests -- this PR moves the unit tests from using Cypress to another stack that has been around for a lot of time and is very stable.. Karma/Mocha/Chai, since the cypress test syntax already was compatible with Mocha/Chai, it left only the runner to be updated. For context, mocha tests are normally run directly in Node which won't do for our purposes, Karma is used, amongst other things, to load the tests into the browser to be run there. Additional context, Karma has been around for a very long time (it's ancient by web development standards, ~2012), this will hopefully provide more solid footing for the unit testsMore on
Cypress
, back in 2018 I introduced Cypress into the table stack to run integration tests as our Selenium setup was less than ideal at the time, this has proven problematic ever since Cypress 4.x came out. This PR includes a port of the remaining Cypress integration tests to Selenium. The tests are ported mostly "as-is" and while some improvements are made, tests that are sub-par are still basically just ported and left to be improved and re-organized at a later time.Update other dependencies.
react-select
can/t automatically be updated as the API changed and the visual style changed -- this would require deeper rework/investigation. Updating@types/ramda
causes typing issues that have to do with the types definition and not with the underlying library -- as for react-select, fixing this would require a deeper investigation of the side-effects. Frequently the port will also involve running the test in more scenarios than it did before.Need to remove
ci/circleci: standalone-test
from the required build stepsAll-in-all this PR proposes to update the table toolchain in depth as part of keeping up with our third party dependencies as the ever growing gap has now reached chasm proportions... one must not fear the reaper.