Skip to content

breaking: 15.0.0 Release #31408

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

Open
wants to merge 126 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
24e7689
chore: updating v8 snapshot cache (#31305)
github-actions[bot] Mar 17, 2025
be95849
chore: updating v8 snapshot cache (#31306)
github-actions[bot] Mar 17, 2025
d3353d7
chore: updating v8 snapshot cache (#31307)
github-actions[bot] Mar 17, 2025
a24062b
Merge branch 'develop' into release/15.0.0
jennifer-shehane Mar 28, 2025
6fb1011
breaking change commit
jennifer-shehane Mar 28, 2025
35b5131
chore: updating v8 snapshot cache (#31410)
github-actions[bot] Mar 31, 2025
4e44ccb
chore: updating v8 snapshot cache (#31411)
github-actions[bot] Mar 31, 2025
fd6a923
chore: updating v8 snapshot cache (#31412)
github-actions[bot] Mar 31, 2025
1f81595
breaking: Remove support for Node.js 18 & 23 (#31409)
jennifer-shehane Apr 1, 2025
b2240ce
Merge branch 'develop' into release/15.0.0
jennifer-shehane Apr 1, 2025
707f8ee
chore: updating v8 snapshot cache (#31420)
github-actions[bot] Apr 1, 2025
f23f779
chore: updating v8 snapshot cache (#31421)
github-actions[bot] Apr 1, 2025
534324f
chore: updating v8 snapshot cache (#31422)
github-actions[bot] Apr 1, 2025
25f0fd0
breaking: remove CDP from firefox with Cypress 15 (#31200)
AtofStryker Apr 3, 2025
346e801
chore: merge develop into cypress release 15 branch (#31464)
AtofStryker Apr 8, 2025
6165b8b
chore: merge develop into release/15.0.0
AtofStryker Apr 11, 2025
646ef10
Merge pull request #31489 from cypress-io/chore/merge_15_develop
AtofStryker Apr 11, 2025
144c7ad
chore: updating v8 snapshot cache (#31493)
github-actions[bot] Apr 11, 2025
ac420ed
chore: updating v8 snapshot cache (#31494)
github-actions[bot] Apr 11, 2025
59d2e4e
chore: updating v8 snapshot cache (#31491)
github-actions[bot] Apr 11, 2025
3b5879f
Merge branch 'develop' of github.com:cypress-io/cypress into chore/me…
AtofStryker Apr 15, 2025
8cee6dc
Merge pull request #31507 from cypress-io/chore/merge_dev_15
AtofStryker Apr 15, 2025
012fbfd
chore: updating v8 snapshot cache (#31514)
github-actions[bot] Apr 15, 2025
8b2e9e5
chore: updating v8 snapshot cache (#31515)
github-actions[bot] Apr 15, 2025
570b786
chore: updating v8 snapshot cache (#31517)
github-actions[bot] Apr 15, 2025
0a51e6d
chore: cut over web extension methods to use webdriver BiDi to automa…
AtofStryker Apr 18, 2025
c33504c
chore: updating v8 snapshot cache (#31545)
github-actions[bot] Apr 18, 2025
06c373e
chore: updating v8 snapshot cache (#31544)
github-actions[bot] Apr 18, 2025
a114df9
chore: updating v8 snapshot cache (#31543)
github-actions[bot] Apr 18, 2025
057a8b9
Merge branch 'develop' into release/15.0.0
jennifer-shehane Apr 18, 2025
0e1c8c1
breaking: remove support for typescript 4 (#31492)
AtofStryker Apr 18, 2025
808a7c8
Merge branch 'develop' into release/15.0.0
jennifer-shehane Apr 18, 2025
0f14f69
delete firefox deprecated message
jennifer-shehane Apr 21, 2025
726244c
Merge branch 'develop' into release/15.0.0
jennifer-shehane Apr 23, 2025
062b340
chore: updating v8 snapshot cache (#31571)
github-actions[bot] Apr 23, 2025
705af5a
chore: updating v8 snapshot cache (#31572)
github-actions[bot] Apr 23, 2025
59323fb
chore: updating v8 snapshot cache (#31573)
github-actions[bot] Apr 23, 2025
971b7ae
breaking: remove Angular 17 support (#31446)
AtofStryker Apr 24, 2025
890280e
chore: updating v8 snapshot cache (#31580)
github-actions[bot] Apr 25, 2025
285b71c
chore: updating v8 snapshot cache (#31579)
github-actions[bot] Apr 25, 2025
1d2a26a
chore: updating v8 snapshot cache (#31578)
github-actions[bot] Apr 25, 2025
9b3b023
feat: replace `ts-node` with `tsx` for parsing user configuration (#3…
AtofStryker Apr 29, 2025
1987f39
chore: updating v8 snapshot cache (#31602)
github-actions[bot] Apr 29, 2025
72241ce
chore: updating v8 snapshot cache (#31603)
github-actions[bot] Apr 29, 2025
d00809c
chore: updating v8 snapshot cache (#31604)
github-actions[bot] Apr 29, 2025
2fd8712
breaking: the minimum version of webpack for webpack-preprocessor and…
AtofStryker May 1, 2025
f235a75
chore: updating v8 snapshot cache (#31623)
github-actions[bot] May 1, 2025
99791cc
chore: updating v8 snapshot cache (#31624)
github-actions[bot] May 1, 2025
50c3b50
chore: updating v8 snapshot cache (#31622)
github-actions[bot] May 1, 2025
f58aabd
breaking: Remove deprecated cy.stub(obj, method, fn) signature (#31548)
jennifer-shehane May 2, 2025
a621b42
Merge branch 'develop' into release/15.0.0
jennifer-shehane May 5, 2025
44bae88
chore: updating v8 snapshot cache (#31637)
github-actions[bot] May 5, 2025
efcb728
chore: updating v8 snapshot cache (#31638)
github-actions[bot] May 5, 2025
a1450f7
chore: updating v8 snapshot cache (#31639)
github-actions[bot] May 5, 2025
8659b27
breaking: make the minimum zone/js version in @cypress/angular 0.14.0…
AtofStryker May 5, 2025
1835883
chore: updating v8 snapshot cache (#31640)
github-actions[bot] May 5, 2025
0ab6dbd
chore: updating v8 snapshot cache (#31641)
github-actions[bot] May 5, 2025
b7de30a
chore: updating v8 snapshot cache (#31642)
github-actions[bot] May 5, 2025
7423b5b
Merge branch 'develop' into release/15.0.0
jennifer-shehane May 6, 2025
b583a40
chore: updating v8 snapshot cache (#31652)
github-actions[bot] May 6, 2025
ad31215
chore: updating v8 snapshot cache (#31653)
github-actions[bot] May 6, 2025
43d97a8
chore: updating v8 snapshot cache (#31654)
github-actions[bot] May 6, 2025
86c2233
Merge branch 'develop' of github.com:cypress-io/cypress into merge_de…
AtofStryker May 7, 2025
737c46c
Merge pull request #31662 from cypress-io/merge_dev_rel_15
AtofStryker May 8, 2025
849f39c
chore: updating v8 snapshot cache (#31668)
github-actions[bot] May 8, 2025
e2e2ebd
chore: updating v8 snapshot cache (#31669)
github-actions[bot] May 8, 2025
f79d1fa
chore: updating v8 snapshot cache (#31670)
github-actions[bot] May 8, 2025
10c6656
misc: Remove migration UI, warnings, and errors for changes pre-Cypre…
jennifer-shehane May 12, 2025
3bd6eac
merge develop into 15
jennifer-shehane May 12, 2025
020747d
chore: updating v8 snapshot cache (#31692)
github-actions[bot] May 12, 2025
ad71490
chore: updating v8 snapshot cache (#31693)
github-actions[bot] May 12, 2025
98fb293
chore: updating v8 snapshot cache (#31694)
github-actions[bot] May 12, 2025
a438738
merge develop
jennifer-shehane May 14, 2025
9148604
chore: updating v8 snapshot cache (#31713)
github-actions[bot] May 14, 2025
20551d6
chore: updating v8 snapshot cache (#31714)
github-actions[bot] May 14, 2025
088c40d
chore: updating v8 snapshot cache (#31715)
github-actions[bot] May 14, 2025
74daed4
Merge branch 'develop' into release/15.0.0
jennifer-shehane May 21, 2025
92ec300
chore: updating v8 snapshot cache (#31761)
github-actions[bot] May 21, 2025
8bcfac4
chore: updating v8 snapshot cache (#31762)
github-actions[bot] May 21, 2025
0e74d2c
chore: updating v8 snapshot cache (#31764)
github-actions[bot] May 21, 2025
8b8230b
breaking: remove built-ins from `@cypress/webpack-batteries-included-…
AtofStryker May 29, 2025
6119d97
chore: updating v8 snapshot cache (#31797)
github-actions[bot] May 29, 2025
2436a3e
chore: updating v8 snapshot cache (#31798)
github-actions[bot] May 29, 2025
7551d44
chore: updating v8 snapshot cache (#31799)
github-actions[bot] May 29, 2025
f369f50
feat: allow for @cypress/webpack-batteries-included-preprocessor to f…
AtofStryker May 29, 2025
b7aff45
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 10, 2025
20483de
yarn lock
jennifer-shehane Jun 10, 2025
1c8bb90
chore: updating v8 snapshot cache (#31861)
github-actions[bot] Jun 10, 2025
4bb16f1
chore: updating v8 snapshot cache (#31860)
github-actions[bot] Jun 10, 2025
fbab363
chore: updating v8 snapshot cache (#31859)
github-actions[bot] Jun 10, 2025
5f2adc3
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 11, 2025
f74f2d0
chore: updating v8 snapshot cache (#31871)
github-actions[bot] Jun 11, 2025
8e186c7
chore: updating v8 snapshot cache (#31870)
github-actions[bot] Jun 11, 2025
4d4c02d
chore: updating v8 snapshot cache (#31869)
github-actions[bot] Jun 11, 2025
32313ca
feat: remove page hide event from triggering unload event listener (#…
jennifer-shehane Jun 11, 2025
968dabb
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 17, 2025
3b60770
chore: updating v8 snapshot cache (#31901)
github-actions[bot] Jun 17, 2025
af5e5d3
chore: updating v8 snapshot cache (#31902)
github-actions[bot] Jun 17, 2025
1ac3edb
chore: updating v8 snapshot cache (#31903)
github-actions[bot] Jun 17, 2025
b75850e
feat: rework window bound commands to use automation clients (#31862)
AtofStryker Jun 17, 2025
49f64e7
chore: add minimal built-ins back in to `@cypress/webpack-batteries-i…
AtofStryker Jun 17, 2025
e6a7df3
chore: Update v8 snapshot cache - linux (#31906)
github-actions[bot] Jun 18, 2025
bb5bedf
chore: Update v8 snapshot cache - darwin (#31907)
github-actions[bot] Jun 18, 2025
96e7472
chore: Update v8 snapshot cache - windows (#31908)
github-actions[bot] Jun 18, 2025
82077cf
chore: fix cy.location() not retrying chained `its()` then chained `s…
AtofStryker Jun 24, 2025
d8cf6dc
rearrange changelog + add new date
jennifer-shehane Jun 24, 2025
4d8444a
chore: make sure to test against cypress recipes release/15.0.0 branc…
AtofStryker Jun 25, 2025
850989e
feat: Rename SelectorPlayground API to ElementSelector API (#31889)
jennifer-shehane Jun 26, 2025
a632921
chore: updating v8 snapshot cache (#31942)
github-actions[bot] Jun 26, 2025
ee783af
chore: updating v8 snapshot cache (#31943)
github-actions[bot] Jun 26, 2025
b1e5fb1
chore: updating v8 snapshot cache (#31944)
github-actions[bot] Jun 26, 2025
3eaf740
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 26, 2025
3f4b35b
chore: updating v8 snapshot cache (#31949)
github-actions[bot] Jun 26, 2025
dbf8876
chore: updating v8 snapshot cache (#31947)
github-actions[bot] Jun 26, 2025
4aeddd9
chore: updating v8 snapshot cache (#31948)
github-actions[bot] Jun 26, 2025
f14336d
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 26, 2025
59637ad
breaking: release version 4.0.0 of @cypress/angular.
AtofStryker Jun 25, 2025
a08bb7b
breaking: release version 4.0.0 of @cypress/webpack-batteries-include…
AtofStryker Jun 26, 2025
ddac377
breaking: release version 7.0.0 of @cypress/webpack-preprocessor.
AtofStryker Jun 26, 2025
c2e6867
Update cli/CHANGELOG.md
jennifer-shehane Jun 27, 2025
8ac685c
Merge branch 'develop' into release/15.0.0
jennifer-shehane Jun 27, 2025
1e3dc31
fix merge conflicts
jennifer-shehane Jun 27, 2025
0d9a2ae
chore: fix flaky tests inside the cypress 15 branch (#31959)
AtofStryker Jun 27, 2025
e29adb7
chore: Update v8 snapshot cache - linux (#31962)
github-actions[bot] Jun 27, 2025
84eaf91
chore: Update v8 snapshot cache - darwin (#31963)
github-actions[bot] Jun 27, 2025
59bead5
chore: Update v8 snapshot cache - windows (#31964)
github-actions[bot] Jun 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .circleci/cache-version.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Bump this version to force CI to re-create the cache from scratch.

5-14-2025
6-9-2025
73 changes: 8 additions & 65 deletions .circleci/workflows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ mainBuildFilters: &mainBuildFilters
- /^release\/\d+\.\d+\.\d+$/
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- 'update-v8-snapshot-cache-on-develop'
- 'update-chrome-stable-from-136.0.7103.113-beta-from-137.0.7151.40'
- 'chore/test_cypress_recipes_15'

# usually we don't build Mac app - it takes a long time
# but sometimes we want to really confirm we are doing the right thing
Expand All @@ -49,11 +49,7 @@ macWorkflowFilters: &darwin-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal:
[
'update-chrome-stable-from-136.0.7103.113-beta-from-137.0.7151.40',
<< pipeline.git.branch >>
]
- equal: [ 'chore/test_cypress_recipes_15', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand All @@ -64,11 +60,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal:
[
'update-chrome-stable-from-136.0.7103.113-beta-from-137.0.7151.40',
<< pipeline.git.branch >>
]
- equal: [ 'chore/test_cypress_recipes_15', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand All @@ -91,11 +83,7 @@ windowsWorkflowFilters: &windows-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal:
[
'update-chrome-stable-from-136.0.7103.113-beta-from-137.0.7151.40',
<< pipeline.git.branch >>
]
- equal: [ 'chore/test_cypress_recipes_15', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand Down Expand Up @@ -169,7 +157,7 @@ commands:
name: Set environment variable to determine whether or not to persist artifacts
command: |
echo "Setting SHOULD_PERSIST_ARTIFACTS variable"
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "update-chrome-stable-from-136.0.7103.113-beta-from-137.0.7151.40" ]]; then
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "chore/test_cypress_recipes_15" ]]; then
export SHOULD_PERSIST_ARTIFACTS=true
fi' >> "$BASH_ENV"
# You must run `setup_should_persist_artifacts` command and be using bash before running this command
Expand Down Expand Up @@ -688,11 +676,6 @@ commands:
description: run subset of tests with injectDocumentDomain config enabled
type: boolean
default: false
is-firefox-cdp:
description: whether or not the group should be associated to the firefox CDP
run or not. This is determined by the browser version.
type: boolean
default: false

steps:
- restore_cached_workspace
Expand Down Expand Up @@ -733,9 +716,6 @@ commands:
if << parameters.inject-document-domain >> ; then
YARN_CMD="cypress:run:inject-document-domain"
PARALLEL="--parallel --group 5x-driver-inject-document-domain-<<parameters.browser>>"
elif << parameters.is-firefox-cdp >> ; then
YARN_CMD="cypress:run"
PARALLEL="--parallel --group 5x-driver-cdp-<<parameters.browser>>"
else
YARN_CMD="cypress:run"
PARALLEL="--parallel --group 5x-driver-<<parameters.browser>>"
Expand Down Expand Up @@ -1201,23 +1181,6 @@ commands:
CYPRESS_INSTALL_BINARY=~/cypress/cypress.zip npm install --legacy-peer-deps ~/cypress/cypress.tgz
fi
working_directory: /tmp/<<parameters.repo>>
- run:
name: Scaffold new config file
working_directory: /tmp/<<parameters.repo>>
environment:
CYPRESS_INTERNAL_FORCE_SCAFFOLD: "1"
command: |
if [[ -f cypress.json ]]; then
rm -rf cypress.json
echo 'module.exports = { e2e: {} }' > cypress.config.js
fi
- run:
name: Rename support file
working_directory: /tmp/<<parameters.repo>>
command: |
if [[ -f cypress/support/index.js ]]; then
mv cypress/support/index.js cypress/support/e2e.js
fi
- run:
name: Print Cypress version
working_directory: /tmp/<<parameters.repo>>
Expand Down Expand Up @@ -2170,18 +2133,6 @@ jobs:
- run-driver-integration-tests:
browser: firefox

# Runs the driver tests using firefox 134, which does NOT use WebDriver BiDi
# This is to test and make sure there aren't regressions with the old CDP driver
driver-integration-tests-firefox-cdp:
<<: *defaults
resource_class: medium+
parallelism: 5
steps:
- run-driver-integration-tests:
browser: firefox
firefox-version: "134.0.2"
is-firefox-cdp: true

driver-integration-tests-electron:
<<: *defaults
parallelism: 5
Expand Down Expand Up @@ -2757,6 +2708,7 @@ jobs:
steps:
- test-binary-against-repo:
repo: cypress-example-recipes
pull_request_id: 921
command: npm run test:ci:firefox
browser: firefox

Expand All @@ -2765,6 +2717,7 @@ jobs:
steps:
- test-binary-against-repo:
repo: cypress-example-recipes
pull_request_id: 921
command: npm run test:ci:chrome
browser: chrome

Expand All @@ -2774,6 +2727,7 @@ jobs:
steps:
- test-binary-against-repo:
repo: cypress-example-recipes
pull_request_id: 921
# Split the specs up across 4 different machines to run in parallel
command: npm run test:ci -- --chunk $CIRCLE_NODE_INDEX --total-chunks
$CIRCLE_NODE_TOTAL
Expand Down Expand Up @@ -2922,7 +2876,6 @@ linux-x64-workflow: &linux-x64-workflow
- run-webpack-dev-server-integration-tests
- run-vite-dev-server-integration-tests
- driver-integration-tests-firefox
- driver-integration-tests-firefox-cdp
- driver-integration-tests-chrome
- driver-integration-tests-chrome-inject-document-domain
- driver-integration-tests-chrome-beta-inject-document-domain
Expand Down Expand Up @@ -2998,10 +2951,6 @@ linux-x64-workflow: &linux-x64-workflow
context: test-runner:cypress-record-key
requires:
- build
- driver-integration-tests-firefox-cdp:
context: test-runner:cypress-record-key
requires:
- build
- driver-integration-tests-electron:
context: test-runner:cypress-record-key
requires:
Expand Down Expand Up @@ -3144,7 +3093,6 @@ linux-x64-workflow: &linux-x64-workflow
- linux-lint
- percy-finalize
- driver-integration-tests-firefox
- driver-integration-tests-firefox-cdp
- driver-integration-tests-chrome
- driver-integration-tests-chrome-beta
- driver-integration-tests-chrome-inject-document-domain
Expand Down Expand Up @@ -3400,10 +3348,6 @@ linux-x64-contributor-workflow: &linux-x64-contributor-workflow
context: test-runner:cypress-record-key
requires:
- contributor-pr
- driver-integration-tests-firefox-cdp:
context: test-runner:cypress-record-key
requires:
- contributor-pr
- driver-integration-tests-electron:
context: test-runner:cypress-record-key
requires:
Expand Down Expand Up @@ -3545,7 +3489,6 @@ linux-x64-contributor-workflow: &linux-x64-contributor-workflow
- linux-lint
- percy-finalize
- driver-integration-tests-firefox
- driver-integration-tests-firefox-cdp
- driver-integration-tests-chrome
- driver-integration-tests-chrome-beta
- driver-integration-tests-electron
Expand Down
29 changes: 29 additions & 0 deletions cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,33 @@
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
## 15.0.0

_Released 07/15/2025 (PENDING)_

**Breaking Changes:**

- Removed support for Node.js 18 and Node.js 23. Addresses [#31302](https://github.com/cypress-io/cypress/issues/31302).
- Removed support for [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol) with the [Firefox](https://www.mozilla.org/firefox/) browser. Addresses [#31189](https://github.com/cypress-io/cypress/issues/31189).
- Removed support of the deprecated 3 argument signature of `cy.stub`. Use `cy.stub(object, name).callsFake(fn)` instead. Addresses [#31346](https://github.com/cypress-io/cypress/issues/31346).
- `@cypress/webpack-dev-server` and `@cypress/webpack-preprocessor` no longer support `webpack` version 4. Addresses [#31344](https://github.com/cypress-io/cypress/issues/31344). If you still need to use `webpack` version 4, please see our [migration guide](https://docs.cypress.io/app/references/migration-guide#Migrating-to-Cypress-150).
- `@cypress/webpack-dev-server` no longer supports `webpack-dev-server` version 4. Addresses [#31605](https://github.com/cypress-io/cypress/issues/31605). If you still need to use `webpack-dev-server` version 4, please see our [migration guide](https://docs.cypress.io/app/references/migration-guide#Migrating-to-Cypress-150).
- In order to better align with best practices, `@cypress/webpack-batteries-included-preprocessor` no longer includes certain browser built-ins that were automatically provided by Webpack 4. The removed built-ins are `assert`, `constants`, `crypto`, `domain`, `events`, `http`, `https`, `punycode`, `querystring`, `string_decoder`, `sys`, `timers`, `tty`, `url`, `util`, `vm`, and `zlib`. However, we know that certain built-ins are popular, given that many users have files that are shared between their Cypress tests and node context. Because of this, `@cypress/webpack-batteries-included-preprocessor` will ship with built-in support for `buffer`, `path`, `process`, `os`, and `stream`. If there is a built-in that isn't supported be default and you need to add support, please refer to the Webpack [resolve.fallback](https://webpack.js.org/configuration/resolve/#resolvefallback) documentation and the [`@cypress/webpack-batteries-included-preprocessor` README](../npm/webpack-batteries-included-preprocessor/README.md). Addresses [#31039](https://github.com/cypress-io/cypress/issues/31039).
- The application under test's `pagehide` event in Chromium browsers will no longer trigger Cypress's `window:unload` event. Addressed in [#31853](https://github.com/cypress-io/cypress/pull/31853).
- The `Cypress.SelectorPlayground` API has been renamed to `Cypress.ElementSelector`. This API was renamed to accommodate its use for defining `selectorPriority` in Cypress Studio and our future [`cy.prompt` release](https://on.cypress.io/cy-prompt-early-access?utm_source=docs&utm_medium=app-changelog&utm_content=cy-prompt-release). Addresses [#31801](https://github.com/cypress-io/cypress/issues/31801). Addressed in [#31889](https://github.com/cypress-io/cypress/pull/31889).
- **Component Testing breaking changes:**
- Removed support for Angular 17. The minimum supported version is now `18.0.0`. Addresses [#31303](https://github.com/cypress-io/cypress/issues/31303).
- `@cypress/angular` now requires a minimum of `zone.js` `0.14.0`. Addresses [#31582](https://github.com/cypress-io/cypress/issues/31582).
- The Cypress configuration wizard for Component Testing supports TypeScript 5.0 or greater. Addresses [#31187](https://github.com/cypress-io/cypress/issues/31187).

**Features:**

- [`cy.url()`](https://docs.cypress.io/api/commands/url), [`cy.hash()`](https://docs.cypress.io/api/commands/hash), [`cy.go()`](https://docs.cypress.io/api/commands/go), [`cy.reload()`](https://docs.cypress.io/api/commands/reload), [`cy.title()`](https://docs.cypress.io/api/commands/title), and [`cy.location()`](https://docs.cypress.io/api/commands/location) now use the automation client (CDP for Chromium browsers and WebDriver BiDi for Firefox) to return the appropriate values from the commands to the user instead of the window object. This is to avoid cross origin issues with [`cy.origin()`](https://docs.cypress.io/api/commands/origin) so these commands can be invoked anywhere inside a Cypress test without having to worry about origin access issues. Experimental Webkit still will use the window object to retrieve these values. Also, [`cy.window()`](https://docs.cypress.io/api/commands/window) will always return the current window object, regardless of origin restrictions. Not every property from the window object will be accessible depending on the origin context. Addresses [#31196](https://github.com/cypress-io/cypress/issues/31196).
- Selectors accepted in the `selectorPriority` of the `SelectorPlayground` (renamed to `ElementSelector`) API have been expanded to accept `name` and `attributes:*`. Additionally, the default selector priority used by Cypress now includes `name`. Addresses [#31801](https://github.com/cypress-io/cypress/issues/30309) and [#6876](https://github.com/cypress-io/cypress/issues/6876). Addressed in [#31889](https://github.com/cypress-io/cypress/pull/31889).
- [`tsx`](https://tsx.is/) is now used in all cases to run the Cypress config, replacing [ts-node](https://github.com/TypeStrong/ts-node) for TypeScript and Node for commonjs/ESM. This should allow for more interoperability for users who are using any variant of ES Modules. Addresses [#8090](https://github.com/cypress-io/cypress/issues/8090), [#15724](https://github.com/cypress-io/cypress/issues/15724), [#21805](https://github.com/cypress-io/cypress/issues/21805), [#22273](https://github.com/cypress-io/cypress/issues/22273), [#22747](https://github.com/cypress-io/cypress/issues/22747), [#23141](https://github.com/cypress-io/cypress/issues/23141), [#25958](https://github.com/cypress-io/cypress/issues/25958), [#25959](https://github.com/cypress-io/cypress/issues/25959), [#26606](https://github.com/cypress-io/cypress/issues/26606), [#27359](https://github.com/cypress-io/cypress/issues/27359), [#27450](https://github.com/cypress-io/cypress/issues/27450), [#28442](https://github.com/cypress-io/cypress/issues/28442), [#30318](https://github.com/cypress-io/cypress/issues/30318), [#30718](https://github.com/cypress-io/cypress/issues/30718), [#30907](https://github.com/cypress-io/cypress/issues/30907), [#30915](https://github.com/cypress-io/cypress/issues/30915), [#30925](https://github.com/cypress-io/cypress/issues/30925), [#30954](https://github.com/cypress-io/cypress/issues/30954) and [#31185](https://github.com/cypress-io/cypress/issues/31185).

**Misc:**

- Migration helpers and related errors are no longer shown when upgrading from Cypress versions earlier than 10.0.0. To migrate from a pre-10.0.0 version, upgrade one major version at a time to receive the appropriate guidance. Addresses [#31345](https://github.com/cypress-io/cypress/issues/31345). Addressed in [https://github.com/cypress-io/cypress/pull/31629/](https://github.com/cypress-io/cypress/pull/31629/).

## 14.5.1

_Released 7/01/2025 (PENDING)_
Expand Down
2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
"cypress": "bin/cypress"
},
"engines": {
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
"node": "^20.0.0 || ^22.0.0 || >=24.0.0"
},
"types": "types",
"exports": {
Expand Down
38 changes: 26 additions & 12 deletions cli/types/cypress.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -696,10 +696,21 @@ declare namespace Cypress {
}

/**
* @see https://on.cypress.io/selector-playground-api
* Element selector logic used for generating selectors for elements
* in the Selector Playground and Cypress Studio.
* @see https://on.cypress.io/element-selector-api
*/
ElementSelector: {
defaults(options: Partial<ElementSelectorDefaultsOptions>): void
getSelector($el: JQuery): JQuery.Selector
}

/**
* @deprecated Use ElementSelector instead
* @see https://on.cypress.io/element-selector-api
*/
SelectorPlayground: {
defaults(options: Partial<SelectorPlaygroundDefaultsOptions>): void
defaults(options: Partial<ElementSelectorDefaultsOptions>): void
getSelector($el: JQuery): JQuery.Selector
}

Expand Down Expand Up @@ -2126,12 +2137,6 @@ declare namespace Cypress {
* expect(o.toString).to.have.been.calledOnce
*/
stub<T>(obj: T, method: keyof T): Agent<sinon.SinonStub>
/**
* Stubs a method on an object
*
* @deprecated Use `cy.stub(object, name).callsFake(fn)` instead
*/
stub<T>(obj: T, method: keyof T, func: (...args: any[]) => any): Agent<sinon.SinonStub>

/**
* Submit a form.
Expand Down Expand Up @@ -2977,7 +2982,7 @@ declare namespace Cypress {
*/
requestTimeout: number
/**
* Time, in milliseconds, to wait until a response in a [cy.request()](https://on.cypress.io/request), [cy.wait()](https://on.cypress.io/wait), [cy.fixture()](https://on.cypress.io/fixture), [cy.getCookie()](https://on.cypress.io/getcookie), [cy.getCookies()](https://on.cypress.io/getcookies), [cy.setCookie()](https://on.cypress.io/setcookie), [cy.clearCookie()](https://on.cypress.io/clearcookie), [cy.clearCookies()](https://on.cypress.io/clearcookies), and [cy.screenshot()](https://on.cypress.io/screenshot) commands
* Time, in milliseconds, to wait for a response in a [cy.request()](https://on.cypress.io/request), [cy.wait()](https://on.cypress.io/wait), [cy.fixture()](https://on.cypress.io/fixture), [cy.getCookie()](https://on.cypress.io/getcookie), [cy.getCookies()](https://on.cypress.io/getcookies), [cy.setCookie()](https://on.cypress.io/setcookie), [cy.clearCookie()](https://on.cypress.io/clearcookie), [cy.clearCookies()](https://on.cypress.io/clearcookies), and [cy.screenshot()](https://on.cypress.io/screenshot) commands
* @default 30000
*/
responseTimeout: number
Expand Down Expand Up @@ -3720,9 +3725,18 @@ declare namespace Cypress {
screenshotOnRunFailure: boolean
}

interface SelectorPlaygroundDefaultsOptions {
selectorPriority: string[]
onElement: ($el: JQuery) => string | null | undefined
type SelectorPriority =
| `attribute:${string}`
| 'attributes'
| 'class'
| `data-${string}`
| 'id'
| 'name'
| 'nth-child'
| 'tag'

interface ElementSelectorDefaultsOptions {
selectorPriority?: SelectorPriority[]
}

interface ScrollToOptions extends Loggable, Timeoutable {
Expand Down
2 changes: 1 addition & 1 deletion cli/types/tests/plugins-config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// checking types passed to cypress/plugins/index.js file
// checking types passed through setupNodeEvents

// does nothing
const pluginConfig: Cypress.PluginConfig = (on, config) => {}
Expand Down
Loading
Loading