-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate Webpack 5 Impact #19555
Comments
Webpack 5 AnalysisThis evaluation was purely for updating to webpack 5 with minimal configuration changes to maintain the current configuration behavior. This did not take into account any issues that might be logged related to webpack. npmangularimpact: none to consumers / low for dev setup not yet released on npm Note: for Component Testing
design-systemimpact: none to consumers / low for dev setup Note: for Component Testing
reactimpact: major version bump Note: for Component Testing
vueimpact: none to consumers / low for dev setup Note: for Component Testing
webpack-batteries-included-preprocessorimpact: major version bump Add support for webpack 5 usage & change the hashFunction output configuration value from 'md4'. This will requires test updates - the current tests are not sufficient. Options:
webpack-dev-serverimpact: low Update peer dependencies and add check for webpack 5 usage to change the hashFunction output configuration value from 'md4'. Currently package supports webpack-dev-server v3 and v4 in the code; however, the peer dependencies for webpack-dev-server & webpack do not reflect the code support. Webpack-dev-server v4 supports webpack 4 & 5.
webpack-preprocessorimpact: none or major version bump. Currently compatible with webpack 4 & 5 and we test both versions. We can leave as is or release a MVB to only support webpack 5. If we don't do a MVB, I suggest we default our tests / dependencies to webpack 5 and test backwards compatibility, but wouldn't be required.
packagesdesktop-guiimpact: low Custom webpack configuration & preprocessor used in plugin setup for cypress tests. We could maintain webpack 4 version to have no changes right away if we wanted. Else update configuration's hashFunction output configuration value from 'md4' and add polyfills.
driverimpact: low Custom webpack configuration & preprocessor used in plugin setup for cypress tests. We could maintain webpack 4 version to have no changes right away if we wanted. Else update configuration's hashFunction output configuration value from 'md4' and add polyfills.
extensionimpact: low We could maintain webpack 4 version to have no changes right away if we wanted -- not tested with Cypress. Else update configuration's hashFunction output configuration value from 'md4' and add polyfills.
reporterimpact: low We could maintain webpack 4 version to have no changes right away if we wanted. Webpack is used to generate the static assets which are served by an express server when running Cypress tests. Else update configuration's hashFunction output configuration value from 'md4' and add polyfills.
runnerimpact: low Update configuration's hashFunction output configuration value from 'md4'. We could maintain webpack 4 version to have no changes right away if we wanted. Webpack is used to generate the static assets -- not used in Cypress tests.
runner-ctimpact: medium Webpack/webpack-dev-server is used for component testing. Update configuration's hashFunction output configuration value from 'md4' and add polyfills.
serverimpact: low Remove Node 17 band-aid for passing
ui-componentsimpact: low Update configuration's hashFunction output configuration value from 'md4'.
web-configimpact: low Update configuration's hashFunction output configuration value from 'md4' and add polyfills.
system-testsimpact: low Add additional tests to verify webpack 4 and webpack 5 plugins work as expected.
No Impact or ChangesThe following modules were not impact and will not required changes:
|
I've identified the following issues in our backlog (I'm sure I missed a few as well): Potential Issues with Passivity:
Determine if we need to polyfill Crypto Quick Dependency Issue we need to fix: Fixes:
|
Closing this issue as complete. The work and impact has been noted for uplifting to webpack 5. |
Todo: create a diagram of how this all current works today and how changing to Webpack 5 would impact the logic. |
related to this ticket - #23416 |
I wonder if the difficulty of this has changed now we are using Vite for more things and relying less on webpack? I'm running into various issues when debugging #23637, specifically see this comment: #22795 (comment) I don't see any major blocker here - @emilyrohrbough based on your research, how much engineering time do you think the webpack 5 update would take? I spiked into it a while back and got about 90% of CI passing in a day, so I think it's days of work -- maybe you can verify this estimate? |
I think we should just rip off the bandaid and solve this, I think two engineers with webpack 4/5 difference knowledge can smash this out in a week or so. I feel like the webpack4->5 changes are burnt into my brain at this point... also we are less reliant on webpack now with our usage of Vite, I think we could start by trimming down our webpack.config and potentially deleting a bunch of deps (rather than trying to update deps we may no longer need). WDYT @ZachJW34? This might be a good example of tackling some of the tech debt we've talked about. Not right now but at some point before the end of 2022. This is also the kind of thing @sainthkh maybe have some thoughts on, he has been knocking out a lot of technical debt lately. |
I would love to see it by end of 2022. Depending on the e2e teams workload, this issue would be something that I think the ct team could pick up after CT GA is finished. |
Wanted to point out that the |
This issue has not had any activity in 180 days. Cypress evolves quickly and the reported behavior should be tested on the latest version of Cypress to verify the behavior is still occurring. It will be closed in 14 days if no updates are provided. |
bumping to prevent issue from closing |
Our team will revisit the analysis start of July, to see if anything has changed - it's been a while since this was previously looked at, maybe things have changed (webpack 5 is much more mature now). Maybe this is not as big a lift as it was a year ago! This will be a breaking change, so we will need to look at the "blast radius" and see what the best option is for making this change seemlessly. One known issue will be the lack of Node.js polyfills. I migrated |
Released in This comment thread has been locked. If you are still experiencing this issue after upgrading to |
What would you like?
Investigate upgrading Cypress to webpack v5+.
Details
The following modules could / will be impacted:
The packages within the Cypress Binary that could / will be impacted:
Why is this needed?
The text was updated successfully, but these errors were encountered: