diff --git a/.vscode/cspell.json b/.vscode/cspell.json index bc6c6cdb3f..66655a1ec3 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -4,21 +4,32 @@ "dictionaryDefinitions": [], "dictionaries": [], "words": [ + "BABELTRAVERSE", "Chainable", + "clippable", + "codeframes", "composables", "dedup", + "dockerized", + "duplexify", + "EMFILE", + "ENFILE", "ERRORED", "esbuild", "execa", "Fetchable", "Fetchables", "forcedefault", + "framebusting", + "geckodriver", "getenv", "GIBIBYTES", "graphcache", + "headlessly", "headlessui", "Iconify", "intlify", + "keyup", "KIBIBYTE", "kibibytes", "Lachlan", @@ -27,16 +38,23 @@ "msapplication", "norewrite", "NOTESTS", + "Nuxt", "OVERLIMIT", "overscan", "packherd", + "pagehide", "pidusage", "Pinia", "pnpm", + "prerequests", "pseudoclass", + "PULLREQUEST", + "PULLREQUESTNUMBER", + "retryable", "revparse", "Screenshotting", "semibold", + "setuid", "shiki", "snapbuild", "snapgen", @@ -50,6 +68,8 @@ "TIMEDOUT", "titleize", "topnav", + "Transpiling", + "uncategorized", "unconfigured", "unplugin", "unref", @@ -59,7 +79,8 @@ "viewports", "vite", "vitejs", - "vueuse" + "vueuse", + "xulstore" ], "ignoreWords": [], "import": [] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6684014d16..0a522bded0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,27 +17,62 @@ Thanks for taking the time to contribute! :smile: ## Table of Contents -- [Code of Conduct](#code-of-conduct) -- [Opening Issues](#opening-issues) -- [Writing Documentation](#writing-documentation) -- [Writing Code](#writing-code) - - [What you need to know before getting started](#what-you-need-to-know-before-getting-started) - - [Requirements](#requirements) - - [Getting Started](#getting-started) - - [Coding Style](#coding-style) - - [Adding links within code](#adding-links-within-code) - - [Tests](#tests) - - [Packages](#packages) -- [Committing Code](#committing-code) - - [Branches](#branches) - - [Pull Requests](#pull-requests) - - [Dependencies](#dependencies) -- [Reviewing Code](#reviewing-code) - - [Some rules about Code Review](#some-rules-about-code-review) - - [Steps to take during Code Review](#steps-to-take-during-code-review) - - [Code Review Checklist](#code-review-checklist) - - [Code Review of Dependency Updates](#code-review-of-dependency-updates) -- [Releases](#releases) +- [Contributing to Cypress](#contributing-to-cypress) + - [Table of Contents](#table-of-contents) + - [Code of Conduct](#code-of-conduct) + - [Opening Issues](#opening-issues) + - [Update Cypress](#update-cypress) + - [Getting more information](#getting-more-information) + - [Fill out our Issue Template](#fill-out-our-issue-template) + - [Describe Problems](#describe-problems) + - [Reproducibility](#reproducibility) + - [Common issues](#common-issues) + - [Writing Documentation](#writing-documentation) + - [Writing code](#writing-code) + - [What you need to know before getting started](#what-you-need-to-know-before-getting-started) + - [Cypress and Packages](#cypress-and-packages) + - [Requirements](#requirements) + - [Debian/Ubuntu](#debianubuntu) + - [Windows](#windows) + - [Corepack](#corepack) + - [Getting Started](#getting-started) + - [Adding new Dependencies](#adding-new-dependencies) + - [Tasks](#tasks) + - [Common Top Level Tasks](#common-top-level-tasks) + - [Package-Level Scripts](#package-level-scripts) + - [Internal Vite Options](#internal-vite-options) + - [`CYPRESS_INTERNAL_VITE_DEV`](#cypress_internal_vite_dev) + - [`CYPRESS_INTERNAL_VITE_INSPECT`](#cypress_internal_vite_inspect) + - [`CYPRESS_INTERNAL_VITE_OPEN_MODE_TESTING`](#cypress_internal_vite_open_mode_testing) + - [`CYPRESS_INTERNAL_VITE_APP_PORT`](#cypress_internal_vite_app_port) + - [`CYPRESS_INTERNAL_VITE_LAUNCHPAD_PORT`](#cypress_internal_vite_launchpad_port) + - [Debug Logs](#debug-logs) + - [Coding Style](#coding-style) + - [Adding links within code](#adding-links-within-code) + - [Tests](#tests) + - [Docker](#docker) + - [Docker as a performance constrained environment](#docker-as-a-performance-constrained-environment) + - [Packages](#packages) + - [Committing Code](#committing-code) + - [Branches](#branches) + - [Pull Requests](#pull-requests) + - [Write Some Tests](#write-some-tests) + - [Dependencies](#dependencies) + - [Reviewing Code](#reviewing-code) + - [Some rules about Code Review](#some-rules-about-code-review) + - [Steps to take during Code Review](#steps-to-take-during-code-review) + - [Code Review Checklist](#code-review-checklist) + - [User Experience](#user-experience) + - [Functionality](#functionality) + - [Maintainability](#maintainability) + - [Quality](#quality) + - [Code Review of Dependency Updates](#code-review-of-dependency-updates) + - [Dependency Update Instructions](#dependency-update-instructions) + - [Dependency Updates Checklist](#dependency-updates-checklist) + - [Releases](#releases) + - [Known problems](#known-problems) + - [ENFILE or EMFILE](#enfile-or-emfile) + - [lock file](#lock-file) ## Code of Conduct @@ -109,7 +144,6 @@ test execution | Running tests inside a single spec | [open](https://github.com/ typescript | Transpiling or bundling TypeScript | [open](https://github.com/cypress-io/cypress/labels/topic%3A%20typescript), [closed](https://github.com/cypress-io/cypress/issues?q=label%3A%22topic%3A+typescript%22+is%3Aclosed) video | Problems with video recordings | [open](https://github.com/cypress-io/cypress/labels/topic%3A%20video%20%F0%9F%93%B9), [closed](https://github.com/cypress-io/cypress/issues?q=label%3A%22topic%3A+video+%F0%9F%93%B9%22+is%3Aclosed) - ## Writing Documentation Cypress documentation lives in a separate repository with its own dependencies and build tools. @@ -329,15 +363,15 @@ Each package is responsible for building itself and testing itself and can do so #### Internal Vite Options When executing top or package level scripts, [Vite](https://vitejs.dev/) may be used to build/host parts of the application. This section is to serve as a general reference for these environment variables that may be leverage throughout the repository. -###### `CYPRESS_INTERNAL_VITE_DEV` +##### `CYPRESS_INTERNAL_VITE_DEV` Set to `1` if wanting to leverage [vite's](https://vitejs.dev/guide/#command-line-interface) `vite dev` over `vite build` to avoid a full [production build](https://vitejs.dev/guide/build.html). -###### `CYPRESS_INTERNAL_VITE_INSPECT` +##### `CYPRESS_INTERNAL_VITE_INSPECT` Used internally to leverage [vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect) to view intermediary vite plugin state. The `CYPRESS_INTERNAL_VITE_DEV` is required for this to be applied correctly. Set to `1` to enable. -###### `CYPRESS_INTERNAL_VITE_OPEN_MODE_TESTING` +##### `CYPRESS_INTERNAL_VITE_OPEN_MODE_TESTING` Leveraged only for internal cy-in-cy type tests to access the Cypress instance from the parent frame. Please see the [E2E Open Mode Testing](./guides/e2e-open-testing.md) Guide. Set to `true` when doing -###### `CYPRESS_INTERNAL_VITE_APP_PORT` +##### `CYPRESS_INTERNAL_VITE_APP_PORT` Leveraged only when `CYPRESS_INTERNAL_VITE_DEV` is set to spawn the vite dev server for the app on the specified port. The default port is `3333`. -###### `CYPRESS_INTERNAL_VITE_LAUNCHPAD_PORT` +##### `CYPRESS_INTERNAL_VITE_LAUNCHPAD_PORT` Leveraged only when `CYPRESS_INTERNAL_VITE_DEV` is set to spawn the vite dev server for the launchpad on the specified port. The default port is `3001`. #### Debug Logs diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index aaa1631d61..7ed09c4155 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -167,7 +167,6 @@ _Released 5/6/2025_ - Downgraded `cli-table3` to 0.6.1. Addressed in [31631](https://github.com/cypress-io/cypress/pull/31631). - ## 14.3.2 _Released 4/22/2025_ @@ -327,7 +326,7 @@ _Released 1/28/2025_ - Fixed an issue where Cypress would incorrectly navigate to `about:blank` when test isolation was disabled and the last test would fail and then retry. Fixes [#28527](https://github.com/cypress-io/cypress/issues/28527). - Fixed a regression introduced in [`14.0.0`](https://docs.cypress.io/guides/references/changelog#14-0-0) where an element would not return the correct visibility if its offset parent was within the clipping element. Fixes [#30922](https://github.com/cypress-io/cypress/issues/30922). -- Fixed a regression introduced in [`14.0.0`](https://docs.cypress.io/guides/references/changelog#14-0-0) where the incorrect visiblity would be returned when either `overflow-x` or `overflow-y` was visible but the other one was clipping. Fixed in [#30934](https://github.com/cypress-io/cypress/pull/30934). +- Fixed a regression introduced in [`14.0.0`](https://docs.cypress.io/guides/references/changelog#14-0-0) where the incorrect visibility would be returned when either `overflow-x` or `overflow-y` was visible but the other one was clipping. Fixed in [#30934](https://github.com/cypress-io/cypress/pull/30934). - Fixed an issue where an `option` element would not return the correct visibility if its parent element has a clipping overflow. Fixed in [#30934](https://github.com/cypress-io/cypress/pull/30934). - Fixed an issue where non-HTMLElement(s) may fail during assertions. Fixes [#30944](https://github.com/cypress-io/cypress/issues/30944) @@ -683,8 +682,7 @@ _Released 6/4/2024_ **Bugfixes:** - Fixed a situation where the Launchpad would hang if the project config had not been loaded when the Launchpad first queries the current project. Fixes [#29486](https://github.com/cypress-io/cypress/issues/29486). -- Pre-emptively fix behavior with Chrome for when `unload` events are forcefully deprecated by using `pagehide` as a proxy. Fixes [#29241](https://github.com/cypress-io/cypress/issues/29241). - +- Preemptively fix behavior with Chrome for when `unload` events are forcefully deprecated by using `pagehide` as a proxy. Fixes [#29241](https://github.com/cypress-io/cypress/issues/29241). **Misc:** @@ -935,7 +933,6 @@ _Released 1/16/2024_ - Improved accessibility of some areas of the Cypress App. Addressed in [#28628](https://github.com/cypress-io/cypress/pull/28628). - Updated some documentation links to go through on.cypress.io. Addressed in [#28623](https://github.com/cypress-io/cypress/pull/28623). - ## 13.6.2 _Released 12/26/2023_ @@ -1044,7 +1041,7 @@ _Released 10/24/2023_ **Bugfixes:** - Fixed a performance regression in `13.3.1` with proxy correlation timeouts and requests issued from web and shared workers. Fixes [#28104](https://github.com/cypress-io/cypress/issues/28104). -- Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Addressed in [#28094](https://github.com/cypress-io/cypress/pull/28094). +- Fixed a performance problem with proxy correlation when requests are aborted and then incorrectly correlated with follow-up requests. Addressed in [#28094](https://github.com/cypress-io/cypress/pull/28094). - Fixed a regression in [10.0.0](#10.0.0), where search would not find a spec if the file name contains "-" or "\_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes [#25303](https://github.com/cypress-io/cypress/issues/25303). ## 13.3.2 @@ -1173,7 +1170,7 @@ _Released 08/15/2023_ **Dependency Updates:** -- Upgraded [`webpack`](https://www.npmjs.com/package/webpack) from `v4` to `v5`. This means that we are now bundling your `e2e` tests with webpack 5. We don't anticipate this causing any noticeable changes. However, if you'd like to keep bundling your `e2e` tests with wepback 4 you can use the same process as before by pinning [@cypress/webpack-batteries-included-preprocessor](https://www.npmjs.com/package/@cypress/webpack-batteries-included-preprocessor) to `v2.x.x` and hooking into the [file:preprocessor](https://docs.cypress.io/api/plugins/preprocessors-api#Usage) plugin event. This will restore the previous bundling process. Additionally, if you're using [@cypress/webpack-batteries-included-preprocessor](https://www.npmjs.com/package/@cypress/webpack-batteries-included-preprocessor) already, a new version has been published to support webpack `v5`. +- Upgraded [`webpack`](https://www.npmjs.com/package/webpack) from `v4` to `v5`. This means that we are now bundling your `e2e` tests with webpack 5. We don't anticipate this causing any noticeable changes. However, if you'd like to keep bundling your `e2e` tests with webpack 4 you can use the same process as before by pinning [@cypress/webpack-batteries-included-preprocessor](https://www.npmjs.com/package/@cypress/webpack-batteries-included-preprocessor) to `v2.x.x` and hooking into the [file:preprocessor](https://docs.cypress.io/api/plugins/preprocessors-api#Usage) plugin event. This will restore the previous bundling process. Additionally, if you're using [@cypress/webpack-batteries-included-preprocessor](https://www.npmjs.com/package/@cypress/webpack-batteries-included-preprocessor) already, a new version has been published to support webpack `v5`. - Upgraded [`tough-cookie`](https://www.npmjs.com/package/tough-cookie) from `4.0` to `4.1.3`, [`@cypress/request`](https://www.npmjs.com/package/@cypress/request) from `2.88.11` to `2.88.12` and [`@cypress/request-promise`](https://www.npmjs.com/package/@cypress/request-promise) from `4.2.6` to `4.2.7` to address a [security vulnerability](https://security.snyk.io/vuln/SNYK-JS-TOUGHCOOKIE-5672873). Fixes [#27261](https://github.com/cypress-io/cypress/issues/27261). ## 12.17.3 @@ -1284,7 +1281,7 @@ during Component Testing onboarding. Addresses [#26852](https://github.com/cypre **Dependency Updates:** -- Upgraded [`find-process`](https://www.npmjs.com/package/find-process) from `1.4.1` to `1.4.7` to address this [Synk](https://security.snyk.io/vuln/SNYK-JS-FINDPROCESS-1090284) security vulnerability. Addressed in [#26906](https://github.com/cypress-io/cypress/pull/26906). +- Upgraded [`find-process`](https://www.npmjs.com/package/find-process) from `1.4.1` to `1.4.7` to address this [Snyk](https://security.snyk.io/vuln/SNYK-JS-FINDPROCESS-1090284) security vulnerability. Addressed in [#26906](https://github.com/cypress-io/cypress/pull/26906). - Upgraded [`firefox-profile`](https://www.npmjs.com/package/firefox-profile) from `4.0.0` to `4.3.2` to address security vulnerabilities within sub-dependencies. Addressed in [#26912](https://github.com/cypress-io/cypress/pull/26912). ## 12.13.0 @@ -1364,7 +1361,7 @@ _Released 04/17/2023_ - Capture the [Azure](https://azure.microsoft.com/) CI provider's environment variable [`SYSTEM_PULLREQUEST_PULLREQUESTNUMBER`](https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#system-variables-devops-services) to display the linked PR number in the Cloud. Addressed in [#26215](https://github.com/cypress-io/cypress/pull/26215). - Fixed an issue in the onboarding wizard where project framework & bundler would not be auto-detected when opening directly into component testing mode using the `--component` CLI flag. Fixes [#22777](https://github.com/cypress-io/cypress/issues/22777) and [#26388](https://github.com/cypress-io/cypress/issues/26388). -- Updated to use the `SEMAPHORE_GIT_WORKING_BRANCH` [Semphore](https://docs.semaphoreci.com) CI environment variable to correctly associate a Cloud run to the current branch. Previously this was incorrectly associating a run to the target branch. Fixes [#26309](https://github.com/cypress-io/cypress/issues/26309). +- Updated to use the `SEMAPHORE_GIT_WORKING_BRANCH` [Semaphore](https://docs.semaphoreci.com) CI environment variable to correctly associate a Cloud run to the current branch. Previously this was incorrectly associating a run to the target branch. Fixes [#26309](https://github.com/cypress-io/cypress/issues/26309). - Fix an edge case in Component Testing where a custom `baseUrl` in `tsconfig.json` for Next.js 13.2.0+ is not respected. This was partially fixed in [#26005](https://github.com/cypress-io/cypress/pull/26005), but an edge case was missed. Fixes [#25951](https://github.com/cypress-io/cypress/issues/25951). - Fixed an issue where `click` events fired on `.type('{enter}')` did not propagate through shadow roots. Fixes [#26392](https://github.com/cypress-io/cypress/issues/26392).