300 Commits

Author SHA1 Message Date
Alan Agius
5e4b532be1 build: update peer deps check to support stable versions when cutting a major prerelease
Prior, to this change when a new major prerelease the check did not allow `^17.0.0 || ^17.0.0-next.0`.
2023-08-30 20:02:48 +02:00
Alan Agius
3fe432c71b refactor: update code to integrate universal repo
This commit updates the moved universal code into the cli pipeline
2023-08-22 20:44:53 +00:00
aanchal
5345336cb6 docs: update the http tag with https 2023-08-14 10:57:26 +02:00
alkavats1
e3556b3298 docs: removed the deprecated tag of align center in readme file 2023-06-14 11:23:13 +02:00
alkavats1
6abff16f03 docs: updated the i tag to the em tag in the html and docs 2023-06-09 10:49:11 +02:00
Charles Lyding
ee5763dcac refactor(@angular-devkit/build-angular): use fast-glob for file searching support
The file searching within the build system (both Webpack and esbuild) now use the
`fast-glob` package for globbing which provides a small performance improvement.
Since the assets option in particular is within the critical path of the buil pipeline,
the performance benefit from the switch will be most prevalent in asset heavy projects.
As an example, the Angular Material documentation site saw the asset discovery time
reduced by over half with the switch. `fast-glob` is also the package used by Vite
which provides additional benefit by ensuring that the Angular CLI behavior matches
that of the newly integrated Vite development server.
2023-05-31 14:54:13 -04:00
Doug Parker
59c5ae00dd ci: add BlueOak license now that it is approved by legal
https://skyvine.corp.google.com/issues/1044744690
2023-04-11 21:32:00 +00:00
Paul Gschwendtner
5b4188f047 build: add pre-release checks for dependency on framework
Adds an automatic check that runs before cutting releases. This
will help avoiding issues where we forget to update peer dependencies
or the `latest-versions.ts` file.
2023-02-24 19:12:50 +00:00
Alan Agius
3cbeee7377 build: remove no longer used scripts
This commit removes scripts which have been replaced with Bazel.
2023-02-16 14:36:10 +00:00
Alan Agius
05aefbf886 build: update use bazel to build schemas for development
This commit updates the build-schema script to use Bazel.
2023-02-16 14:35:51 +00:00
Charles Lyding
9b935a2afb Revert "build: remove no longer used scripts"
This reverts commit 8f4e1018ddfa1c421769fda4e4e973375c7b8db6.
2023-02-15 19:09:34 +00:00
Alan Agius
8f4e1018dd build: remove no longer used scripts
This commit removes scripts which have been replaced with Bazel.
2023-02-15 17:06:16 +00:00
Alan Agius
c3adf11a5a build: update dependency minimatch to v6 2023-01-17 17:30:43 +00:00
Charles Lyding
e9de6a7468 build: cleanup unneeded and/or default tsconfig options
General cleanup of the main repository `tsconfig.json` file that is used by the IDE and as a base for the build and test tsconfig files. This includes removal of options that contain default values and removal of no longer existing paths from several options. A project relative path in one of the development scripts was also fixed to use a relative path to be consist with all other paths.
2023-01-13 08:28:40 +00:00
Alan Agius
871e687ac4 build: update eslint-plugin-import to 2.27.4 2023-01-12 12:25:12 +00:00
Paul Gschwendtner
c608955532 ci: use snapshot deploy secret directly
Instead of encoding the GitHub snapshot robot access token in a file that needs to be decoded by an
ambiguously named secret called `KEY`, the token can be directly stored in the secrets of CircleCI
given easier maintenance and the same risk.

