Cypress 15: Breaking changes
What would you like?
We need to remove CDP support with Firefox removing CDP support in version 141 in June. This need is necessitating a breaking change. We want to include other relevant breaking changes for this release.
In Scope
- Firefox:
- ~CDP code removal for Firefox (BiDi now mainstream with https://github.com/cypress-io/cypress/pull/30870 ) https://github.com/cypress-io/cypress/issues/31189~
- ~Cut over methods in
@packages/extensionthat are firefox specific to use BiDi https://github.com/cypress-io/cypress/issues/30221. Assess progress on milestone~
- Replace
ts-nodewithtsxfor user configuration parsing and cypress runtime- ~Spike into removing
ts-nodehttps://github.com/cypress-io/cypress/issues/30426~ - ~Update
@packages/data-contextto use Stage 3 decorators https://github.com/cypress-io/cypress/issues/31184~ - ~Replace
ts-nodewithtsxfor user configuration parsing and cypress runtime https://github.com/cypress-io/cypress/issues/31185~ - Allow for WBIP to take all of the users resolved config https://github.com/cypress-io/cypress/issues/31282
- ~Remove TypeScript 4 support https://github.com/cypress-io/cypress/issues/31187~
- ~Spike into removing
- Feat: certain Cypress commands should not be bound to window in order to avoid cross origin issues https://github.com/cypress-io/cypress/issues/31196
- ~Node.js 18 + 23 support removal https://github.com/cypress-io/cypress/issues/31302~
- Electron 35 upgrade (Node.js 22 upgrade) (what are the
glibcimplications?) https://github.com/cypress-io/cypress/issues/31257 - ~Webpack 4 removal~
- ~Webpack Dev Server 4 removal~
- ~Remove migrations scripts for v9 -> v10 upgrades, etc~
- ~Remove deprecated cy.stub signature~
- ~Remove fallback polyfills in webpack-batteries-included-preprocessor #31039~
Component testing
- ~Remove support for Angular 17 (EOL security support 26 May 2025) https://github.com/cypress-io/cypress/issues/31303~
- ~Bump zone.js minimum dependency https://github.com/cypress-io/cypress/issues/31582~
- Add support for zoneless change detection in @cypress/angular for Angular 20 (https://github.com/cypress-io/cypress/issues/31504) - This is needed as zoneless change detection will be the default in Angular 20 and is related to https://github.com/cypress-io/cypress/issues/30070.
Extra
- Fix any remaining Cy 14 issues before 15: https://github.com/cypress-io/cypress/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22v14.0.0%20%F0%9F%90%9B%22
- Electron 34 upgrade (Node.js 22 upgrade) (what are the
glibcimplications?)
https://github.com/nodejs/node/blob/v22.12.0/BUILDING.md
I don't see any change for glibc.
Cypress.runner.stop() - why remove this?
@alexsch01 We intend to keep this behavior of being able to stop execution of Cypress with an API, we're not sure if we'll maintain this API exactly.
Basically the way this is implemented does not play nicely with Test Replay. It immediately exits the process - and Test Replay is expecting a certain event to fire so it can upload the replay. When user's use this in a test to exit the runner (usually when a test fails), they end up with a completely blank Test Replay - and that's exactly when they'd like the data from Test Replay the most.
So we have to either update Cypress.runner.stop() to better handle this or if it can't, we'll need to add another API that plays better with Test Replay.
iFrame Support Finally would be good or some semi support.
Node.js 18 + 23 support removal
Node.js EOLs are:
| Node.js | EOL |
|---|---|
| 18.x | 2025-04-30 |
| 23.x | 2025-06-01 |
Currently
https://github.com/cypress-io/cypress/blob/6bd522bb7475a04030431a919c07dba0bc056e36/cli/package.json#L122-L124
Should probably migrate to
"node": "^20.0.0 || ^22.0.0 || >=24.0.0"
with deprecation of Node.js 18 prior to Cypress 15
Please add to the scope under "Component testing":
- Add support for zoneless change detection in @cypress/angular for Angular 20 (#31504) - This is needed as zoneless change detection will be the default in Angular 20 and is related to #30070.
Remember to create a PR to update the peer-dependencies versions of the cypress-axe package
@wlsf82
Remember to create a PR to update the peer-dependencies versions of the cypress-axe package
There are going to be quite a few downstream repos that need updating once Cypress 15 is released. It might be worth having a separate issue for these, although strictly speaking they are out of scope for the central cypress repo issue list which covers the core cypress code.
Closing as complete with Release 15.0.0