Skip to content

Commit 971b7ae

Browse files
breaking: remove Angular 17 support (#31446)
* breaking: remove Angular 17 support BREAKING CHANGE: Removed support for Angular 17. Only Angular 18 and 19 are now supported. This change affects the @cypress/angular package. Addresses #31303. * empty commit to kick CI * update changelog references to make it clearer on where angular 17 packages live historically * fix cy framework errors app test to use angualr 18 and 19 * fix issue where di was not discoverable in resolved system tests config * fix scaffold dependencies to use angular 18 and 19 and not 17 and 18 * fix zonr.js system test dependency resolution * bump cache * fix failing handler test --------- Co-authored-by: Jennifer Shehane <[email protected]>
1 parent 59323fb commit 971b7ae

File tree

34 files changed

+15944
-23638
lines changed

34 files changed

+15944
-23638
lines changed

.circleci/cache-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Bump this version to force CI to re-create the cache from scratch.
22

3-
4-22-2025
3+
4-24-2025

.circleci/workflows.yml

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ mainBuildFilters: &mainBuildFilters
3838
- /^release\/\d+\.\d+\.\d+$/
3939
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
4040
- 'update-v8-snapshot-cache-on-develop'
41-
- 'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal'
41+
- 'breaking/remove_angular_17_cursor'
4242

4343
# usually we don't build Mac app - it takes a long time
4444
# but sometimes we want to really confirm we are doing the right thing
@@ -49,11 +49,7 @@ macWorkflowFilters: &darwin-workflow-filters
4949
- equal: [ develop, << pipeline.git.branch >> ]
5050
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
5151
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
52-
- equal:
53-
[
54-
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
55-
<< pipeline.git.branch >>
56-
]
52+
- equal: [ 'breaking/remove_angular_17_cursor', << pipeline.git.branch >> ]
5753
- matches:
5854
pattern: /^release\/\d+\.\d+\.\d+$/
5955
value: << pipeline.git.branch >>
@@ -64,11 +60,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
6460
- equal: [ develop, << pipeline.git.branch >> ]
6561
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
6662
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
67-
- equal:
68-
[
69-
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
70-
<< pipeline.git.branch >>
71-
]
63+
- equal: [ 'breaking/remove_angular_17_cursor', << pipeline.git.branch >> ]
7264
- matches:
7365
pattern: /^release\/\d+\.\d+\.\d+$/
7466
value: << pipeline.git.branch >>
@@ -91,11 +83,7 @@ windowsWorkflowFilters: &windows-workflow-filters
9183
- equal: [ develop, << pipeline.git.branch >> ]
9284
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
9385
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
94-
- equal:
95-
[
96-
'ryanm/fix/having-trouble-debugging-your-ci-failures-minimal',
97-
<< pipeline.git.branch >>
98-
]
86+
- equal: [ 'breaking/remove_angular_17_cursor', << pipeline.git.branch >> ]
9987
- matches:
10088
pattern: /^release\/\d+\.\d+\.\d+$/
10189
value: << pipeline.git.branch >>
@@ -169,7 +157,7 @@ commands:
169157
name: Set environment variable to determine whether or not to persist artifacts
170158
command: |
171159
echo "Setting SHOULD_PERSIST_ARTIFACTS variable"
172-
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "ryanm/fix/having-trouble-debugging-your-ci-failures-minimal" ]]; then
160+
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "breaking/remove_angular_17_cursor" ]]; then
173161
export SHOULD_PERSIST_ARTIFACTS=true
174162
fi' >> "$BASH_ENV"
175163
# You must run `setup_should_persist_artifacts` command and be using bash before running this command

cli/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ _Released 07/01/2025 (PENDING)_
55

66
**Breaking Changes:**
77