The leakage of the secret still means the GitHub token file could be decoded. We are switching to a
similar model as in the components repo, which also simplifies key rotations etc.
2023-01-05 16:13:08 +01:00
Charles Lyding
7f93735e98 build: use bazel to perform release builds
When performing a release via the dev-infra `ng-dev` tooling, the release
builds for the packages that will be published are now performed using bazel.
Prior to this, the release builds were performed using a custom build script
that programmatically invoked TypeScript APIs. The Bazel build and discovery
process for the releasable packages is performed by a script that is based on
the scripts from components and framework repositories. Several small modifications
were performed to match the behavior and structure of the cli repository:
* Use of `packages` as the source root in the bazel query
* Use of `pkg_npm` rule in the bazel query
* Partial transition to native Node.js `fs` APIs instead of `shelljs`
* Directory creation per package when copying output (supports multiple package scopes)
* Copying of archives (tgz) for each package

The snapshot and local build capabilities are not modified as part of this change
but will be merged in a followup as part of a larger transition to use bazel
throughout the package build process.
2023-01-05 03:21:58 +00:00
Jason Bedard
14a95d8eb9 build: update bazel pkg tars to .tgz file extension 2022-11-29 13:31:39 +00:00
Alan Agius
b6f4b54ace Revert "build: update bazel pkg tars to .tgz file extension"
This reverts commit f3fd1e4ed86a940bd10cea8e386c86dbc117037d.
2022-11-28 15:25:48 +00:00
Jason Bedard
f3fd1e4ed8 build: update bazel pkg tars to .tgz file extension 2022-11-28 13:39:15 +00:00
Alan Agius
3928d084e6 ci: add validation for parameters length
Needed as otherwise if the parameter is longer we are unable to map this in GA4.

GA4 has a limit of:
- 24 characters for custom user dimension parameter names
- 40 characters for custom event dimension parameter names
- 40 characters for custom metric dimension parameter names
2022-10-12 15:32:28 +02:00
Alan Agius
bf7ed0d3e5 ci: correct analytics validation script to print user custom dimensions
Prior to this user custom dimensions were not added to `docs/design/analytics.md`
2022-10-12 15:32:28 +02:00
Alan Agius
639a3071c3 refactor: migrate analytics collector to use GA4
This change updates the analytics collector collector to use GA4 instead of UA. The motivation behind this change is that UA will stop collecting data in 2023.

BREAKING CHANGE:

`analyticsSharing` option in the global angular configuration has been
removed without replacement. This option was used to configure the Angular CLI to  access to your own users' CLI usage data.

If this option is used, it can be removed using `ng config --global cli.analyticsSharing undefined`.
2022-10-11 18:52:30 +02:00
Alan Agius
4368c85983 refactor: remove unused local variables 2022-08-12 08:19:26 -04:00
Alan Agius
173823d772 build: remove dependency on font-awesome
This dependency is only used to valid that node packages are resolved correctly.

With this change we mock the structure of font-awesome to avoid having to install it.
2022-08-03 09:20:29 -07:00
Paul Gschwendtner
087ab46ca9 build: update dev-infra packages and account for build-tooling split from ng-dev
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.
2022-07-27 12:35:15 +02:00
Paul Gschwendtner
720cfdde2c build: account for rename of angular/code-of-conduct default branch
We just renamed the Angular code of conduct repository default branch
to `main`. This repository was not part of the large migration and is
now handled separately as a little clean-up.
2022-06-30 10:02:51 -04:00
Paul Gschwendtner
9fafb2e125 build: update ng-dev setup to work with new ESM version
The `ng-dev` tool is now strict ESM. Config loading needs to be updated
to also emit `.mjs` with `ts-node` (this cannot happen dynamically as
ESM Node loading cannot be patched by ts-node at runtime).
2022-06-17 19:01:03 +02:00
Jason Bedard
e72fbcdfac test: allow Artistic-2.0 license 2022-05-10 10:36:33 -07:00
Paul Gschwendtner
156f15e47f build: cleanup references to old master branch
Cleans up all referneces to the old `master` branch.
2022-05-04 09:55:54 -07:00
Paul Gschwendtner
8da926966e build: changes for primary branch rename to main.
Changes part of the `DIRECT` phase of the "renaming master
to main" planning doc.
2022-04-28 11:36:26 -06:00
Tobias Speicher
137651645c refactor: replace deprecated String.prototype.substr()
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-21 12:27:52 -07:00
Alan Agius
c0fe0626d5 build: handle default sub command in json help output
This change is needed to handle default subcommands which are used in `ng generate` default subcommands are prefixed with `$0` or `*`.

