From 8442216005b49be8b9293bf63b1147bb203fc745 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Wed, 27 Mar 2024 09:53:48 +0100 Subject: [PATCH 01/11] build: narrow down supported TypeScript versions In https://github.com/angular/angular/pull/54961 the Angular compiler stopped supporting TypeScript versions older than 5.4. These changes narrow down the range for Tooling. --- packages/angular_devkit/build_angular/package.json | 2 +- packages/ngtools/webpack/package.json | 2 +- tests/legacy-cli/e2e/assets/18-ssr-project-webpack/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index a9d2c0d3beb6..169a566d91dd 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -86,7 +86,7 @@ "ng-packagr": "^18.0.0-next.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.5" + "typescript": ">=5.4 <5.5" }, "peerDependenciesMeta": { "@angular/localize": { diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 7dbbdd1ebad7..3a6055586b5b 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -23,7 +23,7 @@ "dependencies": {}, "peerDependencies": { "@angular/compiler-cli": "^18.0.0-next.0", - "typescript": ">=5.2 <5.5", + "typescript": ">=5.4 <5.5", "webpack": "^5.54.0" }, "devDependencies": { diff --git a/tests/legacy-cli/e2e/assets/18-ssr-project-webpack/package.json b/tests/legacy-cli/e2e/assets/18-ssr-project-webpack/package.json index 3c67ad7bc4f8..bcbb68d34a7a 100644 --- a/tests/legacy-cli/e2e/assets/18-ssr-project-webpack/package.json +++ b/tests/legacy-cli/e2e/assets/18-ssr-project-webpack/package.json @@ -42,6 +42,6 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.3.2" + "typescript": "~5.4.2" } } From e308008df0e5b2e02a514aadf95022ce8ffece60 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Mar 2024 15:06:48 -0400 Subject: [PATCH 02/11] refactor(@angular-devkit/build-angular): use build version stamping for build cache path creation The build process will automatically perform package version placeholder replacement within source files. This allows for the package version to be injected into the build cache path creation process as a constant. As the version is now a constant, there is no need to attempt runtime loading of the package metadata to retrieve the package version. --- .../build_angular/src/utils/normalize-cache.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/utils/normalize-cache.ts b/packages/angular_devkit/build_angular/src/utils/normalize-cache.ts index 36f49486bc37..9eccd668e2f3 100644 --- a/packages/angular_devkit/build_angular/src/utils/normalize-cache.ts +++ b/packages/angular_devkit/build_angular/src/utils/normalize-cache.ts @@ -6,8 +6,10 @@ * found in the LICENSE file at https://angular.io/license */ -import { join, resolve } from 'path'; -import { VERSION } from './package-version'; +import { join, resolve } from 'node:path'; + +/** Version placeholder is replaced during the build process with actual package version */ +const VERSION = '0.0.0-PLACEHOLDER'; export interface NormalizedCachedOptions { /** Whether disk cache is enabled. */ From b87b843a1eab83624f66f8c00dd95de075e14b69 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Mar 2024 14:24:06 -0400 Subject: [PATCH 03/11] refactor(@angular-devkit/build-angular): remove unneeded package version from inline font cache key Since the calculated cache path already contains the `@angular-devkit/build-angular` package version, the version is not needed within the cache key for each font URL. This removes the need to import the loaded version from the `package.json` in the font inline logic. --- .../build_angular/src/utils/index-file/inline-fonts.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/utils/index-file/inline-fonts.ts b/packages/angular_devkit/build_angular/src/utils/index-file/inline-fonts.ts index c4775e9a4ac4..df61237af912 100644 --- a/packages/angular_devkit/build_angular/src/utils/index-file/inline-fonts.ts +++ b/packages/angular_devkit/build_angular/src/utils/index-file/inline-fonts.ts @@ -11,9 +11,7 @@ import { createHash } from 'node:crypto'; import { readFile, rm, writeFile } from 'node:fs/promises'; import * as https from 'node:https'; import { join } from 'node:path'; -import { URL } from 'node:url'; import { NormalizedCachedOptions } from '../normalize-cache'; -import { VERSION } from '../package-version'; import { htmlRewritingStream } from './html-rewriting-stream'; interface FontProviderDetails { @@ -173,7 +171,7 @@ export class InlineFontsProcessor { private async getResponse(url: URL): Promise { let cacheFile; if (this.cachePath) { - const key = createHash(CONTENT_HASH_ALGORITHM).update(`${VERSION}|${url}`).digest('hex'); + const key = createHash(CONTENT_HASH_ALGORITHM).update(`${url}`).digest('hex'); cacheFile = join(this.cachePath, key); } From ea55c488644f4f99e004b83c6cb8676862dfed15 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Mar 2024 11:23:49 -0400 Subject: [PATCH 04/11] build: update @bazel/buildifier to v7.1.0 --- package.json | 2 +- yarn.lock | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 03fdb2001d77..d745d0a7c71a 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@babel/preset-env": "7.24.3", "@babel/runtime": "7.24.1", "@bazel/bazelisk": "1.19.0", - "@bazel/buildifier": "6.4.0", + "@bazel/buildifier": "7.1.0", "@bazel/concatjs": "5.8.1", "@bazel/esbuild": "5.8.1", "@bazel/jasmine": "5.8.1", diff --git a/yarn.lock b/yarn.lock index df0139d76d65..deda5274ca52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -130,8 +130,7 @@ tslib "^2.3.0" "@angular/bazel@https://github.com/angular/bazel-builds.git#f0c522de0e15e2eac42bb0fa9525103bdc72bf4b": - version "18.0.0-next.1+sha-0461bff" - uid f0c522de0e15e2eac42bb0fa9525103bdc72bf4b + version "18.0.0-next.1" resolved "https://github.com/angular/bazel-builds.git#f0c522de0e15e2eac42bb0fa9525103bdc72bf4b" dependencies: "@microsoft/api-extractor" "^7.24.2" @@ -148,7 +147,6 @@ "@angular/build-tooling@https://github.com/angular/dev-infra-private-build-tooling-builds.git#b60378db662fba684feb5ed9aa1ec319d7c77354": version "0.0.0-8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f" - uid b60378db662fba684feb5ed9aa1ec319d7c77354 resolved "https://github.com/angular/dev-infra-private-build-tooling-builds.git#b60378db662fba684feb5ed9aa1ec319d7c77354" dependencies: "@angular-devkit/build-angular" "17.3.0-rc.0" @@ -316,7 +314,6 @@ "@angular/ng-dev@https://github.com/angular/dev-infra-private-ng-dev-builds.git#87b7674b7dfe7abeb565f555cd19a9760ee46c72": version "0.0.0-8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f" - uid "87b7674b7dfe7abeb565f555cd19a9760ee46c72" resolved "https://github.com/angular/dev-infra-private-ng-dev-builds.git#87b7674b7dfe7abeb565f555cd19a9760ee46c72" dependencies: "@yarnpkg/lockfile" "^1.1.0" @@ -1509,10 +1506,10 @@ resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-6.3.3.tgz#ff21352ac9f72df6a53cc8ad9b862eb68918c1e9" integrity sha512-0f5eNWhylZQbiTddfVkIXKkugQadzZdonLw4ur58oK4X+gIHOZ42Xv94sepu8Di9UWKFXNc4zxuuTiWM22hGvw== -"@bazel/buildifier@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-6.4.0.tgz#5d5e56fa1ba74aa2e55e0e84bd17ead95e3f0c02" - integrity sha512-upvdCVlXYOatvank2Ch5lfNe9Msgny1Fozdz4fIm8diVju4Kd2JmA9DVS/Tg8UlFX/ItAL1PdSyefWK8Ashwdg== +"@bazel/buildifier@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-7.1.0.tgz#68e505647394da28350881a6a46eca10bba5fe42" + integrity sha512-FgjztMqd+6OMJzvgUHDWo/qdMxiRaIy8hWth6fA0RWvhnqds2019xWXVOdCjyDWYXqj/Wb5hKGblLS3lzD3ryQ== "@bazel/concatjs@5.8.1": version "5.8.1" @@ -12189,7 +12186,6 @@ sass@1.72.0, sass@^1.69.5: "sauce-connect-proxy@https://saucelabs.com/downloads/sc-4.9.1-linux.tar.gz": version "0.0.0" - uid "9310bc860f7870a1f872b11c4dc6073a1ad34e5e" resolved "https://saucelabs.com/downloads/sc-4.9.1-linux.tar.gz#9310bc860f7870a1f872b11c4dc6073a1ad34e5e" saucelabs@^1.5.0: From cf4369f7d6d33dff36037af54bec863bc46d969e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 28 Mar 2024 21:11:11 +0000 Subject: [PATCH 05/11] build: update angular --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 36 +++--- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- package.json | 30 ++--- packages/ngtools/webpack/package.json | 4 +- tests/legacy-cli/e2e/ng-snapshot/package.json | 32 ++--- yarn.lock | 119 +++++++++--------- 8 files changed, 116 insertions(+), 113 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 5c47863cedf2..ffb3f1935c6f 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + - uses: angular/dev-infra/github-actions/branch-manager@4b433074a806bbbd4d319264430740cd46e62f27 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40ebac0b7dba..4001d70c8163 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup ESLint Caching uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: @@ -75,11 +75,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/configure-remote@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Build release targets @@ -96,11 +96,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/configure-remote@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Run tests @@ -128,13 +128,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/configure-remote@4b433074a806bbbd4d319264430740cd46e62f27 - name: Run CLI E2E tests run: yarn bazel test --define=E2E_SHARD_TOTAL=6 --define=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -151,13 +151,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/configure-remote@4b433074a806bbbd4d319264430740cd46e62f27 - name: Run CLI E2E tests run: yarn bazel test --define=E2E_SHARD_TOTAL=6 --define=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} @@ -169,13 +169,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/configure-remote@4b433074a806bbbd4d319264430740cd46e62f27 - name: Run E2E Browser tests env: SAUCE_USERNAME: ${{ vars.SAUCE_USERNAME }} @@ -203,11 +203,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@4b433074a806bbbd4d319264430740cd46e62f27 - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + uses: angular/dev-infra/github-actions/bazel/setup@4b433074a806bbbd4d319264430740cd46e62f27 - run: yarn admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index ba40ddd44dca..15b8dc8e4417 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: angular/dev-infra/github-actions/commit-message-based-labels@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + - uses: angular/dev-infra/github-actions/commit-message-based-labels@4b433074a806bbbd4d319264430740cd46e62f27 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: angular/dev-infra/github-actions/post-approval-changes@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + - uses: angular/dev-infra/github-actions/post-approval-changes@4b433074a806bbbd4d319264430740cd46e62f27 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 74a5bbf3405d..e9dd4895f002 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f + - uses: angular/dev-infra/github-actions/feature-request@4b433074a806bbbd4d319264430740cd46e62f27 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/package.json b/package.json index d745d0a7c71a..7b4032769585 100644 --- a/package.json +++ b/package.json @@ -51,23 +51,23 @@ }, "devDependencies": { "@ampproject/remapping": "2.3.0", - "@angular/animations": "18.0.0-next.1", - "@angular/bazel": "https://github.com/angular/bazel-builds.git#f0c522de0e15e2eac42bb0fa9525103bdc72bf4b", - "@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#b60378db662fba684feb5ed9aa1ec319d7c77354", + "@angular/animations": "18.0.0-next.2", + "@angular/bazel": "https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409", + "@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#9831b1aa2e40b8fdf1ebd44650797b5fd4ba08c3", "@angular/cdk": "18.0.0-next.1", - "@angular/common": "18.0.0-next.1", - "@angular/compiler": "18.0.0-next.1", - "@angular/compiler-cli": "18.0.0-next.1", - "@angular/core": "18.0.0-next.1", - "@angular/forms": "18.0.0-next.1", - "@angular/localize": "18.0.0-next.1", + "@angular/common": "18.0.0-next.2", + "@angular/compiler": "18.0.0-next.2", + "@angular/compiler-cli": "18.0.0-next.2", + "@angular/core": "18.0.0-next.2", + "@angular/forms": "18.0.0-next.2", + "@angular/localize": "18.0.0-next.2", "@angular/material": "18.0.0-next.1", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#87b7674b7dfe7abeb565f555cd19a9760ee46c72", - "@angular/platform-browser": "18.0.0-next.1", - "@angular/platform-browser-dynamic": "18.0.0-next.1", - "@angular/platform-server": "18.0.0-next.1", - "@angular/router": "18.0.0-next.1", - "@angular/service-worker": "18.0.0-next.1", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#a8690b0870728efc1aea5eb6644e605e7d37eabc", + "@angular/platform-browser": "18.0.0-next.2", + "@angular/platform-browser-dynamic": "18.0.0-next.2", + "@angular/platform-server": "18.0.0-next.2", + "@angular/router": "18.0.0-next.2", + "@angular/service-worker": "18.0.0-next.2", "@babel/core": "7.24.3", "@babel/generator": "7.24.1", "@babel/helper-annotate-as-pure": "7.22.5", diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 3a6055586b5b..8353a1fdbc8a 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -28,8 +28,8 @@ }, "devDependencies": { "@angular-devkit/core": "0.0.0-PLACEHOLDER", - "@angular/compiler": "18.0.0-next.1", - "@angular/compiler-cli": "18.0.0-next.1", + "@angular/compiler": "18.0.0-next.2", + "@angular/compiler-cli": "18.0.0-next.2", "typescript": "5.4.3", "webpack": "5.91.0" } diff --git a/tests/legacy-cli/e2e/ng-snapshot/package.json b/tests/legacy-cli/e2e/ng-snapshot/package.json index d7481184ebde..7cd3a5c8efdb 100644 --- a/tests/legacy-cli/e2e/ng-snapshot/package.json +++ b/tests/legacy-cli/e2e/ng-snapshot/package.json @@ -2,21 +2,21 @@ "description": "snapshot versions of Angular for e2e testing", "private": true, "dependencies": { - "@angular/animations": "github:angular/animations-builds#792c983c4dc480fd88a206c55cc5653006db69f3", - "@angular/cdk": "github:angular/cdk-builds#f57f7d9ba4c3422e93bb35b3ba9dcd30d4888f1f", - "@angular/common": "github:angular/common-builds#7c6a4ffede64c4a64acd4952c749100937f66b6c", - "@angular/compiler": "github:angular/compiler-builds#c2486606433e2c13e82d69b18626bae94763dc06", - "@angular/compiler-cli": "github:angular/compiler-cli-builds#8fca3ec1e0fbb3f8eaaf4ebd3b4415cde6a8bb51", - "@angular/core": "github:angular/core-builds#3fe637bfb8fba51ce0f09e3d6686c8b5aa05de30", - "@angular/forms": "github:angular/forms-builds#5678edcc9657d775a1de2769d8cab684ea1a19b7", - "@angular/language-service": "github:angular/language-service-builds#6d42fa450ad591a414e8b1c289282b25d5ea583f", - "@angular/localize": "github:angular/localize-builds#7014f1cccc94912d1dc7e62626dc688d645af37d", - "@angular/material": "github:angular/material-builds#f3ce233367f0eda9bf46000a8df024cd61dad923", - "@angular/material-moment-adapter": "github:angular/material-moment-adapter-builds#a9f340f19f57e86bbfd4129b5d6fc173b5ed4fca", - "@angular/platform-browser": "github:angular/platform-browser-builds#b8f4875cbd526c7078a51d02bafd773e5e2b50c8", - "@angular/platform-browser-dynamic": "github:angular/platform-browser-dynamic-builds#4370641c551c2f0cc99391f140c64a0aefe9c3f6", - "@angular/platform-server": "github:angular/platform-server-builds#d4a29f68327101a7d0a8d2b4d0f61622d6a9f242", - "@angular/router": "github:angular/router-builds#13d2c272c9b644e176b6322e57634a3c056dac9d", - "@angular/service-worker": "github:angular/service-worker-builds#2fcaa2487cde4f37ab491f07c2217ad32cc046a7" + "@angular/animations": "github:angular/animations-builds#0082cd75ac4e284b57bf37c0949234cd5318cd08", + "@angular/cdk": "github:angular/cdk-builds#2ea0a35fd99310ff51b90cd0728ba43109b8b629", + "@angular/common": "github:angular/common-builds#395d04ac7fec14deb71789f67d5c253570fee5a5", + "@angular/compiler": "github:angular/compiler-builds#a78e0ddf479c364b750c5e2a76d73730dbc90ee4", + "@angular/compiler-cli": "github:angular/compiler-cli-builds#a6bcc14712ee5d781ac42b8915bf861238e41a11", + "@angular/core": "github:angular/core-builds#78e8a70f55a71b8907f3847f6ae5f69da8a192db", + "@angular/forms": "github:angular/forms-builds#52d5587d596f39d29f65e7145e8b7c9fb4153bfa", + "@angular/language-service": "github:angular/language-service-builds#0ab1f23f43e330c5a1c6ee05d8e8fec6e452bbbb", + "@angular/localize": "github:angular/localize-builds#4382b9646825e93d11038b50ba913745733590e1", + "@angular/material": "github:angular/material-builds#d14520f8534a9bdc5e31fd0e52003d8ea93c3ad6", + "@angular/material-moment-adapter": "github:angular/material-moment-adapter-builds#c3fc84aa5c8ac03d8fc3bcd2ce5292f13ae4b562", + "@angular/platform-browser": "github:angular/platform-browser-builds#da1e1c642df080c0a20052f5dacc378569ec48bc", + "@angular/platform-browser-dynamic": "github:angular/platform-browser-dynamic-builds#99a39ba6880eb37a5b969420d46b100acf6c55c7", + "@angular/platform-server": "github:angular/platform-server-builds#f6874cbb675fab85ab7df201538b9a85fb880cad", + "@angular/router": "github:angular/router-builds#e54d36d0158a31e3c6a04f04160e0e1ed3fe1e29", + "@angular/service-worker": "github:angular/service-worker-builds#a3688a4c946e737b67c8d5675947670e82129fd4" } } diff --git a/yarn.lock b/yarn.lock index deda5274ca52..4056841bdd9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -122,16 +122,17 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular/animations@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-18.0.0-next.1.tgz#547505b7628e2df72ff2b1396a4a6e11e9d3d179" - integrity sha512-brK5bbVh/AQI+TyG/RxdUmJ9chsNgD03PnXKWVxrcsZg1aRFovmooTnGfBSCi+0sryuatGC+UfeY6yUcVCLKjg== +"@angular/animations@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-18.0.0-next.2.tgz#a3c2188c657adcfd79d37a99ebf9f032bfecfe38" + integrity sha512-fYMEtuHDrfFfYL0FHJVlMT6/Dj0Jy/xR4/oBskuq1eaAzuyQiJifHq2bk2u+qUgIcXqmHUjo9t2CyuJr49oO4A== dependencies: tslib "^2.3.0" -"@angular/bazel@https://github.com/angular/bazel-builds.git#f0c522de0e15e2eac42bb0fa9525103bdc72bf4b": - version "18.0.0-next.1" - resolved "https://github.com/angular/bazel-builds.git#f0c522de0e15e2eac42bb0fa9525103bdc72bf4b" +"@angular/bazel@https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409": + version "18.0.0-next.2+sha-22dd52f" + uid "3bf93e3a10c968e4c112e8f40b240fd107c82409" + resolved "https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409" dependencies: "@microsoft/api-extractor" "^7.24.2" magic-string "^0.30.0" @@ -145,9 +146,10 @@ "@angular/core" "^13.0.0 || ^14.0.0-0" reflect-metadata "^0.1.13" -"@angular/build-tooling@https://github.com/angular/dev-infra-private-build-tooling-builds.git#b60378db662fba684feb5ed9aa1ec319d7c77354": - version "0.0.0-8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f" - resolved "https://github.com/angular/dev-infra-private-build-tooling-builds.git#b60378db662fba684feb5ed9aa1ec319d7c77354" +"@angular/build-tooling@https://github.com/angular/dev-infra-private-build-tooling-builds.git#9831b1aa2e40b8fdf1ebd44650797b5fd4ba08c3": + version "0.0.0-4b433074a806bbbd4d319264430740cd46e62f27" + uid "9831b1aa2e40b8fdf1ebd44650797b5fd4ba08c3" + resolved "https://github.com/angular/dev-infra-private-build-tooling-builds.git#9831b1aa2e40b8fdf1ebd44650797b5fd4ba08c3" dependencies: "@angular-devkit/build-angular" "17.3.0-rc.0" "@angular/benchpress" "0.3.0" @@ -186,7 +188,7 @@ tmp "^0.2.1" "true-case-path" "^2.2.1" tslib "^2.5.2" - typescript "5.4.2" + typescript "5.4.3" uuid "^9.0.0" yargs "^17.0.0" @@ -199,17 +201,17 @@ optionalDependencies: parse5 "^7.1.2" -"@angular/common@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-18.0.0-next.1.tgz#018492c47e176e8d9667b04778f20785ffd59b6d" - integrity sha512-8SjKz6IZ+BSxbh4sZ7k8BydtKnRatbvKFz3Zu3q0AEU44lEBzeO26pE4gEWX1pw739IB+ldsT6Yfl5Gb6o9Qtg== +"@angular/common@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-18.0.0-next.2.tgz#9951efae2c6d733ddec18d3282969d6390abcffe" + integrity sha512-ZHWAFTGL0c9gkWvle542sdujxNQTSBuGGvz6JLVX5qdWXWxpa7MLg+JSpU9DeJ5xzqTiXWLd4fmLpwvD1wuPSw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-18.0.0-next.1.tgz#ee94d6a346b8a3ba31206368f15104a03cca883f" - integrity sha512-Ul7KfyfYbJw5wHJXLtCzpzVldkKVMsRfLidvNKMG0KLUNFVJ+YZW+Zp1PBq2jZSW5JHifQ/8Uq1Pu0WtSsS2LA== +"@angular/compiler-cli@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-18.0.0-next.2.tgz#7b05345e05a68046f6d6085e973cdcb85135073f" + integrity sha512-QxGz5u0zX76yKJLBPLUkIpKRpexqjSFLV/0+eC8coos9YqjfDbeGRobufD7WCRBb5vGQIxcDVu85P3eptfVGLw== dependencies: "@babel/core" "7.24.1" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -220,17 +222,17 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-18.0.0-next.1.tgz#fd8dd2d330637d7bc649054462be039688db5cc8" - integrity sha512-RR1okSI7wS+t10Nt+COBXJogFhYHKqE1wYvhHOgyjpv7f41ZuT9B88NIEo6l/A/Fjo1of7VCDUhnV5xPsQOeuA== +"@angular/compiler@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-18.0.0-next.2.tgz#ca075db20aaea1db5106799b0822d02fac36ea01" + integrity sha512-z0zrOChU9uT+XXSxaB/TVcivL5Nx6Xv4Yl3n7kSiaFu1eeFuAXgshUgKsvnTwADgb0rjG9tzFwFSSw/2AwEPtg== dependencies: tslib "^2.3.0" -"@angular/core@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-18.0.0-next.1.tgz#f90bef16c1af677ad900318aca0100ed8945041f" - integrity sha512-jdhuX7RROtOYcMuSBb4CG35iACMgz8Ba4n4eURh6sSCyqLHz1phkBOoXzHddZNg4QY64KpahAYvhmhk6eoax+A== +"@angular/core@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-18.0.0-next.2.tgz#f8683cb8a64c4b6f91ef0b7f4811f621d76ee09f" + integrity sha512-RCeLFExJt2MUSPkfv24bsAhbp4Ug2oh7c2U67OIxol2+gBoW8DrpWtIE2GaW0GOlOgB7hBHx72ppuK+8G0mAGA== dependencies: tslib "^2.3.0" @@ -241,17 +243,17 @@ dependencies: tslib "^2.3.0" -"@angular/forms@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-18.0.0-next.1.tgz#c0ea5e969ac0d86ae4879decc2b1ea5784afc4ef" - integrity sha512-yE6iTx0Fhbg3QQixHISoBbh9yIC0pMlm1djQS7KvVf8Xny19t5uuSoqse7fSxB8memHFE822bwcQ57G0JsyPUQ== +"@angular/forms@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-18.0.0-next.2.tgz#ab5edd84823dec4af36f422e8006cfab174fde97" + integrity sha512-rZH4QtN6K2qN29BrF3g8iw0iM7jiwgYZmfxXW3zIagJATsymMXYGweV3naPcfE8aWPL/eRIIuNCg1rTlLHRiXg== dependencies: tslib "^2.3.0" -"@angular/localize@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-18.0.0-next.1.tgz#e6cb8263d044b552bd16891f727beeb4b6e2cc95" - integrity sha512-wf2bjApBJCyDtCseQ44esKa+KqXFk0CXUniVuFb3vlKI0jcWGmBoh1msGVmg4wkyK5LgEgA7ArWJQqGDkkCZsw== +"@angular/localize@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-18.0.0-next.2.tgz#9cb656876036cd1b6d584b3b989ff562c2b26b5a" + integrity sha512-Jxt058/cFkyyxLEcqSprJEgyu9Q93cbcqipuz7GzJ7ct2GGl7gDSgqVtmDu1gkzkNwW2FpKmubOW81uC+Fbh1A== dependencies: "@babel/core" "7.24.1" "@types/babel__core" "7.20.5" @@ -312,46 +314,47 @@ "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.3.0" -"@angular/ng-dev@https://github.com/angular/dev-infra-private-ng-dev-builds.git#87b7674b7dfe7abeb565f555cd19a9760ee46c72": - version "0.0.0-8af6b55a8b31cd9e632823cf8f2dd1e89caa6f4f" - resolved "https://github.com/angular/dev-infra-private-ng-dev-builds.git#87b7674b7dfe7abeb565f555cd19a9760ee46c72" +"@angular/ng-dev@https://github.com/angular/dev-infra-private-ng-dev-builds.git#a8690b0870728efc1aea5eb6644e605e7d37eabc": + version "0.0.0-4b433074a806bbbd4d319264430740cd46e62f27" + uid a8690b0870728efc1aea5eb6644e605e7d37eabc + resolved "https://github.com/angular/dev-infra-private-ng-dev-builds.git#a8690b0870728efc1aea5eb6644e605e7d37eabc" dependencies: "@yarnpkg/lockfile" "^1.1.0" typescript "~4.9.0" -"@angular/platform-browser-dynamic@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.0-next.1.tgz#bdb1631a2c9c048e240c7ee42e62735e2b989ab4" - integrity sha512-lrOmvbHxJhkzc9oBeSvSpPgUPrUUMh9s4hPp+OPVWEGCW0RND4RoMCWFSrOpweNrs23SWZdGTrqU0qvAxEXXYA== +"@angular/platform-browser-dynamic@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.0-next.2.tgz#33d69d794ee182a6e345d915558aa037c6ea0088" + integrity sha512-vUKgUAK70JAP9OOMXpbgQGIOiZ77Q5TMBuu0fzdaQqMrMcnKabckJHCMXvjRSLkzyc/XQghCz/eix4qoPm4QgA== dependencies: tslib "^2.3.0" -"@angular/platform-browser@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-18.0.0-next.1.tgz#1b4ae134e27fe3a8176d3c7e3b54cb8e404c7e53" - integrity sha512-n1c+sevDbb2lnvY3KzNmrlhQM686L02HI5qbHLcNw0I28CTat0xrLJIrj8gFHT2uxKESIw9hC7a0Q/DkpBeoqQ== +"@angular/platform-browser@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-18.0.0-next.2.tgz#d3422f76afb7d04d145a20be0ef87b67f944cff1" + integrity sha512-VRsJKMxqLhMcHAxLVRyyg+khmb/qzupBYxNlYoVGgrSNruIOcAbvg8IvgtZwQN7j/a/6RRqqjd7gQEct8tPPkA== dependencies: tslib "^2.3.0" -"@angular/platform-server@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-18.0.0-next.1.tgz#777bc10e25bd6a5bd83d52f605858b907ac52088" - integrity sha512-aqhpHLxsUSEJ/a05tqk844j4swkyOuxAU4W8UPgaU6O4OFe3qRXM0FZ9byG/poGMva0AizmDvXklFxOmF/8f6w== +"@angular/platform-server@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-18.0.0-next.2.tgz#3ebd9c6b25c52d66e36be4197b32cca864e8a655" + integrity sha512-vnuMa9uk1+vzBzqRWGcU4XllkOJ5kBf0aaPvhkrcg4zW2mnzA3PBhl6BGvpJd4/bj1y9Cqk82NDbP5ggYESQFQ== dependencies: tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-18.0.0-next.1.tgz#06a940870e85cf21be4d0b6df1a6be1ef928d300" - integrity sha512-nq9BPRp1uLOPrNySYGYJbHnDZ+5Tr+orHQ9JRVyhi5NGJlejwfKWfHyOixY3DWwMtfFUacsnjdxoUD+YC5bpmA== +"@angular/router@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-18.0.0-next.2.tgz#5d020facedb7401f866d8909d14858b26e57513f" + integrity sha512-yDxQ85YWfVpr5GMJuh5USfPD0ZUaAvh7sIlfMcdn5ic3XbCFtpa1uHpTlDmRXXkA4V18lDeEYjyWkTkOVtl++g== dependencies: tslib "^2.3.0" -"@angular/service-worker@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-18.0.0-next.1.tgz#bebd18dc413474052128e3d656a8495063a604c4" - integrity sha512-QcwgoF4INAdkoqUWD8XcxJRW3IGnXfaccCUTy6f23UU2DcZzUNt715wJaJKKMputF8v+8WnGX2b+UJCKa8v9sg== +"@angular/service-worker@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-18.0.0-next.2.tgz#199c50262488674a3de64b0ca10420e0ef927975" + integrity sha512-2+Dk9+kmxmePRUhLgX3JRWfvY/VJtv7M1fD/r/+pt5OuIm71cQqpagmFPY1nOTXB23UPBPao8tarIZ9w1uO+WQ== dependencies: tslib "^2.3.0" From fc7d7968e45494b860a06f2608c9035ced095e76 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 28 Mar 2024 21:53:39 +0000 Subject: [PATCH 06/11] release: cut the v18.0.0-next.1 release --- CHANGELOG.md | 20 ++++++++++++++++++++ package.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6b48ed59d4e..65075ce28248 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ + + +# 18.0.0-next.1 (2024-03-28) + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------- | +| [6530aa11b](https://github.com/angular/angular-cli/commit/6530aa11bed5ef67d611e8aed268bd20345cf0e6) | feat | replace `assets` with `public` directory | +| [950a44521](https://github.com/angular/angular-cli/commit/950a44521fdfb82000f6564ccc4c87d4a2b94680) | fix | rename SSR port env variable | + +### @angular-devkit/build-angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------- | +| [e22d6771d](https://github.com/angular/angular-cli/commit/e22d6771da9f289577410b66d3fd8763b12113b2) | fix | ensure proper resolution of linked SCSS files | +| [c71e954a2](https://github.com/angular/angular-cli/commit/c71e954a25f0c6949b0dcebf3dfa01bd10a188b0) | fix | service-worker references non-existent named index output | + + + # 17.3.2 (2024-03-25) diff --git a/package.json b/package.json index 7b4032769585..758b86826ff1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "18.0.0-next.0", + "version": "18.0.0-next.1", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 72588371385bebeea1003dff4d1d0a2ca9854321 Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Thu, 28 Mar 2024 11:47:17 +0100 Subject: [PATCH 07/11] feat(@schematics/angular): use eventCoalescing option by default (standalone bootstrap) This commit enables eventCoalescing by default for standalone applications. --- .../standalone-files/src/app/app.config.ts.template | 4 ++-- packages/schematics/angular/server/index_spec.ts | 2 +- .../schematics/angular/service-worker/index_spec.ts | 12 +++++++----- .../angular/utility/standalone/rules_spec.ts | 12 ++++++------ 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template b/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template index 4e7781fe7783..a8f22ffe8a9e 100644 --- a/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template +++ b/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template @@ -1,8 +1,8 @@ -import { ApplicationConfig } from '@angular/core';<% if (routing) { %> +import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';<% if (routing) { %> import { provideRouter } from '@angular/router'; import { routes } from './app.routes';<% } %> export const appConfig: ApplicationConfig = { - providers: [<% if (routing) { %>provideRouter(routes)<% } %>] + providers: [provideZoneChangeDetection({eventCoalescing: true})<% if (routing) { %>, provideRouter(routes)<% } %>] }; diff --git a/packages/schematics/angular/server/index_spec.ts b/packages/schematics/angular/server/index_spec.ts index 44f8559544b8..caed8beb5de9 100644 --- a/packages/schematics/angular/server/index_spec.ts +++ b/packages/schematics/angular/server/index_spec.ts @@ -138,7 +138,7 @@ describe('Server Schematic', () => { it(`should add 'provideClientHydration' to the providers list`, async () => { const tree = await schematicRunner.runSchematic('server', defaultOptions, appTree); const contents = tree.readContent('/projects/bar/src/app/app.config.ts'); - expect(contents).toContain(`providers: [provideClientHydration()]`); + expect(contents).toContain(`provideClientHydration()`); }); }); diff --git a/packages/schematics/angular/service-worker/index_spec.ts b/packages/schematics/angular/service-worker/index_spec.ts index 26fc4d52762f..5c4a13c666d6 100644 --- a/packages/schematics/angular/service-worker/index_spec.ts +++ b/packages/schematics/angular/service-worker/index_spec.ts @@ -128,17 +128,19 @@ describe('Service Worker Schematic', () => { const tree = await schematicRunner.runSchematic('service-worker', defaultOptions, appTree); const content = tree.readContent('/projects/bar/src/app/app.config.ts'); expect(tags.oneLine`${content}`).toContain(tags.oneLine` - providers: [provideServiceWorker('ngsw-worker.js', { - enabled: !isDevMode(), - registrationStrategy: 'registerWhenStable:30000' - })] + provideServiceWorker('ngsw-worker.js', { + enabled: !isDevMode(), + registrationStrategy: 'registerWhenStable:30000' + }) `); }); it(`should import 'isDevMode' from '@angular/core'`, async () => { const tree = await schematicRunner.runSchematic('service-worker', defaultOptions, appTree); const content = tree.readContent('/projects/bar/src/app/app.config.ts'); - expect(content).toContain(`import { ApplicationConfig, isDevMode } from '@angular/core';`); + expect(content).toContain( + `import { ApplicationConfig, provideZoneChangeDetection, isDevMode } from '@angular/core';`, + ); }); it(`should import 'provideServiceWorker' from '@angular/service-worker'`, async () => { diff --git a/packages/schematics/angular/utility/standalone/rules_spec.ts b/packages/schematics/angular/utility/standalone/rules_spec.ts index 7a5cabd69074..c4dc3eaf7760 100644 --- a/packages/schematics/angular/utility/standalone/rules_spec.ts +++ b/packages/schematics/angular/utility/standalone/rules_spec.ts @@ -93,12 +93,9 @@ describe('standalone utilities', () => { const content = readFile('app/app.config.ts'); - assertContains( - content, - `import { ApplicationConfig, importProvidersFrom } from '@angular/core';`, - ); + assertContains(content, `importProvidersFrom`); assertContains(content, `import { MyModule } from '@my/module';`); - assertContains(content, `providers: [importProvidersFrom(MyModule)]`); + assertContains(content, `importProvidersFrom(MyModule)`); }); it('should add a root import to a standalone app whose app config does not have a providers array', async () => { @@ -443,7 +440,10 @@ describe('standalone utilities', () => { const content = readFile('app/app.config.ts'); assertContains(content, `import { provideModule } from '@my/module';`); - assertContains(content, `providers: [provideModule([])]`); + assertContains( + content, + `providers: [provideZoneChangeDetection({eventCoalescing:true}),provideModule([])]`, + ); }); it('should add a root provider to a standalone app when providers contain a trailing comma', async () => { From 508d97da76b5359bc8029888ff0e9cfc59a6139c Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Fri, 29 Mar 2024 11:47:55 +0100 Subject: [PATCH 08/11] feat(@schematics/angular): use ngZoneEventCoalescing option by default (module bootstrap) This commit enables ngZoneEventCoalescing by default for NgModule-based applications. --- .../files/module-files/src/main.ts.template | 7 ++---- .../angular/application/index_spec.ts | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/schematics/angular/application/files/module-files/src/main.ts.template b/packages/schematics/angular/application/files/module-files/src/main.ts.template index e830262f190f..ac03d58c6153 100644 --- a/packages/schematics/angular/application/files/module-files/src/main.ts.template +++ b/packages/schematics/angular/application/files/module-files/src/main.ts.template @@ -3,11 +3,8 @@ import { AppModule } from './app/app.module'; -<% if(!!viewEncapsulation) { %> platformBrowserDynamic().bootstrapModule(AppModule, { - defaultEncapsulation: ViewEncapsulation.<%= viewEncapsulation %> + ngZoneEventCoalescing: true<% if(!!viewEncapsulation) { %>, + defaultEncapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } %> }) - .catch(err => console.error(err));<% } else { %> -platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.error(err)); -<% } %> \ No newline at end of file diff --git a/packages/schematics/angular/application/index_spec.ts b/packages/schematics/angular/application/index_spec.ts index ee053372b30b..419f46a6a4f2 100644 --- a/packages/schematics/angular/application/index_spec.ts +++ b/packages/schematics/angular/application/index_spec.ts @@ -540,6 +540,14 @@ describe('Application Schematic', () => { expect(moduleFiles.length).toEqual(0); }); + it('should enable zone event coalescing by default', async () => { + const options = { ...defaultOptions, standalone: true }; + + const tree = await schematicRunner.runSchematic('application', options, workspaceTree); + const appConfig = tree.readContent('/projects/foo/src/app/app.config.ts'); + expect(appConfig).toContain('provideZoneChangeDetection({eventCoalescing: true})'); + }); + it('should create a standalone component', async () => { const options = { ...defaultOptions, standalone: true }; @@ -575,6 +583,20 @@ describe('Application Schematic', () => { }); describe('standalone=false', () => { + it('should add the ngZoneEventCoalescing option by default', async () => { + const tree = await schematicRunner.runSchematic( + 'application', + { + ...defaultOptions, + standalone: false, + }, + workspaceTree, + ); + + const content = tree.readContent('/projects/foo/src/main.ts'); + expect(content).toContain('ngZoneEventCoalescing: true'); + }); + it(`should set 'defaultEncapsulation' in main.ts when 'ViewEncapsulation' is provided`, async () => { const tree = await schematicRunner.runSchematic( 'application', From 157329384809d723c428a043712a331493826748 Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Fri, 29 Mar 2024 23:10:42 +0100 Subject: [PATCH 09/11] fix(@schematics/angular): add spaces around eventCoalescing option The usual coding style in the generated application is to have spaces in objects (see `server.ts.template` for example). --- .../files/standalone-files/src/app/app.config.ts.template | 2 +- packages/schematics/angular/application/index_spec.ts | 2 +- packages/schematics/angular/utility/standalone/rules_spec.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template b/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template index a8f22ffe8a9e..b3d5dd14acd7 100644 --- a/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template +++ b/packages/schematics/angular/application/files/standalone-files/src/app/app.config.ts.template @@ -4,5 +4,5 @@ import { provideRouter } from '@angular/router'; import { routes } from './app.routes';<% } %> export const appConfig: ApplicationConfig = { - providers: [provideZoneChangeDetection({eventCoalescing: true})<% if (routing) { %>, provideRouter(routes)<% } %>] + providers: [provideZoneChangeDetection({ eventCoalescing: true })<% if (routing) { %>, provideRouter(routes)<% } %>] }; diff --git a/packages/schematics/angular/application/index_spec.ts b/packages/schematics/angular/application/index_spec.ts index 419f46a6a4f2..0cc2263a53d0 100644 --- a/packages/schematics/angular/application/index_spec.ts +++ b/packages/schematics/angular/application/index_spec.ts @@ -545,7 +545,7 @@ describe('Application Schematic', () => { const tree = await schematicRunner.runSchematic('application', options, workspaceTree); const appConfig = tree.readContent('/projects/foo/src/app/app.config.ts'); - expect(appConfig).toContain('provideZoneChangeDetection({eventCoalescing: true})'); + expect(appConfig).toContain('provideZoneChangeDetection({ eventCoalescing: true })'); }); it('should create a standalone component', async () => { diff --git a/packages/schematics/angular/utility/standalone/rules_spec.ts b/packages/schematics/angular/utility/standalone/rules_spec.ts index c4dc3eaf7760..e444f2952707 100644 --- a/packages/schematics/angular/utility/standalone/rules_spec.ts +++ b/packages/schematics/angular/utility/standalone/rules_spec.ts @@ -442,7 +442,7 @@ describe('standalone utilities', () => { assertContains(content, `import { provideModule } from '@my/module';`); assertContains( content, - `providers: [provideZoneChangeDetection({eventCoalescing:true}),provideModule([])]`, + `providers: [provideZoneChangeDetection({ eventCoalescing:true }),provideModule([])]`, ); }); From 573e80c4119ae2b696f1fce7cbdcffc866045e70 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 30 Mar 2024 18:09:17 +0000 Subject: [PATCH 10/11] build: update angular --- package.json | 6 ++-- tests/legacy-cli/e2e/ng-snapshot/package.json | 32 +++++++++---------- yarn.lock | 24 +++++++------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 758b86826ff1..7fc553c5a5c6 100644 --- a/package.json +++ b/package.json @@ -52,16 +52,16 @@ "devDependencies": { "@ampproject/remapping": "2.3.0", "@angular/animations": "18.0.0-next.2", - "@angular/bazel": "https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409", + "@angular/bazel": "https://github.com/angular/bazel-builds.git#2117485242aa8e10e39cd130287298521814110a", "@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#9831b1aa2e40b8fdf1ebd44650797b5fd4ba08c3", - "@angular/cdk": "18.0.0-next.1", + "@angular/cdk": "18.0.0-next.2", "@angular/common": "18.0.0-next.2", "@angular/compiler": "18.0.0-next.2", "@angular/compiler-cli": "18.0.0-next.2", "@angular/core": "18.0.0-next.2", "@angular/forms": "18.0.0-next.2", "@angular/localize": "18.0.0-next.2", - "@angular/material": "18.0.0-next.1", + "@angular/material": "18.0.0-next.2", "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#a8690b0870728efc1aea5eb6644e605e7d37eabc", "@angular/platform-browser": "18.0.0-next.2", "@angular/platform-browser-dynamic": "18.0.0-next.2", diff --git a/tests/legacy-cli/e2e/ng-snapshot/package.json b/tests/legacy-cli/e2e/ng-snapshot/package.json index 7cd3a5c8efdb..db13ea037a0b 100644 --- a/tests/legacy-cli/e2e/ng-snapshot/package.json +++ b/tests/legacy-cli/e2e/ng-snapshot/package.json @@ -2,21 +2,21 @@ "description": "snapshot versions of Angular for e2e testing", "private": true, "dependencies": { - "@angular/animations": "github:angular/animations-builds#0082cd75ac4e284b57bf37c0949234cd5318cd08", - "@angular/cdk": "github:angular/cdk-builds#2ea0a35fd99310ff51b90cd0728ba43109b8b629", - "@angular/common": "github:angular/common-builds#395d04ac7fec14deb71789f67d5c253570fee5a5", - "@angular/compiler": "github:angular/compiler-builds#a78e0ddf479c364b750c5e2a76d73730dbc90ee4", - "@angular/compiler-cli": "github:angular/compiler-cli-builds#a6bcc14712ee5d781ac42b8915bf861238e41a11", - "@angular/core": "github:angular/core-builds#78e8a70f55a71b8907f3847f6ae5f69da8a192db", - "@angular/forms": "github:angular/forms-builds#52d5587d596f39d29f65e7145e8b7c9fb4153bfa", - "@angular/language-service": "github:angular/language-service-builds#0ab1f23f43e330c5a1c6ee05d8e8fec6e452bbbb", - "@angular/localize": "github:angular/localize-builds#4382b9646825e93d11038b50ba913745733590e1", - "@angular/material": "github:angular/material-builds#d14520f8534a9bdc5e31fd0e52003d8ea93c3ad6", - "@angular/material-moment-adapter": "github:angular/material-moment-adapter-builds#c3fc84aa5c8ac03d8fc3bcd2ce5292f13ae4b562", - "@angular/platform-browser": "github:angular/platform-browser-builds#da1e1c642df080c0a20052f5dacc378569ec48bc", - "@angular/platform-browser-dynamic": "github:angular/platform-browser-dynamic-builds#99a39ba6880eb37a5b969420d46b100acf6c55c7", - "@angular/platform-server": "github:angular/platform-server-builds#f6874cbb675fab85ab7df201538b9a85fb880cad", - "@angular/router": "github:angular/router-builds#e54d36d0158a31e3c6a04f04160e0e1ed3fe1e29", - "@angular/service-worker": "github:angular/service-worker-builds#a3688a4c946e737b67c8d5675947670e82129fd4" + "@angular/animations": "github:angular/animations-builds#de9a556baeeaf6120f3e182ad673ef90b8778e0a", + "@angular/cdk": "github:angular/cdk-builds#e504211ab4a7b47bebc6690fe7095993ce3d379a", + "@angular/common": "github:angular/common-builds#23af8ba36c779c1d94521bc44da7b0e55debf418", + "@angular/compiler": "github:angular/compiler-builds#5113ce145ab477d1f9982a125a42a8eb43fc1f0f", + "@angular/compiler-cli": "github:angular/compiler-cli-builds#104053e2aa0fc00e831a9f70a4d15b8244f60162", + "@angular/core": "github:angular/core-builds#2fc1964a1b4df0dcc3a8e3ba0051dc0c9d582789", + "@angular/forms": "github:angular/forms-builds#c481e334ab11cf1edd92f08b6b9719c78207cf7f", + "@angular/language-service": "github:angular/language-service-builds#d7fe843a8a3ea1f99110bfdad32b03dac41c89bd", + "@angular/localize": "github:angular/localize-builds#cb861793cafa3e0e1535eae0461098f0fd1e62c2", + "@angular/material": "github:angular/material-builds#cc342b193a8608352bbc19fa5d0972ecad5a5b53", + "@angular/material-moment-adapter": "github:angular/material-moment-adapter-builds#6998eadf0db08be6c8cdfc1955cb3de9aceff5f5", + "@angular/platform-browser": "github:angular/platform-browser-builds#6a9febe92d6dac2cfd7e2ba2893371791c5fe4ae", + "@angular/platform-browser-dynamic": "github:angular/platform-browser-dynamic-builds#5e37c5a4d1be12148c8b75a314757e76b06b643d", + "@angular/platform-server": "github:angular/platform-server-builds#961063b75da6cfc238a629784f844bd873a65dbd", + "@angular/router": "github:angular/router-builds#49937bafd6f5494eb3435b545e3d96b5d3b194e6", + "@angular/service-worker": "github:angular/service-worker-builds#9ab5279fb1b56516566893e755c0c05f498040c3" } } diff --git a/yarn.lock b/yarn.lock index 4056841bdd9f..78965d8c02a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -129,10 +129,10 @@ dependencies: tslib "^2.3.0" -"@angular/bazel@https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409": - version "18.0.0-next.2+sha-22dd52f" - uid "3bf93e3a10c968e4c112e8f40b240fd107c82409" - resolved "https://github.com/angular/bazel-builds.git#3bf93e3a10c968e4c112e8f40b240fd107c82409" +"@angular/bazel@https://github.com/angular/bazel-builds.git#2117485242aa8e10e39cd130287298521814110a": + version "18.0.0-next.2+sha-87f3f27" + uid "2117485242aa8e10e39cd130287298521814110a" + resolved "https://github.com/angular/bazel-builds.git#2117485242aa8e10e39cd130287298521814110a" dependencies: "@microsoft/api-extractor" "^7.24.2" magic-string "^0.30.0" @@ -192,10 +192,10 @@ uuid "^9.0.0" yargs "^17.0.0" -"@angular/cdk@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-18.0.0-next.1.tgz#089950a633f97bc091c27dddbf03101b5302a861" - integrity sha512-B9KvXGTu9jWjGV8ueqYnO06jHjqAc7oQNb8lwzH3ev8eJ7rgWsippc51MygNTVt5G/PeEYZl1gf8Gn7l8rfa5A== +"@angular/cdk@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-18.0.0-next.2.tgz#d10096e84c8616f2683d757bf99b0200db29ef68" + integrity sha512-5bqvRry9EXoAGrOdIN9OQ+721B0h6pB9ctvYwiL0DiGKkWnruI9x2ED38xkSjmio6DkgeE2hrMoyFOQ2xEkJfg== dependencies: tslib "^2.3.0" optionalDependencies: @@ -260,10 +260,10 @@ fast-glob "3.3.2" yargs "^17.2.1" -"@angular/material@18.0.0-next.1": - version "18.0.0-next.1" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-18.0.0-next.1.tgz#b6561539ac5c5a7ac6358d91dcfd1726bc2ad8dc" - integrity sha512-tdr1+Y9d9cV1JNvfOFmaElWaO7l7lc7TjU0hZLlYjwsgPwXOONhm2qEcRzumatkuGqI4IBM/v9KJaCzOwFfu/Q== +"@angular/material@18.0.0-next.2": + version "18.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-18.0.0-next.2.tgz#3da9a85172ca4d8017c514979771555d3bbb558a" + integrity sha512-6KE2V9nROD6IYtfz+v0JiqdSOlxrb8ZvgU7jqzGGvouQ5gPwIewLRjOK3O5GklerughgLXv+QIwpANjd3xQ4iA== dependencies: "@material/animation" "15.0.0-canary.7f224ddd4.0" "@material/auto-init" "15.0.0-canary.7f224ddd4.0" From f97c0f3ea3f9b23eb766e027b62603078edaf705 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 30 Mar 2024 12:09:40 +0000 Subject: [PATCH 11/11] build: update dependency ajv-formats to v3 --- package.json | 2 +- packages/angular_devkit/core/package.json | 2 +- yarn.lock | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7fc553c5a5c6..f4e1f45b92b4 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "@web/test-runner": "^0.18.0", "@yarnpkg/lockfile": "1.1.0", "ajv": "8.12.0", - "ajv-formats": "2.1.1", + "ajv-formats": "3.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.19", "babel-loader": "9.1.3", diff --git a/packages/angular_devkit/core/package.json b/packages/angular_devkit/core/package.json index d4d530472cee..7a35f72ceecf 100644 --- a/packages/angular_devkit/core/package.json +++ b/packages/angular_devkit/core/package.json @@ -25,7 +25,7 @@ "./*.js": "./*.js" }, "dependencies": { - "ajv-formats": "2.1.1", + "ajv-formats": "3.0.1", "ajv": "8.12.0", "jsonc-parser": "3.2.1", "picomatch": "4.0.1", diff --git a/yarn.lock b/yarn.lock index 78965d8c02a6..b7535c61c364 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4817,6 +4817,13 @@ ajv-formats@2.1.1, ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" +ajv-formats@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"