To speed up the components CI job (avoiding it being a bottleneck in FW),
we will stop building everything in `src/...`, but rather only build targets
which are needed to run all tests within `src/...`.
This notably should avoid unnecessary NPM package building. Arguably that
part would also be valuable to have, but we already test the `ng_package`
rule in FW itself, plus we run snapshot tests in the components repo as well.
PR Close#44832
Re-enables the components-repo unit tests job that we previously
disabled due to the devmode target change that caused conflicts
with `angular/components` patching `ng_module.bzl` of `@angular/bazel`.
PR Close#44832
When the indexer encounters a location where the source span doesn't
match up with the expected identifier, the current visitor code throws
an error. Instead, this change creates an error and moves on to the next
template item. This allows the indexer to continue analysis even when
there are errors in the source mapping. In addition, it still allows callers
to surface those errors in their own way while still providing as much indexed
information as possible about a node.
PR Close#44825
This reverts commit 894fa759f1. In that commit, the migration was completely diabled in order to prevent users from selecting it for the 13.2 release. This revert commit restores the migration to its previous (fully optional) state, in order to continue migration-focused work.
PR Close#44834
These checks were temporarily disabled in order to support the angular devtools migration to the angular/angular repo. Now that devtools was merged, we can safely enable these checks again.
PR Close#44845
This file was carried over from the original angular devtools repo. Now that devtools has been merged into angular/angular, this file is no longer necessary, because the root of this repo has its own LICENSE file.
Previously this list was not in any order. This commit puts the reviewer list in alphabetical order to be consistent with how other groups order reviewers
Previously we were running Cypress in CI. Since cypress needs to be installed to run these tests, it was decided that we would not run devtools' cypress tests until a decision could be made on an e2e testing solution.
This commit removes all package scripts, dependencies, and CI commands that reference cypress. Notably it leaves the actual tests in the devtools directory intact, so that they can be referenced later once a decision is made.
Previously devtools used a nested workspace for its bazel configurations. This meant framework dependencies were consumed via npm.
Now devtools is part of the root bazel directory that all other files in this codebase fall under. This allows us to build devtools using local angular packages, removing the need to consume these dependencies with npn. This is useful because we no longer have to update these dependencies with an automated tool like renovate, and our CI tests will always run against the most up to date framework packages.
Previously the typescript override keyword was not on these methods. Now that devtools uses the tslint config in angular/angular (because of the no-implicit-override-abstract rule) we need to add these key words explicitly to method overrides. That is what this commit does.
Previously a workaround patch was needed because rules_sass didn't support v4 of rules_nodejs. This commit updates rules_sass to a version that does and removes the patch.
This commit runs tslint --fix with the angular/angular tslint configuration on the files inside the devtools codebase.
Notably, the file-header rule in `tslint.json` was missing a default attribute. This commit adds that default attribute and sets it to the
license header that is present in all files in this repo. After running tslint --fix with this default added, this commit added the license header to all files in the devtools directory. Note for the reviewer: the automatically added license headers were added as comments with the "/*!" prefix. Since we want these comments removed in builds, and the rest of the codebase uses "/**", a simple find and replace was performed on the devtools directory to change these prefixes to "/**".
Previously, camel case was used for bazel labels in the devtools directory. This commit changes these labels to snake case except in the case where the label is identical to the directory name that the BUILD file is in.
Both of these comments were included accidentally after porting over bazel code from angular/angular and angular/components to devtools.
They are not relevant to devtools so this commit removes them.
Removes MDC constants and unneeded angular package configs from packages.bzl.
Removes partial-compilation-integration from the karma web test tags because we don't perform any of partial compilation integration tests for devtools.
These keyword args are not needed because `ts_project` and `ng_ts_project` already default to the tsconfig at the root of the devtools directory.
This commit removes these key word args from places where tsconfig was used as a keyword arg with the root level tsconfig as the target.
Previously angular devtools was in its own repository and so it had some project files related to github workflows, vscode settings, prettier configurations, etc.
Now, after devtools has been transfered to angular/angular, these files are redundant, and so this commit removes them.
Formats the entire devtools directory with the ng-dev formatting tool. Previously we relied on prettier, so this commit also remove prettier from devtools' dependencies.
Uses `cy.contains` as one command to optimize cypress' retry-ability mechanism
Affected tests are in:
`property-update.e2e.js` and `view-component-metadata.e2e.js`
Previously angular devtools was using its own renovate configuration to keep up to date. After transfering to angular/angular, we can use the renovate configuration in angular/angular to update our dependencies. In an end state we would build devtools with local Angular packages.
Previously, we were using ngx-build-plus with a custom webpack config to determine the git SHA at runtime.
Now, after migrating to bazel and transfering to angular/angular, this commit uses ng-dev to stamp the latest git SHA directly in angular devtools' application environment.
This commit also removes the old webpack configs.
Some tooling was brought in from angular/components to help with bundling spec files for Karma. This tooling has since been ported over to the dev-infra repo. This commit dedupes the tooling and instead depends on the angular/dev-infra-private repo.
Previously we were running Cypress with bazel in an effort to save on CI time when devtools dependencies did not change. This commit reverts to running Cypress manually, until we can revisit building devtools with local Angular packages to save CI time.
Commit messages from angular devtools did not follow the 20 char minimum limit for commit bodies rule. This commit disables the CI check for this so that the rest of CI can be validated. Will reenable once that is done.
Usually this job would ensure that all PRs in angular/angular are running against the latest changes to angular/angular. In order to merge the unrelated history of the commits in the rangle/angular-devtools repo into angular/angular, we must temporarily disable this job.
This is a merge commit that acts at the only common child of commits from the rangle/angular-devtools codebase and the angular/angular codebase.
This commit was created as the result of running `git merge` with the `--allow-unrelated-histories` flag.
It's best to disable this optional migration in the minor release, although it shouldn't run anyway -- we don't want people accidentally running it.
This PR will be rolled back after the minor is out.
PR Close#44828
An `ng-template` with an inline template (i.e. has a structural
directive) would previously not get an `undefined` `tagName` because the
logic assumed the element would be `t.Element` or `t.Content` and read
the tag name from the `name` property. For a `t.Template`, this exists
instead on the `t.tagName`. The final result would be an `tagName` of `undefined`
for the parent `t.Template`, causing failures in the indexer downstream.
This `undefined` value is actually expected in the renderer code, even
though the type does not specify this possibility. This change updates
the type of `tagName` to be `string|null` and explicitly handles the
case where there is a structural directive on an `ng-template`. You can
see how the two are differentiated in the compliance code that was
modified in this commit.
PR Close#44788