cypress icon indicating copy to clipboard operation
cypress copied to clipboard

Cypress 15: Breaking changes

Open jennifer-shehane opened this issue 1 year ago • 6 comments

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/extension that are firefox specific to use BiDi https://github.com/cypress-io/cypress/issues/30221. Assess progress on milestone~
  • Replace ts-node with tsx for user configuration parsing and cypress runtime
    • ~Spike into removing ts-node https://github.com/cypress-io/cypress/issues/30426~
    • ~Update @packages/data-context to use Stage 3 decorators https://github.com/cypress-io/cypress/issues/31184~
    • ~Replace ts-node with tsx for 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~
  • 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 glibc implications?) 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

jennifer-shehane avatar Dec 16 '24 17:12 jennifer-shehane

  • Electron 34 upgrade (Node.js 22 upgrade) (what are the glibc implications?)

https://github.com/nodejs/node/blob/v22.12.0/BUILDING.md

I don't see any change for glibc.

MikeMcC399 avatar Dec 16 '24 20:12 MikeMcC399

Cypress.runner.stop() - why remove this?

alexsch01 avatar Dec 17 '24 13:12 alexsch01

@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.

jennifer-shehane avatar Dec 17 '24 15:12 jennifer-shehane

iFrame Support Finally would be good or some semi support.

DobQA avatar Jan 01 '25 09:01 DobQA

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

MikeMcC399 avatar Mar 06 '25 19:03 MikeMcC399

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.

AtofStryker avatar Apr 14 '25 17:04 AtofStryker

Remember to create a PR to update the peer-dependencies versions of the cypress-axe package

wlsf82 avatar Jul 15 '25 17:07 wlsf82

@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.

MikeMcC399 avatar Jul 16 '25 10:07 MikeMcC399

Closing as complete with Release 15.0.0

AtofStryker avatar Aug 20 '25 19:08 AtofStryker