More info: https://github.com/yargs/yargs/blob/main/docs/advanced.md#default-commands
2022-03-16 10:07:44 -04:00
Alan Agius
a517160a26 build: fix order of JSON help generation
Previoiusly we generated the JSON help files prior to building which caused the `help` directory in the `dist` to be deleted.
2022-03-09 19:44:33 +01:00
Alan Agius
10cce2c86e refactor(@angular/cli): re-organize the Angular CLI package folder structure 2022-03-09 17:18:53 +01:00
Alan Agius
78683db870 build: update UA validation script
With this change we update the UA usage script to read schemas directly insteads of relying on JSON help.
2022-03-09 17:18:53 +01:00
Alan Agius
29c2b3a360 refactor(@angular/cli): introspect yargs to generate JSON Help
With this change we update yargs help method to output help in JSON format which is needed to generate the documents that are used to generate AIO man pages.
2022-03-09 17:18:53 +01:00
Alan Agius
4ebfe03415 feat(@angular/cli): drop support for Node.js 12
Node.js v12 will become EOL on 2022-04-30. As a result, Angular CLI v14 will no longer support Node.js v12.

BREAKING CHANGE:

Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.
2022-03-04 22:38:45 +01:00
Alan Agius
73746faee9 refactor(@angular/cli): remove support for legacy Angular CLI version 1 configurations
Remove references to legacy Angular CLI version 1 configurations. By now users should have been migrated to use the new configuration.
2022-02-07 10:53:18 +00:00
Derek Cormier
82971c786f build: use bazel for snapshot builds 2022-02-01 17:17:42 -08:00
Alan Agius
3829fb20d6 docs: improve readme
Update readme to match that of angular/angular
2022-01-31 11:36:53 -08:00
Alan Agius
40fb1a1e00 docs: move developer guide into a seperate file
Currently, the `readme.md` also contains information on how to build and test the CLI which isn't useful to most users. With this change we move this information into a seperate document.
2022-01-31 11:36:53 -08:00
Alan Agius
d18469eb3f build: remove extra period in build script 2022-01-27 11:08:41 -08:00
Derek Cormier
4721b2796c build: correctly stamp experimental packages in bazel build 2022-01-21 12:50:53 +01:00
Derek Cormier
c2737dd51a build: use placeholder version for stamping 2022-01-12 10:02:23 -08:00
Derek Cormier
4b5c52b0d8 build: perform package.json substitutions in bazel build 2022-01-10 10:25:49 -08:00
Derek Cormier
ddec41eddf build: add parallel script to build using bazel 2021-12-15 14:34:22 +01:00
Alan Agius
3d52865526 docs: expand commit message footer description
With this change we expand the commit message footer section to include more information about breaking changes and deprecations messages.
2021-10-12 09:48:57 +02:00
Charles Lyding
f0e9b311fa build: update build scripts to support Node.js v16
Node.js v16's `fs.rmdirSync` will now throw an `ENOENT` error if the path does not exist. `fs.rmSync` is now the preferred option when using Node.js v16 but since this function is not available on Node.js v12 both are tried with `fs.rmSync` given preference.
2021-10-06 06:11:09 -05:00
Charles Lyding
51f89d633f test: enable no-useless-escape lint rule
The `no-useless-escape` eslint rule has now been enabled which removes unneeded characters and complexity from string literals and regular expressions. All files that were in violation of this rule have also been corrected.
2021-08-24 10:51:14 +01:00