Skip to content

breaking: remove Angular 17 support #31446

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 9 commits into
base: release/15.0.0
Choose a base branch
from
22 changes: 5 additions & 17 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'
- 'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal'
- 'breaking/remove_angular_17_cursor'

# 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:
[
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
<< pipeline.git.branch >>
]
- equal: [ 'breaking/remove_angular_17_cursor', << 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:
[
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
<< pipeline.git.branch >>
]
- equal: [ 'breaking/remove_angular_17_cursor', << 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:
[
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
<< pipeline.git.branch >>
]
- equal: [ 'breaking/remove_angular_17_cursor', << 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" != "ryanm/fix/having-trouble-debugging-your-ci-failures-minimal" ]]; then
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "breaking/remove_angular_17_cursor" ]]; 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
1 change: 1 addition & 0 deletions cli/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ _Released 07/01/2025 (PENDING)_

**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).
- 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/) browser. Addresses [#31189](https://github.com/cypress-io/cypress/issues/31189).
- The Cypress configuration wizard for Component Testing supports TypeScript 5.0 or greater. Addresses [#31187](https://github.com/cypress-io/cypress/issues/31187).
Expand Down
2 changes: 1 addition & 1 deletion npm/angular/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Mount Angular components in the open source [Cypress.io](https://www.cypress.io/

## Requirements

- Angular 17.2.0+ (Cypress 13 and under supports Angular 13 - 16)
- Angular 18.0.0+ (`@cypress/angular@2` supports Angular 13 - 16 and `@cypress/angular@3` supports Angular 17)

## Development

Expand Down
12 changes: 6 additions & 6 deletions npm/angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@
},
"dependencies": {},
"devDependencies": {
"@angular/common": "^17.2.0",
"@angular/core": "^17.2.0",
"@angular/platform-browser-dynamic": "^17.2.0",
"@angular/common": "^18.0.0",
"@angular/core": "^18.0.0",
"@angular/platform-browser-dynamic": "^18.0.0",
"@cypress/mount-utils": "0.0.0-development",
"rollup": "^4.24.4",
"typescript": "~5.4.5",
"zone.js": "~0.14.6"
},
"peerDependencies": {
"@angular/common": ">=17.2",
"@angular/core": ">=17.2",
"@angular/platform-browser-dynamic": ">=17.2",
"@angular/common": ">=18.0.0",
"@angular/core": ">=18.0.0",
"@angular/platform-browser-dynamic": ">=18.0.0",
"rxjs": ">=7.5.0",
"zone.js": ">=0.13.0"
},
Expand Down
3 changes: 1 addition & 2 deletions npm/cypress-schematic/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@

## Requirements

- Angular 17.2.0+ (Cypress 13 and under supports Angular 13 - 16)

- Angular 18.0.0+ (`@cypress/schematic@2` supports Angular 13 - 16 and `@cypress/schematic@3` supports Angular 17)
## Usage ⏯

### Adding E2E and Component Testing
Expand Down
4 changes: 2 additions & 2 deletions npm/cypress-schematic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
"vitest": "2.1.4"
},
"peerDependencies": {
"@angular/cli": ">=17.2",
"@angular/core": ">=17.2"
"@angular/cli": ">=18.0.0",
"@angular/core": ">=18.0.0"
},
"license": "MIT",
"repository": {
Expand Down
1 change: 0 additions & 1 deletion npm/webpack-dev-server/cypress/e2e/angular.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import type { ProjectFixtureDir } from '@tooling/system-tests/lib/fixtureDirs'

const WEBPACK_ANGULAR: ProjectFixtureDir[] = [
'angular-17',
'angular-18',
'angular-19',
]
Expand Down
2 changes: 1 addition & 1 deletion packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ describe.skip('Svelte', {
})
})

const angularVersions = [17, 18] as const
const angularVersions = [18, 19] as const

angularVersions.forEach((angularVersion) => {
describe(`Angular ${angularVersion}`, {
Expand Down
10 changes: 5 additions & 5 deletions packages/scaffold-config/src/dependencies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_CLI = {
package: '@angular/cli',
installer: '@angular/cli',
description: 'CLI tool that you use to initialize, develop, scaffold, and maintain Angular applications.',
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
minVersion: '^18.0.0 || ^19.0.0',
} as const

export const WIZARD_DEPENDENCY_ANGULAR_DEVKIT_BUILD_ANGULAR = {
Expand All @@ -79,7 +79,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_DEVKIT_BUILD_ANGULAR = {
package: '@angular-devkit/build-angular',
installer: '@angular-devkit/build-angular',
description: 'Angular Webpack build facade',
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
minVersion: '^18.0.0 || ^19.0.0',
} as const

export const WIZARD_DEPENDENCY_ANGULAR_CORE = {
Expand All @@ -88,7 +88,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_CORE = {
package: '@angular/core',
installer: '@angular/core',
description: 'The core of the Angular framework',
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
minVersion: '^18.0.0 || ^19.0.0',
} as const

export const WIZARD_DEPENDENCY_ANGULAR_COMMON = {
Expand All @@ -97,7 +97,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_COMMON = {
package: '@angular/common',
installer: '@angular/common',
description: 'Commonly needed Angular directives and services',
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
minVersion: '^18.0.0 || ^19.0.0',
} as const

export const WIZARD_DEPENDENCY_ANGULAR_PLATFORM_BROWSER_DYNAMIC = {
Expand All @@ -106,7 +106,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_PLATFORM_BROWSER_DYNAMIC = {
package: '@angular/platform-browser-dynamic',
installer: '@angular/platform-browser-dynamic',
description: 'Library for using Angular in a web browser with JIT compilation',
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
minVersion: '^18.0.0 || ^19.0.0',
} as const

export const WIZARD_DEPENDENCY_SVELTE: Cypress.CypressComponentDependency = {
Expand Down
2 changes: 1 addition & 1 deletion packages/scaffold-config/test/unit/detect.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ describe('detectFramework', () => {
})
})

;['17.2.0', '18.2.0'].forEach((v) => {
;['18.2.0', '19.2.9'].forEach((v) => {
it(`Angular CLI v${v}`, async () => {
const projectPath = await scaffoldMigrationProject('angular-cli-unconfigured')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class StudioServer implements StudioServerShape {
destroy (): Promise<void> {
return Promise.resolve()
}

addSocketListeners (socket: Socket): void {
// This is a test implementation that does nothing
}
Expand Down
96 changes: 0 additions & 96 deletions system-tests/projects/angular-17/angular.json

This file was deleted.

29 changes: 0 additions & 29 deletions system-tests/projects/angular-17/cypress.config.ts

This file was deleted.

39 changes: 0 additions & 39 deletions system-tests/projects/angular-17/package.json

This file was deleted.

Loading