https://github.com/angular/angular

sort by:
Revision Author Date Message Commit Date
faf5205 release: cut the v11.0.0 release 11 November 2020, 16:54:48 UTC
6e45f2b release: cut the v11.0.0-rc.3 release 09 November 2020, 21:09:49 UTC
28112ca docs: add update information for v11 release (#39607) PR Close #39607 09 November 2020, 20:20:34 UTC
a17ae55 ci: log commands output when deploying angular.io to Firebase (#39596) In #39470, the `deploy-to-firebase.sh` script (used to deploy AIO to Firebase when building an upstream branch), was replaced by an equivalent JS script. In this new `deploy-to-firebase.js` script, we were overly aggressive with suppressing command output, which made it hard to investigate failures ([example failing CI job][1]). This commit updates the `deploy-to-firebase.js` script to capture command output as usual in the CI job logs. This makes the output similar to the one generated by the old [deploy-to-firebase.sh][2] script ([example CI logs][3]). One concern with capturing command output is having the value of a secret environment variables leaked in the logs. This is not the case here, since: 1. The secret env vars are not printed from the commands that use them. 2. CircleCI will [mask the values of secret env vars][4] in the output. As an extra precaution (although not strictly necessary), we run `yarn` with the `--silent` option, which avoid echoing the executed yarn commands. [1]: https://circleci.com/gh/angular/angular/849310 [2]: https://github.com/angular/angular/blob/3b0b7d22109c79b4dceb/aio/scripts/deploy-to-firebase.sh [3]: https://circleci.com/gh/angular/angular/848109 [4]: https://circleci.com/docs/2.0/env-vars/#secrets-masking PR Close #39596 09 November 2020, 15:41:01 UTC
3cc9bee build(docs-infra): print the git commit when deploying to Firebase (#39596) The commit updates the AIO deployment script to also print the commit SHA. This makes it easier to check whether a version has been successfully deployed, by comparing the commit SHA from the CI job with the SHA in the version string in the footer of the AIO app. PR Close #39596 09 November 2020, 15:41:01 UTC
4552b4b docs: update cli deprecations (#39547) Add new CLI deprecations and remove old ones PR Close #39547 09 November 2020, 15:40:25 UTC
c68ca49 fix(compiler-cli): avoid duplicate diagnostics about unknown pipes (#39517) TCB generation occasionally transforms binding expressions twice, which can result in a `BindingPipe` operation being `resolve()`'d multiple times. When the pipe does not exist, this caused multiple OOB diagnostics to be recorded about the missing pipe. This commit fixes the problem by making the OOB recorder track which pipe expressions have had diagnostics produced already, and only producing them once per expression. PR Close #39517 06 November 2020, 23:27:40 UTC
dd28855 fix(elements): update the view of an `OnPush` component when inputs change (#39452) As with regular Angular components, Angular elements are expected to have their views update when inputs change. Previously, Angular Elements views were not updated if the underlying component used the `OnPush` change detection strategy. This commit fixes this by calling `markForCheck()` on the component view's `ChangeDetectorRef`. NOTE: This is similar to how `@angular/upgrade` does it: https://github.com/angular/angular/blob/3236ae0ee118d0734c90fa9f3767435396213470/packages/upgrade/src/common/src/downgrade_component_adapter.ts#L146. Fixes #38948 PR Close #39452 06 November 2020, 17:31:49 UTC
ff925af test(elements): add integration tests for Angular Elements using `ShadowDom` (#39452) Previously, the project used for running integration tests for Angular Elements declared a component that used `ShadowDom` for view encopsulation, but it did not include any tests to verify that the view was updated correctly. This commit adds the missing tests. PR Close #39452 06 November 2020, 17:31:49 UTC
ce7d5c4 test(elements): fix `ComponentNgElementStrategy` test for components without `ngOnChanges` (#39452) `ComponentNgElementStrategy` is supposed to call `ngOnChanges()` on the underlying component instance if available, but not fail if the component does not have an `ngOnChanges()` method. This works as expected. However, the test used to verify that was invalid; i.e. the test would pass even if `ComponentNgElementStrategy` would try to call `ngOnChanges()` on a component without such a method. This commit replaces the invalid test with a new one that correctly verifies that `ComponentNgElementStrategy` does not try to call `ngOnChanges()`. PR Close #39452 06 November 2020, 17:31:49 UTC
62457ca test(elements): simplify creation of `FakeComponentFactory#componentRef` (#39452) Previously, the `componentRef` property of `FakeComponentFactory` used in `elements` tests was initialy set to a spy object with all mock properties defined as spied methods. Later, the properties where overwritten to the actual mock values. This commit simplifies the creation of `componentRef` by correctly using the arguments of [jasmine.createSpyObj()][1] to specify the desired shape of the spy object (separating spied properties from methods and directly providing the mock values). [1]: https://jasmine.github.io/api/3.5/jasmine.html#.createSpyObj PR Close #39452 06 November 2020, 17:31:49 UTC
0319fc7 test(elements): fix typo in test description (`even if when` --> `even if`) (#39452) This commit fixes a typo in a test description. PR Close #39452 06 November 2020, 17:31:49 UTC
7cb9e19 fix(core): Access injected parent values using SelfSkip (#39464) In ViewEngine, SelfSkip would navigate up the tree to get tokens from the parent node, skipping the child. This restores that functionality in Ivy. In ViewEngine, if a special token (e.g. ElementRef) was not found in the NodeInjector tree, the ModuleInjector was also used to lookup that token. While special tokens like ElementRef make sense only in a context of a NodeInjector, we preserved ViewEngine logic for now to avoid breaking changes. We identified 4 scenarios related to @SkipSelf and special tokens where ViewEngine behavior was incorrect and is likely due to bugs. In Ivy this is implemented to provide a more intuitive API. The list of scenarios can be found below. 1. When Injector is used in combination with @Host and @SkipSelf on the first Component within a module and the injector is defined in the module, ViewEngine will get the injector from the module. In Ivy, it does not do this and throws instead. 2. When retrieving a @ViewContainerRef while @SkipSelf and @Host are present, in ViewEngine, it throws an exception. In Ivy it returns the host ViewContainerRef. 3. When retrieving a @ViewContainerRef on an embedded view and @SkipSelf is present, in ViewEngine, the ref is null. In Ivy it returns the parent ViewContainerRef. 4. When utilizing viewProviders and providers, a child component that is nested within a parent component that has @SkipSelf on a viewProvider value, if that provider is provided by the parent component's viewProviders and providers, ViewEngine will return that parent's viewProviders value, which violates how viewProviders' visibility should work. In Ivy, it retrieves the value from providers, as it should. These discrepancies all behave as they should in Ivy and are likely bugs in ViewEngine. PR Close #39464 06 November 2020, 17:26:01 UTC
f51cf29 fix(compiler-cli): do not drop non-Angular decorators when downleveling (#39577) There is a compiler transform that downlevels Angular class decorators to static properties so that metadata is available for JIT compilation. The transform was supposed to ignore non-Angular decorators but it was actually completely dropping decorators that did not conform to a very specific syntactic shape (i.e. the decorator was a simple identifier, or a namespaced identifier). This commit ensures that all non-Angular decorators are kepts as-is even if they are built using a syntax that the Angular compiler does not understand. Fixes #39574 PR Close #39577 06 November 2020, 17:21:54 UTC
bd5c7dd build(docs-infra): upgrade cli command docs sources to ac653af78 (#39587) Updating [angular#11.0.x](https://github.com/angular/angular/tree/11.0.x) from [cli-builds#11.0.x](https://github.com/angular/cli-builds/tree/11.0.x). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/c8f3ce348...ac653af78): **Modified** - help/build.json - help/test.json PR Close #39587 06 November 2020, 17:16:54 UTC
2da9a46 docs: typo fix for 'Intall' (#39585) 'Intall' should be 'Install' PR Close #39585 06 November 2020, 17:16:07 UTC
b8e9b3d fix(compiler): skipping leading whitespace should not break placeholder source-spans (#39486) Tokenized text node may have leading whitespace skipped from their source-span. But the source-span is used to compute where there are interpolated blocks, resulting in placeholder nodes whose source-spans are offset by the amount of skipped characters. This fix uses the `fullStart` location of text source-spans for computing the source-span of placeholders, so that they are accurate. Fixes #39195 PR Close #39486 05 November 2020, 15:58:34 UTC
94d0013 refactor(compiler): capture `fullStart` locations when tokenizing (#39486) This commit ensures that when leading whitespace is skipped by the tokenizer, the original start location (before skipping) is captured in the `fullStart` property of the token's source-span. PR Close #39486 05 November 2020, 15:58:34 UTC
92f833b refactor(compiler): store the `fullStart` location on `ParseSourceSpan`s (#39486) The lexer is able to skip leading trivia in the `start` location of tokens. This makes the source-span more friendly since things like elements appear to begin at the start of the opening tag, rather than at the start of any leading whitespace, which could include newlines. But some tooling requires the full source-span to be available, such as when tokenizing a text span into an Angular expression. This commit simply adds the `fullStart` location to the `ParseSourceSpan` class, and ensures that places where such spans are cloned, this property flows through too. PR Close #39486 05 November 2020, 15:58:34 UTC
63f9e16 fix(compiler): ensure that i18n message-parts have the correct source-span (#39486) In an i18n message, two placeholders next to each other must have an "empty" message-part to separate them. Previously, the source-span for this message-part was pointing to the wrong original location. This caused problems in the generated source-maps and lead to extracted i18n messages from being rendered incorrectly. PR Close #39486 05 November 2020, 15:58:34 UTC
d34e36c docs: fix typo in the "Property Binding" guide (#39569) PR Close #39569 04 November 2020, 20:51:36 UTC
de4f913 release: cut the v11.0.0-rc.2 release 04 November 2020, 20:43:49 UTC
96ad439 test(compiler-cli): resolve test failure (#39568) Narrows down an assertion in one of our tests so it's less prone to failure due to extra commas. PR Close #39568 04 November 2020, 20:02:10 UTC
6959620 docs: fix typos in the "Attribute Binding" guide (#39562) PR Close #39562 04 November 2020, 19:42:45 UTC
43b4940 fix(forms): remove validators while cleaning up a control (#39234) Prior to this commit, the `cleanUpControl` function (responsible for cleaning up control instance) was not taking validators into account. As a result, these validators remain registered on a detached form control instance, thus causing memory leaks. This commit updates the `cleanUpControl` function logic to also run validators cleanup. As a part of this change, the logic to setup and cleanup validators was refactored and moved to separate functions (with completely opposite behavior), so that they can be reused in the future. This commit doesn't add the `cleanUpControl` calls to all possible places, it just fixes the cases where this function is being called, but doesn't fully perform a cleanup. The `cleanUpControl` function calls will be added to other parts of code (to avoid more memory leaks) in a followup PR. PR Close #39234 04 November 2020, 18:58:25 UTC
e9889da docs: correct the formatting (#39534) PR Close #39534 04 November 2020, 18:54:04 UTC
450830c fix(dev-infra): run caretaker checks asyncronously (#39086) Run each check in the caretaker check process asyncronously. PR Close #39086 04 November 2020, 00:33:00 UTC
7ef72d1 docs: fix Android 10 codename (#39399) Change Android 10's codename from "X" to "Q" PR Close #39399 04 November 2020, 00:10:57 UTC
6817377 feat(dev-infra): provide tooling to check what branches a pr targets (#39504) Create a command in the `ng-dev` toolset that allows user's to check what branches a PR will merge into based on its targeting. PR Close #39504 03 November 2020, 22:55:25 UTC
e8654f9 build(docs-infra): upgrade cli command docs sources to c8f3ce348 (#39546) Updating [angular#11.0.x](https://github.com/angular/angular/tree/11.0.x) from [cli-builds#11.0.x](https://github.com/angular/cli-builds/tree/11.0.x). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/d5c1851de...c8f3ce348): **Modified** - help/generate.json - help/new.json PR Close #39546 03 November 2020, 22:54:55 UTC
b0bbc1f fix(compiler-cli): generating invalid setClassMetadata call in ES5 for class with custom decorator (#39527) When a class with a custom decorator is transpiled to ES5, it looks something like this: ``` var SomeClass = (function() { function SomeClass() {...}; var SomeClass_1 = __decorate([Decorator()], SomeClass); SomeClass = SomeClass_1; return SomeClass; })(); ``` The problem is that if the class also has an Angular decorator that refers to the class itself (e.g. `{provide: someToken, useClass: SomeClass}`), the generated `setClassMetadata` code will be emitted after the IIFE, but will still refer to the intermediate `SomeClass_1` variable from inside the IIFE. This happens, because we generate the `setClassMetadata` call directly from the source AST which contains identifiers that TS will rename when it emits the ES5 code. These changes resolve the issue by looking through the metadata AST and cloning any `Identifier` that is referring to the class. Since TS doesn't have references to the clone, it won't rename it when transpiling to ES5. Fixes #39509. PR Close #39527 03 November 2020, 22:53:00 UTC
b6064c2 fix(dev-infra): run fetches in the git client in quiet mode (#39503) When fetch is run in normal mode, the `git-fetch-pack` plumbing command outputs progress to stderr. Since this is unnecessary progress information for ng-dev usages, it should be suppressed instead. PR Close #39503 03 November 2020, 00:41:48 UTC
e34c87e ci: only check testing directories within packages/ for fw-testing (#39536) The fw-testing group should only match on testing directories within the framework packages, previously it was also matching in other areas of the codebase. PR Close #39536 03 November 2020, 00:39:45 UTC
a0b6548 build(docs-infra): ensure that deployment works on CI (#39535) The actual "main" part of the script that is executed was using an uninitialized variable. This is fixed and a test is added to check. PR Close #39535 02 November 2020, 20:24:36 UTC
40f38ce docs: update forwardRef example (#39519) Replace the deprecated api ReflectiveInjector.resolveAndCreat with Injector.create PR Close #39519 02 November 2020, 19:40:18 UTC
d386fb3 build(docs-infra): upgrade `firebase-tools` to v8.14.1 (#39470) This commit upgrades `firebase-tools` (used to deploy angular.io to Firebase hosting) to the latest version. This gives us access to the latest fixes/improvements and also new features, such as [version cloning][1]. [1]: https://firebase.google.com/docs/hosting/manage-hosting-resources#cli-commands-cloning PR Close #39470 02 November 2020, 15:57:54 UTC
f868dcb build(docs-infra): deploy angular.io to new Firebase sites (#39470) Previously, the documentation for each major Angular version was hosted on each own Firebase project. This required creating a new project for each major release and increased the administrative/maintenance cost. Now that Firebase supports hosting [multiple websites][1] as part of the same project, we are switching to deploying all major versions to sites created on `angular-io` project. This is part of the work needed to prepare angular.io for our [new versioning/branching process][2] (also tracked in #39366). [1]: https://firebase.google.com/docs/hosting/multisites [2]: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU PR Close #39470 02 November 2020, 15:57:54 UTC
ad4f0fd refactor(docs-infra): break up `deploy-to-firebase.js` script into functions (#39470) This commit breaks up the code in `deploy-to-firebase.js` script, that we use for deploying angular.io to production, to smaller functions (instead of a monolithic block). This makes the script easier to maintain and also makes testing individual operations easier. The commit also updates the `deploy-to-firebase.spec.js` spec file to take advantage of the standalone functions to speed up testing by calling the corresponding function instead of having to spawn a new process and run the `deploy-to-firebase.js` script with the `--dry-run` flag. NOTE: Before updating the tests, I verified that the updated `deploy-to-firebase.js` script passed the old tests. PR Close #39470 02 November 2020, 15:57:54 UTC
8d0c1bd build(docs-infra): add support for RC deployments to deployment script (#39470) This commit updates the angular.io deployment script (`deploy-to-firebase.js`) to support deploying release-candidate versions. This is part of the work needed to prepare angular.io for our [new versioning/branching process][1] (also tracked in #39366). [1]: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU PR Close #39470 02 November 2020, 15:57:54 UTC
47244db build(docs-infra): add new angular.io build configuration for release-candidates (#39470) This commit adds a new build configuration/deployment mode (`rc`) for deploying release-candidate versions to angular.io. This is part of the work needed to prepare angular.io for our [new versioning/branching process][1] (also tracked in #39366). [1]: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU PR Close #39470 02 November 2020, 15:57:54 UTC
e5caf11 refactor(docs-infra): use Sass mixin to simplify the creation of deployment mode themes (#39470) Different deployment modes (such as `archive` and `next`) are identified by the different colors used in prominent elements of the page, such as the topbar and the footer. Previously, the necessary styles for creating such a deployment mode "theme" were duplicated for each mode. This commit simplifies the creation/modification of a deployment mode theme by introducing a Sass mixin that generates the necessary styles (when provided with necessary theme colors). PR Close #39470 02 November 2020, 15:57:54 UTC
37128ca test(docs-infra): ensure `deploy-to-firebase` tests pass locally (#39470) Previously, the `deploy-to-firebase.js` script and the accompanying `deploy-to-firebase.spec.js` spec file were using the `origin` remote alias in certain commands. This works fine on CI, where `origin` points to the `angular/angular` GitHub repo, but might not work locally. This commit ensures that the correct remote is used by explicitly specifying it by the URL, thus ensuring that the tests will behave identically on CI and locally. PR Close #39470 02 November 2020, 15:57:53 UTC
ce14f37 build(docs-infra): switch `deploy-to-firebase.sh` script to JS (#39470) This commit switches the `deploy-to-firebase.sh` script, that we use for deploying angular.io to production, from Bash to JavaScript. This makes the script easier to maintain. For the same reasons, it also switches the `deploy-to-firebase.test.sh` script, that we use for testing the `deploy-to-firebase` script, from Bash to JavaScript (using jasmine as the test runner). Finally, this commit also updates ShellJS to the latest version to get better error messages (including the actual error) when `exec()` fails. NOTE: Before switching the test script to JS, I verified that the new `deploy-to-firebase.js` script passed the tests with the old `deploy-to-firebase.test.sh` script. PR Close #39470 02 November 2020, 15:57:53 UTC
5c13c67 perf(core): do not recurse into modules that have already been registered (#39514) When registering an NgModule based on its id, all transitively imported NgModules are also registered. This commit introduces a visited set to avoid traversing into NgModules that are reachable from multiple import paths multiple times. Fixes #39487 PR Close #39514 02 November 2020, 15:51:19 UTC
8356522 test(compiler-cli): remove spurious `console.error` call from a test (#39321) Reporting the source file text to the console was left as a debugging artifact. PR Close #39321 02 November 2020, 15:50:41 UTC
1ac0500 perf(compiler-cli): only generate template context declaration when used (#39321) The variable declaration for a template context is only needed when it is referenced from somewhere, so the TCB operation to generate the declaration is marked as optional. PR Close #39321 02 November 2020, 15:50:41 UTC
67ea7b6 fix(compiler-cli): report missing pipes when `fullTemplateTypeCheck` is disabled (#39320) Even if `fullTemplateTypeCheck` is disabled should missing pipes still be reported, as was the case in View Engine. Fixes #38195 PR Close #39320 31 October 2020, 01:01:52 UTC
b2f3952 fix(router): Ensure all outlets are used when commands have a prefix (#39456) When there is a primary outlet present in the outlets map and the object is also prefixed with some other commands, the current logic only uses the primary outlet and ignores the others. This change ensures that all outlets are respected at the segment level when prefixed with other commands. PR Close #39456 30 October 2020, 23:23:05 UTC
3abf95d refactor(router): Small refactor of createUrlTree and extra tests (#39456) This commit has a small refactor of some methods in create_url_tree.ts and adds some test cases, including two that will fail at the moment but should pass. A follow-up commit will make use of the refactorings to fix the test with minimal changes. PR Close #39456 30 October 2020, 23:23:04 UTC
eb625b9 docs: update CLI workspace config documentation (#39427) - Improves JSON formatting - Add reference to font optimization - Removes `="true"` from boolean command line args. These are redundant and it can be confusing to why boolean values need to be provided via a CLI. PR Close #39427 30 October 2020, 19:39:30 UTC
a8e0db7 fix(compiler): preserve this.$event and this.$any accesses in expressions (#39323) Currently expressions `$event.foo()` and `this.$event.foo()`, as well as `$any(foo)` and `this.$any(foo)`, are treated as the same expression by the compiler, because `this` is considered the same implicit receiver as when the receiver is omitted. This introduces the following issues: 1. Any time something called `$any` is used, it'll be stripped away, leaving only the first parameter. 2. If something called `$event` is used anywhere in a template, it'll be preserved as `$event`, rather than being rewritten to `ctx.$event`, causing the value to undefined at runtime. This applies to listener, property and text bindings. These changes resolve the first issue and part of the second one by preserving anything that is accessed through `this`, even if it's one of the "special" ones like `$any` or `$event`. Furthermore, these changes only expose the `$event` global variable inside event listeners, whereas previously it was available everywhere. Fixes #30278. PR Close #39323 30 October 2020, 17:49:15 UTC
feda78e fix(common): change the week-numbering year format from `r` -> `Y` (#39495) This commit updates the week-numbering year format from `r` -> `Y` based on the description in http://www.unicode.org/reports/tr35/tr35-dates.html#dfst-year. Note: this is not a breaking change, since the week-numbering year format was introduced in v11.0.0-next.3 (https://github.com/angular/angular/commit/984ed39195d8291f0da0c2747a45761144e6daa2) and the major version that contains that change was not released yet. PR Close #39495 30 October 2020, 17:24:44 UTC
3091534 docs: tView.preOrderHooks and tView.preOrderCheckHooks docs update (#39497) This commit updates the docs for the `tView.preOrderHooks` and `tView.preOrderCheckHooks` TView fields. Current docs are not up-to-date as it was pointed out in #39439. Closes #39439. PR Close #39497 29 October 2020, 23:25:40 UTC
669c4f7 refactor(compiler): clean up i18n attribute generation logic (#39498) This is follow-up from [an earlier discussion](https://github.com/angular/angular/pull/39408#discussion_r511908358). After some testing, it looks like the type of `Element.attributes` was correct in specifying that it only has `TextAttribute` instances. This means that the extra checks that filter out `BoundAttribute` instances from the array isn't necessary. There is another loop a bit further down that actually extracts the bound i18n attributes. PR Close #39498 29 October 2020, 23:07:50 UTC
3b6497b fix(core): markDirty() should only mark flags when really scheduling tick. (#39316) Close #39296 Fix an issue that `markDirty()` will not trigger change detection. The case is for example we have the following component. ``` export class AppComponent implements OnInit { constructor(private router: Router) {} ngOnInit() { this.router.events .pipe(filter((e) => e instanceof NavigationEnd)) .subscribe(() => ɵmarkDirty(this)); } } export class CounterComponent implements OnInit, OnDestroy { ngOnInit() { this.countSubject.pipe(takeUntil(this.destroy)).subscribe((count) => { this.count = count; ɵmarkDirty(this); }); } ``` Then the app navigate from `AppComponent` to `CounterComponent`, so there are 2 `markDirty()` call at in a row. The `1st` call is from `AppComponent` when router changed, the `2nd` call is from `CounterComponent.ngOnInit()`. And the `markDirty()->scheduleTick()` code look like this ``` function scheduleTick(rootContext, flags) { const nothingScheduled = rootContext.flags === 0 /* Empty */; rootContext.flags |= flags; if (nothingScheduled && rootContext.clean == _CLEAN_PROMISE) { rootContext.schedule(() => { ... if (rootContext.flags & RootContextFlags.DetectChanges) rootContext.flags &= ~RootContextFlags.DetectChanges; tickContext(); rootContext.clean = _CLEAN_PROMISE; ... }); ``` So in this case, the `1st` markDirty() will 1. set rootContext.flags = 1 2. before `tickContext()`, reset rootContext.flags = 0 3. inside `tickContext()`, it will call `CounterComponent.ngOnint()`, so the `2nd` markDirty() is called. 4. and the `2nd` scheduleTick is called, `nothingScheduled` is true, but rootContext.clean is not `_CLEAN_PROMISE` yet, since the `1st` markDirty tick is still running. 5. So nowhere will reset the `rootContext.flags`. 6. then in the future, any other `markDirty()` call will not trigger the tick, since `nothingScheduled` is always false. So `nothingScheduled` means no tick is scheduled, `rootContext.clean === _CLEAN_PROMISE` means no tick is running. So we should set the flags to `rootContext` only when `no tick is scheudled or running`. PR Close #39316 29 October 2020, 23:07:11 UTC
0e60dc5 release: cut the zone.js-0.11.3 release (#39440) PR Close #39440 29 October 2020, 22:40:29 UTC
e45da28 build: update to CLI 11.0.0-rc.1 (#39432) This release fixed the previously found size regressions. PR Close #39432 29 October 2020, 20:47:12 UTC
5bb5069 build: update to @angular/cli@11.0.0-rc.0 (#39432) This updates just the cli packages, the material and cdk packages will be updated separately. PR Close #39432 29 October 2020, 20:47:12 UTC
ec416d0 ci: update NgBot config to include more labels that indicate that ticket is triaged (#39494) This commit updates the config of NgBot to treat tickets that have "needs clarification" or "needs reproduction" labels on them as triaged. PR Close #39494 29 October 2020, 19:25:48 UTC
e7f262d docs(forms): update ngModel documentation (#39481) This commit improves the ngModel docs, specifically: - clarifies purpose of the name attribute in ngModelOptions - clarifies on the interaction with a parent form or lack thereof - fix inconsistency with analogy for two-way binding - cleans up some typos and extra wordiness - clarifies language around common properties - adds missing preposition to commit message format origins PR Close #39481 29 October 2020, 18:18:55 UTC
8ea0ee9 fix(dev-infra): update generated ng-dev compiled output (#39474) Update to the new ng-dev generated script. PR Close #39474 29 October 2020, 16:55:28 UTC
6f2b69d fix(dev-infra): clean up output of `caretaker check` command (#39474) Suppress the logging of the git command executed during the caretaker check process. PR Close #39474 29 October 2020, 16:55:28 UTC
89835fe feat(dev-infra): allow suppression of `GitClient`s verbose logging (#39474) Some usages of the `GitClient` are better served by suppressing the logging of lines that express what commands are being run. Many usages of `GitClient` are contained within tools which are best served by keeping the output clean as mostly read actions are occurring. PR Close #39474 29 October 2020, 16:55:28 UTC
b0e114e build: create yarn command for running local version of ng-dev (#39474) For better development experience of the dev-infra work, the `ng-dev:dev` command runs the transpiled version of `ng-dev` making iterative development easier. PR Close #39474 29 October 2020, 16:55:27 UTC
eccf9d6 docs: Match browser name with custom launcher name (#39480) The browser being launched needs to match the custom launcher name. Otherwise Karma would still trigger the original Chrome executable without the flags. PR Close #39480 29 October 2020, 15:39:15 UTC
b8c71c4 docs: rename `ng xi18n` to `ng extract-i18n` (#39337) In Angular CLI version 11, xi18n has been changed from `ng xi18n` to `ng extract-i18n`. PR Close #39337 28 October 2020, 21:42:27 UTC
daab797 docs: move template ref vars doc to concepts section clarify, add scope section, and update headers (#31195) Fixes #31186. This commit adds more context about the behavior of template reference variables in nested templates and moves doc into concepts section. PR Close #31195 28 October 2020, 21:41:45 UTC
7c52fc6 docs: archive user-input topic (#39309) PR Close #39309 28 October 2020, 21:41:09 UTC
bf05c97 release: cut the v11.0.0-rc.1 release 28 October 2020, 21:03:23 UTC
ddc070e docs(core): add jessicajaniuk to pullapprove list (#39473) This just adds jessicajessica to the pullapprove.yml file PR Close #39473 28 October 2020, 18:14:50 UTC
d746804 docs(router): Fix ActivationEnd link (#39469) ActivationEnd goes to ActivationEnd and not to ActivationStart section PR Close #39469 28 October 2020, 18:06:06 UTC
17fe000 docs(zone.js): update release doc (#39442) In the current release doc, we are using some shortcut of `git` command such as `git ci` `git co`, so in this PR we are updating them to the normal command, so these commands will work event without these shortcuts. PR Close #39442 28 October 2020, 17:59:49 UTC
3870d5e build: add PullApprove: disable as a caretaker note label (#39430) Add the label `PullApprove: disable` as a caretaker note label to prompt caretakers to confirm that the PullApprove disabling is intentional. PR Close #39430 28 October 2020, 17:59:11 UTC
112f7e9 ci: allow for disabling PullApprove on a single PR via adding a label (#39430) Alowing for disabling PullApprove on a single PR via adding a label allows for an escape hatch if PullApprove is not acting as expected, or for cases where reviews can be stepped over in obvious situations, such as a revert. PR Close #39430 28 October 2020, 17:59:11 UTC
2bc8b80 docs: Correct a few typographical errors. (#39405) PR Close #39405 28 October 2020, 17:58:27 UTC
65d1ed3 docs: update Learning Angular book edition (#39400) Update the resource Learning Angular book into the third edition PR Close #39400 28 October 2020, 17:57:43 UTC
75110f7 docs: Fix typo in changelog (#39223) PR Close #39223 28 October 2020, 17:56:20 UTC
2632510 docs: fix links to Material examples (#39093) Also uses fixed git hashes so the line numbers won't get outdated in the future PR Close #39093 28 October 2020, 17:53:17 UTC
f61ac8a docs: add carlos caballero to GDE resources (#37976) PR Close #37976 28 October 2020, 17:52:35 UTC
366be11 refactor(core): add top 10 runtime error codes (#39188) adds RuntimeError and code enum to improve debugging experience refactor ExpressionChangedAfterItHasBeenCheckedError to code NG0100 refactor CyclicDependency to code NG0200 refactor No Provider to code NG0201 refactor MultipleComponentsMatch to code NG0300 refactor ExportNotFound to code NG0301 refactor PipeNotFound to code NG0302 refactor BindingNotKnown to code NG0303 refactor NotKnownElement to code NG0304 PR Close #39188 28 October 2020, 17:05:02 UTC
899218d refactor(forms): move common validators-related logic to the `AbstractControlDirective` class (#38280) This commit refactors validators-related logic that is common across most of the directives. A couple notes on this refactoring: * common logic was moved to the `AbstractControlDirective` class (including `validator` and `asyncValidator` getters) * sync/async validators are now composed in `AbstractControlDirective` class eagerly when validators are set with `_setValidators` and `_setAsyncValidators` calls and the result is stored in directive instance (thus getters return cached versions of validator fn). This is needed to make sure composed validator function remains the same (retains its identity) for a given directive instance, so that this function can be added and later removed from an instance of an AbstractControl-based class (like `FormControl`). Preserving validator function is required to perform proper cleanup (in followup PRs) of the AbstractControl-based classes when a directive is destroyed. PR Close #38280 28 October 2020, 16:48:21 UTC
399f491 ci: bust cache of stored node_modules on CircleCI (#39461) Update the cache keys used on CircleCI to bust the cache used in attempt to address issue with tests on aio that are not reproducable locally. Note: Going back to v1 as the cache version as caches are only held for 15 days so we can safely return back to `v1` as the prefix PR Close #39461 27 October 2020, 21:53:10 UTC
910fa51 docs: add install Firebase CLI step before using its commands (#39079) PR Close #39079 27 October 2020, 21:29:06 UTC
f184578 docs(core): update a typo in the comment of ngZoneEventCoalescing (#39423) PR Close #39423 27 October 2020, 21:27:16 UTC
d76beda fix(compiler): do not throw away render3 AST on errors (#39413) Currently render3's `parseTemplate` throws away the parsed AST and returns an empty list of HTML nodes if HTML->R3 translation failed. This is not preferrable in some contexts like that of a language service, where we would like a well-formed AST even if it is has errors. PR Close #39413 27 October 2020, 20:37:20 UTC
72e0c6b Revert "perf(ngcc): allow immediately reporting a stale lock file (#37250)" (#39435) This reverts commit 561c0f81a0d62b84fa47a98226eeb85eda864ffd. The original commit provided a quick escape from an already terminal situation by killing the process if the PID in the lockfile was not found in the list of processes running on the current machine. But this broke use-cases where the node_modules was being shared between multiple machines (or more commonly Docker containers on the same actual machine). Fixes #38875 PR Close #39435 27 October 2020, 20:36:28 UTC
bf1caa7 fix(compiler): treat i18n attributes with no bindings as static attributes (#39408) Currently `i18n` attributes are treated the same no matter if they have data bindings or not. This both generates more code since they have to go through the `ɵɵi18nAttributes` instruction and prevents the translated attributes from being injected using the `@Attribute` decorator. These changes makes it so that static translated attributes are treated in the same way as regular static attributes and all other `i18n` attributes go through the old code path. Fixes #38231. PR Close #39408 27 October 2020, 20:31:30 UTC
4b26a05 docs: fix grammatical errors and typos (#38868) Fixed run on sentences, grammatical errors, and made "ivy" "Ivy" everywhere for consistency. PR Close #38868 27 October 2020, 20:18:02 UTC
70daf10 refactor(compiler-cli): API to get directives/pipes in scope (#39278) This commit introduces two new methods to the TemplateTypeChecker, which retrieve the directives and pipes that are "in scope" for a given component template. The metadata returned by this API is minimal, but enough to power autocompletion of selectors and attributes in templates. PR Close #39278 27 October 2020, 20:17:14 UTC
1bfc44d refactor(compiler-cli): cache Symbols in the TemplateTypeCheckerImpl (#39278) This commit introduces caching of `Symbol`s produced by the template type- checking infrastructure, in the same way that autocompletion results are now cached. PR Close #39278 27 October 2020, 20:17:14 UTC
2a0a287 refactor(compiler-cli): move global completion into new CompletionEngine (#39278) This commit refactors the previously introduced `getGlobalCompletions()` API for the template type-checker in a couple ways: * The return type is adjusted to use a `Map` instead of an array, and separate out the component context completion position. This allows for a cleaner integration in the language service. * A new `CompletionEngine` class is introduced which powers autocompletion for a single component, and can cache completion results. * The `CompletionEngine` for each component is itself cached on the `TemplateTypeCheckerImpl` and is invalidated when the component template is overridden or reset. This refactoring simplifies the `TemplateTypeCheckerImpl` class by extracting the autocompletion logic, enables caching for better performance, and prepares for the introduction of other autocompletion APIs. PR Close #39278 27 October 2020, 20:17:14 UTC
523a451 build: add husky ignored files to .gitignore (#39388) Ahead of upgrading to husky v5, adding the shell file location to .gitignore to prevent it from randomly showing up when devs checkout older branches. Beginning in v5, husky places its shell files in a directory at `.husky/_` so these are placed in the .gitignore to prevent being commited or tracked. PR Close #39388 27 October 2020, 18:07:22 UTC
13063c4 ci: add alan-agius4 to docs-cli in pullapprove configuration (#39448) Add alan-agius4 to `docs-cli` group in pullapprove configuration. PR Close #39448 27 October 2020, 17:49:09 UTC
89c6d10 build(docs-infra): upgrade cli command docs sources to d5c1851de (#39446) Updating [angular#11.0.x](https://github.com/angular/angular/tree/11.0.x) from [cli-builds#11.0.x](https://github.com/angular/cli-builds/tree/11.0.x). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/deec40756...d5c1851de): **Modified** - help/build.json ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/deec40756...d5c1851de) since PR #39407: **Modified** - help/build.json ## Closes #39407 PR Close #39446 27 October 2020, 17:48:31 UTC
6c79598 docs: fix more typos in component overview (#39445) PR Close #39445 27 October 2020, 17:47:36 UTC
65abf7e docs: fix typo in initializeInputAndOutputAliases docstring (#39438) PR Close #39438 27 October 2020, 17:46:38 UTC
d1840ee refactor(core): remove expandoStartIndex workaround (#39416) This commit removes a workaround to calculate the `expandoStartIndex` value. That workaround was needed because the `expandoStartIndex` was updated previously, so it pointed at the wrong location. The problem was fixed in PR #39301 and the workaround is no longer needed. PR Close #39416 27 October 2020, 17:45:53 UTC
cc32932 fix(core): do not error when `ngDevMode` is undeclared (#39415) In production mode, the `ngDevMode` global may not have been declared. This is typically not a problem, as optimizers should have removed all usages of the `ngDevMode` variables. This does however require the bundler/optimizer to have been configured in a certain way, as to allow for `ngDevMode` guarded code to be removed. As an example, Terser can be configured to remove the `ngDevMode` guarded code using the following configuration: ```js const terserOptions = { // ... compress: { // ... global_defs: require('@angular/compiler-cli').GLOBAL_DEFS_FOR_TERSER, } } ``` (Taken from https://github.com/angular/angular/issues/31595#issuecomment-519129090) If this is not done, however, the bundle should still work (albeit with larger code size due to missed tree-shaking opportunities). This commit adds a check for whether `ngDevMode` has been declared, as it is a top-level statement that executes before `ngDevMode` has been initialized. Fixes #31595 PR Close #39415 27 October 2020, 17:45:19 UTC
32163ef fix(localize): render placeholder types in extracted XLIFF files (#39398) The previous ViewEngine extraction tooling added `ctype` and `type` attributes to XLIFF 1.2 and 2.0 translation files, respectively. This commit adds this to the new $localize based extraction tooling. Since the new extraction tooling works from the compiled output rather than having direct access to the template content, the placeholder types must be inferred from the name of the placeholder. This is considered reasonable, since it already does this to compute opening and closing tag placeholders. Fixes #38791 PR Close #39398 27 October 2020, 17:42:16 UTC
97b4653 refactor(core): remove unused i18n placeholder for projection (#39172) Runtime i18n logic doesn't distinguish `<ng-content>` tag placeholders and regular element tag placeholders in i18n messages, so there is no need to have a special marker for projection-based placeholders and element markers can be used instead. PR Close #39172 27 October 2020, 17:39:38 UTC
back to top