8+
- Removed support for Angular 17. The minimum supported version is now `18.0.0`. Addresses [#31303](https://github.com/cypress-io/cypress/issues/31303).
89
- Removed support for Node.js 18 and Node.js 23. Addresses [#31302](https://github.com/cypress-io/cypress/issues/31302).
910
- 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).
1011
- The Cypress configuration wizard for Component Testing supports TypeScript 5.0 or greater. Addresses [#31187](https://github.com/cypress-io/cypress/issues/31187).

npm/angular/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Mount Angular components in the open source [Cypress.io](https://www.cypress.io/
66
77
## Requirements
88

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

1111
## Development
1212

npm/angular/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@
1313
},
1414
"dependencies": {},
1515
"devDependencies": {
16-
"@angular/common": "^17.2.0",
17-
"@angular/core": "^17.2.0",
18-
"@angular/platform-browser-dynamic": "^17.2.0",
16+
"@angular/common": "^18.0.0",
17+
"@angular/core": "^18.0.0",
18+
"@angular/platform-browser-dynamic": "^18.0.0",
1919
"@cypress/mount-utils": "0.0.0-development",
2020
"rollup": "^4.24.4",
2121
"typescript": "~5.4.5",
2222
"zone.js": "~0.14.6"
2323
},
2424
"peerDependencies": {
25-
"@angular/common": ">=17.2",
26-
"@angular/core": ">=17.2",
27-
"@angular/platform-browser-dynamic": ">=17.2",
25+
"@angular/common": ">=18.0.0",
26+
"@angular/core": ">=18.0.0",
27+
"@angular/platform-browser-dynamic": ">=18.0.0",
2828
"rxjs": ">=7.5.0",
2929
"zone.js": ">=0.13.0"
3030
},

npm/cypress-schematic/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131

3232
## Requirements
3333

34-
- Angular 17.2.0+ (Cypress 13 and under supports Angular 13 - 16)
35-
34+
- Angular 18.0.0+ (`@cypress/schematic@2` supports Angular 13 - 16 and `@cypress/schematic@3` supports Angular 17)
3635
## Usage ⏯
3736

3837
### Adding E2E and Component Testing

npm/cypress-schematic/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
"vitest": "2.1.4"
2828
},
2929
"peerDependencies": {
30-
"@angular/cli": ">=17.2",
31-
"@angular/core": ">=17.2"
30+
"@angular/cli": ">=18.0.0",
31+
"@angular/core": ">=18.0.0"
3232
},
3333
"license": "MIT",
3434
"repository": {

npm/webpack-dev-server/cypress/e2e/angular.cy.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import type { ProjectFixtureDir } from '@tooling/system-tests/lib/fixtureDirs'
44

55
const WEBPACK_ANGULAR: ProjectFixtureDir[] = [
6-
'angular-17',
76
'angular-18',
87
'angular-19',
98
]

npm/webpack-dev-server/test/handlers/angularHandler.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ chai.use(chaiPromise)
2222
describe('angularHandler', function () {
2323
this.timeout(1000 * 60)
2424

25-
it('sources the config from angular-17', async () => {
26-
const projectRoot = await scaffoldMigrationProject('angular-17')
25+
it('sources the config from angular-18', async () => {
26+
const projectRoot = await scaffoldMigrationProject('angular-18')
2727

2828
process.chdir(projectRoot)
2929
const devServerConfig = {

packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ describe.skip('Svelte', {
340340
})
341341
})
342342

343-
const angularVersions = [17, 18] as const
343+
const angularVersions = [18, 19] as const
344344

345345
angularVersions.forEach((angularVersion) => {
346346
describe(`Angular ${angularVersion}`, {

packages/scaffold-config/src/dependencies.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_CLI = {
7070
package: '@angular/cli',
7171
installer: '@angular/cli',
7272
description: 'CLI tool that you use to initialize, develop, scaffold, and maintain Angular applications.',
73-
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
73+
minVersion: '^18.0.0 || ^19.0.0',
7474
} as const
7575

7676
export const WIZARD_DEPENDENCY_ANGULAR_DEVKIT_BUILD_ANGULAR = {
@@ -79,7 +79,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_DEVKIT_BUILD_ANGULAR = {
7979
package: '@angular-devkit/build-angular',
8080
installer: '@angular-devkit/build-angular',
8181
description: 'Angular Webpack build facade',
82-
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
82+
minVersion: '^18.0.0 || ^19.0.0',
8383
} as const
8484

8585
export const WIZARD_DEPENDENCY_ANGULAR_CORE = {
@@ -88,7 +88,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_CORE = {
8888
package: '@angular/core',
8989
installer: '@angular/core',
9090
description: 'The core of the Angular framework',
91-
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
91+
minVersion: '^18.0.0 || ^19.0.0',
9292
} as const
9393

9494
export const WIZARD_DEPENDENCY_ANGULAR_COMMON = {
@@ -97,7 +97,7 @@ export const WIZARD_DEPENDENCY_ANGULAR_COMMON = {
9797
package: '@angular/common',
9898
installer: '@angular/common',
9999
description: 'Commonly needed Angular directives and services',
100-
minVersion: '^17.2.0 || ^18.0.0 || ^19.0.0',
100+
minVersion: '^18.0.0 || ^19.0.0',
101101
} as const
102102

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

112112
export const WIZARD_DEPENDENCY_SVELTE: Cypress.CypressComponentDependency = {

packages/scaffold-config/test/unit/detect.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ describe('detectFramework', () => {
147147
})
148148
})
149149

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

packages/server/test/support/fixtures/cloud/studio/test-studio.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class StudioServer implements StudioServerShape {
2020
destroy (): Promise<void> {
2121
return Promise.resolve()
2222
}
23-
23+
2424
addSocketListeners (socket: Socket): void {
2525
// This is a test implementation that does nothing
2626
}

system-tests/projects/angular-17/angular.json

Lines changed: 0 additions & 96 deletions
This file was deleted.

system-tests/projects/angular-17/cypress.config.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

system-tests/projects/angular-17/package.json

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)