314 Commits

Author SHA1 Message Date
Angular Robot ae57041bf2 build: update io_bazel_rules_sass digest to a2efcd6 (#49122)
See associated pull request for more information.

PR Close #49122
2023-02-17 11:11:01 -08:00
Angular Robot 5cb426c484 build: update cross-repo angular dependencies (#48929)
See associated pull request for more information.

PR Close #48929
2023-02-14 14:46:07 +01:00
Angular Robot 0292583a2b build: update io_bazel_rules_sass digest to b603e6f (#49053)
See associated pull request for more information.

PR Close #49053
2023-02-14 14:40:23 +01:00
Paul Gschwendtner 8ab87b699e build: remove puppeteer, remaining usages of webdriver-manager and migrate AIO production test to Bazel (#49025)
This commit does three things that all related and required to get
rid of `webdriver-manager`:

* Our puppeteer protractor setup in AIO relies on webdriver-manager
because we install a corresponding chromedriver based on the puppeteer
chromium version. We would like to get rid of this brittle setup.

* We don't use `puppeteer` in many places because we manage chromium and
the driver through Bazel. This commit removes the remaining puppeteer
usage and replaces it with the Bazel-managed canonical browser

* We need to migrate the AIO production URL tests to Bazel. These
weren't part of Aspect's migration. This is needed so that we can drop
puppeteer and use the Bazel browser setup.

* Migrates some at-runtime TS `ts-node` test setup to proper idiomatic
Bazel code. Needed because it depends on code that also had to be
migrated to Bazel given the production e2e test Bazel migration (above
points).

Note: The xregexp dependency had to be added to the root project because
`ts_library` does not support compilation deps from `@aio_npm`. This is
something we will fix anyway when we have a more modern toolchain!

PR Close #49025
2023-02-10 19:22:18 +00:00
Paul Gschwendtner b24cf027d3 build: remove unused webdriver-manager code (#49009)
We no longer need webdriver-manager as everything is tested
using Bazel with the Bazel-managed browsers and chrome/gecko drivers.

The drivers and browser binaries are managed as part of dev-infra's
shared browser/driver configuration in `bazel/browsers`.

PR Close #49009
2023-02-10 08:25:58 +01:00
Dylan Hunn 7f5d0352c5 Revert "build: pin dependency aspect_bazel_lib to de8d9ca (#48887)" (#48928)
This reverts commit b0a5b3873a.

PR Close #48928
2023-02-02 10:56:30 -08:00
Angular Robot ba5c4d4cc4 build: pin dependency aspect_bazel_lib to de8d9ca (#48887)
See associated pull request for more information.

PR Close #48887
2023-02-02 09:32:50 -08:00
Angular Robot 71a713dc51 build: update io_bazel_rules_sass digest to 901d22c (#48897)
See associated pull request for more information.

PR Close #48897
2023-02-02 09:31:43 -08:00
Angular Robot ec5aae467c build: update all non-major dependencies (#48755)
See associated pull request for more information.

PR Close #48755
2023-01-17 09:16:20 -08:00
Angular Robot cec9365604 build: update io_bazel_rules_sass digest to 57ade09 (#48407)
See associated pull request for more information.

PR Close #48407
2023-01-13 10:32:35 -08:00
Alan Agius 65baae803b ci: add Angular CLI help pages action (#48577) (#48682)
This commits adds an action to update the Angular CLI help contents that are used by AIO to generate CLI guides.

This also changes the setup to include the files are source files instead of having to clone the repository each time. This also simplifies the PR review process of the PR opened by the action.

PR Close #48577

(cherry picked from commit 2dc31576ab)

PR Close #48682
2023-01-10 11:11:48 -08:00
Angular Robot aa51e9b217 build: update all non-major dependencies (#48462)
See associated pull request for more information.

PR Close #48462
2023-01-04 11:38:40 -08:00
Paul Gschwendtner 90c2088679 build: make devmode a noop and ensure it never runs (#48521)
This is basically a pre-step for combining devmode and prodmode into a
single compilation. We are already achieving this now, and can claim
with confidence that we reduced possible actions by half. This is
especially important now that prodmode is used more often, but rules
potentially still using the devmode ESM sources. We can avoid double
compilations (which existed before the whole ESM migration too!).

We will measure this more when we have more concrete documentation
of the changes & a better planning document.

Changes:

  * ts_library will no longer generate devmode `d.ts`. Definitions are
    generated as part of prodmode. That way only prodmode can be exposed
    via providers.
  * applied the same to `ng_module`.
  * updates migrations to bundle because *everything* using `ts_library`
    is now ESM. This is actually also useful in the future if
    schematics rely on e.g. the compiler.
  * updates schematics for localize to also bundle. similar reason as
    above.

PR Close #48521
2022-12-19 19:50:45 +00:00
Paul Gschwendtner 84ef1b0719 build: update build-tooling and adjust benchmark macros for ESM (#48521)
* The benchmark macro should also use devmode ESM 2020. No CommonJS
* The benchmark macro should always add `benchpress` as runtime
  dependency because it is loaded asynchronously.
* The protractor `nodejs_binary` should use our ESM-interop binary
so that ESM resolution works (e.g. when `await import(benchpress)` from
the driver utilities is invoked).

PR Close #48521
2022-12-19 19:50:44 +00:00
Paul Gschwendtner d7fa04fd98 build: update dev-infra build tooling to leverage recent ESM changes (#48521)
Update dev-infra's build-tooling since multiple ESM changes have
landed there. e.g. not relying on `require.main === module` for API
bundling. This will allow us to also execute all dev-infra rules
in ESM because we plan on applying our ESM patching to `ts_library`
(which would also affect build-tooling then).

PR Close #48521
2022-12-19 19:50:42 +00:00
Paul Gschwendtner c8e021ef4a build: support esbuild configurations using ESM dependencies (#48521)
We use `bazel/esbuild` in various places (e.g. for app bundling tests).
These tests rely on the Angular Compiler-CLI itself for e.g. linking
or the Terser configuration. Since everything in this repo is now
strict ESM, the ESBuild configs (which are already ESM-supported)
need to import from `//packages/compiler-cli`. We also need to be
able to leverage our existing ESM Bazel loader for this though as
otherwise resolution would fail.

Long-term we can remove this if everything in the compiler-cli
would use `.mjs` extensions and the import paths would also specify
an explicit extension. See: https://nodejs.org/api/esm.html#mandatory-file-extensions

PR Close #48521
2022-12-19 19:50:42 +00:00
Paul Gschwendtner 369091839f build: fix loader and support rxjs to be used in NodeJS ESM (#48521)
RxJS currently ships ESM output that cannot be executed directly
in NodeJS. This is because RxJS ships ESM as `.js` files but does
not have a `package.json` which instructs Node to execute these as ESM.

RxJS would either need to use the explicit `.mjs` extension, or add
a `type: module` `package.json` next to the `.js` sources.

We manually patch RxJS to do this, while we wait on the upstream fix
to land. See: #7130.

PR Close #48521
2022-12-19 19:50:41 +00:00
Paul Gschwendtner 83dbed0a52 build: patch ts_library to not emit a tsickle extern file (#48521)
The prodmode compilation pipeline -that we intend to use more heavily
now given it emitting files with the `.mjs` extension- exposes an
additional tsickle closure externs file. This file is empty most
of the time anyway since tsickle is not wired up.

We remove this generation as otherwise convenient `$(location` of
such ts library targets break because there always is more than 1 file.

PR Close #48521
2022-12-19 19:50:41 +00:00
Paul Gschwendtner 0d83e89217 build: support enabling esm interop loader even outside of defaults.bzl (#48521)
We introduced a loader that supports ESM with Bazel. This loader can
only be enabled as part of our `nodejs_binary` defaults.bzl test. This
works fine, but there might be other binaries/tests e.g. from
`@angular/build-tooling` that should be able to use ESM & might need to
for importing the `compiler-cli`.

We move the logic for installing the patch into a `rules_nodejs` patch.
There is an existing one that is just updated to "enable ESM support".

PR Close #48521
2022-12-19 19:50:41 +00:00
Paul Gschwendtner 553d42c86f build: patch rules_nodejs to prioritize ESM files for nodejs_binary/test (#48521)
The Bazel NodeJS rules will always use the `.js` files as entry-points.
Since we only rely on the `.mjs` output going-forward, we need to teach
`nodejs_binary` and `nodejs_test` to use the `.mjs` extensions if
intended.

Our `defaults.bzl` macros will set `use_esm = True`, but other targets
from e.g. external repositories should keep the original behavior.

PR Close #48521
2022-12-19 19:50:41 +00:00
Alan Agius 4ab3ed3109 docs: update CLI sources ref (#48486)
This is needed to update AIO documentation as currently the CLI docs are out of date.

PR Close #48486
2022-12-14 08:44:12 -08:00
Angular Robot 126573d76b build: update all non-major dependencies (#48372)
See associated pull request for more information.

PR Close #48372
2022-12-06 11:06:39 -08:00
Paul Gschwendtner 50a3046e4b build: patch rules_nodejs to ensure nodejs_binary targets can be used as tools in RBE (#48316)
See full explanation in: https://github.com/bazelbuild/rules_nodejs/pull/3605

PR Close #48316
2022-12-02 08:57:43 -08:00
Angular Robot b935255ef9 build: update all non-major dependencies (#48271)
See associated pull request for more information.

PR Close #48271
2022-11-30 09:29:26 -08:00
Angular Robot 131bfc5bad build: update io_bazel_rules_sass digest to a2fce75 (#47970)
See associated pull request for more information.

PR Close #47970
2022-11-23 10:52:30 -08:00
Derek Cormier 12557ec0c2 build(bazel): update workspace cli sources ref
Updates to the latest version still used in angular/main.
2022-11-22 13:51:16 -07:00
Derek Cormier 808ca8937d build(bazel): update rnj and remove launcher patch
rules_nodejs released  a fix for the RUNFILES issue.
2022-11-22 13:51:16 -07:00
Derek Cormier 24a513bdbb build(bazel): update CLI sources ref for aio build
It was out of date with the current legacy build
2022-11-22 13:51:16 -07:00
Derek Cormier e4b82cea26 build(bazel): clean up pathing in aio build tooling
Make use of process.env.RUNFILES.
2022-11-22 13:51:16 -07:00
Derek Cormier c64b63a18b build(bazel): remove old patch rules_nodejs patch
Patch contents included in rules_nodejs 5.6.0.
2022-11-22 13:51:16 -07:00
Derek Cormier bbcf535ce0 build(bazel): fix a bug where $(GIT_BIN_PATH) wasn't providing a correct path on
Windows

Fixed in rules_nodejs 5.6.0
2022-11-22 13:51:16 -07:00
Derek Cormier 0d8f87407f build(bazel): use git toolchain for dgeni build
Now using a toolchain from dev-infra that provides the
path to git in a template var.
2022-11-22 13:51:16 -07:00
Derek Cormier 076c932497 build(bazel): patch architect to not clear output
Otherwise a failed build requires looking in the command log for the
error.
2022-11-22 13:51:16 -07:00
Derek Cormier 67a3dcc115 build(bazel): post-rebase fixes for aio bazel build
Updated cli source snapshot and had to fix up lockfile.
2022-11-22 13:51:16 -07:00
Derek Cormier 4cc881e7eb build(bazel): clean up manual build contents for aio example deps
This avoids the need to depend on "node_modules" and "node_modules/.bin"
separately.
2022-11-22 13:51:16 -07:00
Derek Cormier bc1e93d639 build(bazel): refactor aio example e2es to fix windows performance
Use the same config flag to enable local vs npm deps as aio.
2022-11-22 13:51:16 -07:00
Derek Cormier 7a134cf41a build(bazel): incrementally run aio example e2e tests
Replaces the workflow where all example e2es are run at once
2022-11-22 13:51:16 -07:00
Derek Cormier 8015d467fd build(bazel): remove rules_nodejs patch
This patch was added to remove an unnecessary wrapper script around
nodejs binaries which prevented running esm scripts when the linker
was disabled.
2022-11-22 13:51:16 -07:00
Derek Cormier 07126ae40f build(bazel): fix race conditions in windows aio build
Disables the rules_nodejs linker and adds a custom esm module resolver
2022-11-22 13:51:16 -07:00
Derek Cormier 9a27c4cb50 build(bazel): incrementally build aio example zips and live examples
The existing scripts were amended to work on one example at a time
2022-11-22 13:51:16 -07:00
Derek Cormier b5ebe9ae6e build(bazel): run aio application e2e tests under bazel
Includes a postinstall fix for puppeteer so that chromium
can be run with protractor on osx under bazel
2022-11-22 13:51:16 -07:00
Derek Cormier 20ff128103 build(bazel): create targets for aio example tooling tests
This replaces the boilerplate:test npm script
2022-11-22 13:51:16 -07:00
Derek Cormier 431c562815 build(bazel): add bazel targets for aio doc generation
This is an incremental step to produce dgeni output with bazel. The
generated outputs are not yet used by other targets.
2022-11-22 13:51:16 -07:00
Angular Robot 4de35735d3 build: update io_bazel_rules_sass digest to f6ceac7 (#47376)
See associated pull request for more information.

PR Close #47376
2022-10-11 23:16:21 +00:00
Alan Agius 1b9fd46d14 feat(core): add support for Node.js version 18 (#47730)
This change aligns with the supported Node.js versions of the Angular CLI.
See: https://github.com/angular/angular-cli/pull/24026

BREAKING CHANGE: Angular no longer supports Node.js versions `14.[15-19].x` and `16.[10-12].x`. Current supported versions of Node.js are `14.20.x`, `16.13.x` and `18.10.x`.

PR Close #47730
2022-10-11 17:21:19 +00:00
Angular Robot b9f80d277d build: update io_bazel_rules_sass digest to f3874ae (#47292)
See associated pull request for more information.

PR Close #47292
2022-09-06 09:59:21 -07:00
Angular Robot 8340da92bb build: update io_bazel_rules_sass digest to 6802532 (#47104)
See associated pull request for more information.

PR Close #47104
2022-08-23 09:24:56 -07:00
Angular Robot f6c57e856b build: update io_bazel_rules_sass digest to 697e5a0 (#47046)
See associated pull request for more information.

PR Close #47046
2022-08-05 09:57:45 -07:00
Angular Robot de1e28006b build: update io_bazel_rules_sass digest to 70ffe01 (#47023)
See associated pull request for more information.

PR Close #47023
2022-08-04 13:08:42 -07:00
Paul Gschwendtner b757b1387c build: update dev-infra packages and account for build-tooling split from ng-dev (#46976)
The dev-infra build tooling is now decoupled from `ng-dev`. This will
make it easier to update `ng-dev` without necessarily needing to upgrade
the whole build system, Bazel etc. This is useful when e.g. new release
tool features have been added and should also be ported to active LTS
branches.

PR Close #46976
2022-08-02 09:37:37 -07:00