https://github.com/angular/angular

sort by:
Revision Author Date Message Commit Date
f815aa1 build: add configuration for the caretaker command (#38601) Add configuration information for the new caretaker command PR Close #38601 01 September 2020, 20:05:37 UTC
1523f21 feat(dev-infra): check services/status information of the repository for caretaker (#38601) The angular team relies on a number of services for hosting code, running CI, etc. This tool allows for checking the operational status of all services at once as well as the current state of the repository with respect to merge and triage ready issues and prs. PR Close #38601 01 September 2020, 20:05:35 UTC
626ac45 docs: Restructure table of contents to provide a more streamlined experience (#38658) PR Close #38658 01 September 2020, 00:11:27 UTC
a938180 fix(compiler): incorrectly inferring namespace for HTML nodes inside SVG (#38477) The HTML parser gets an element's namespace either from the tag name (e.g. `<svg:rect>`) or from its parent element `<svg><rect></svg>`) which breaks down when an element is inside of an SVG `foreignElement`, because foreign elements allow nodes from a different namespace to be inserted into an SVG. These changes add another flag to the tag definitions which tells child nodes whether to try to inherit their namespaces from their parents. It also adds a definition for `foreignObject` with the new flag, allowing elements placed inside it to infer their namespaces instead. Fixes #37218. PR Close #38477 31 August 2020, 20:25:41 UTC
7d5ea55 refactor(dev-infra): use a mixin to require a `github-token` for an ng-dev command (#38630) Creates a mixin for requiring a github token to be provided to a command. This mixin allows for a centralized management of the requirement and handling of the github-token. PR Close #38630 31 August 2020, 19:32:29 UTC
b060837 docs: Remove confusion between do/avoid templates (#38647) PR Close #38647 31 August 2020, 17:25:18 UTC
9a64980 refactor(forms): remove extra space in error message (#38637) Remove extra whitespace at package/forms/model.ts error messages PR Close #38637 31 August 2020, 16:31:58 UTC
67db658 refactor(dev-infra): improve error message for unexpected version branches (#38622) Currently the merge script default branch configuration throws an error if an unexpected version branch is discovered. The error right now assumes to much knowledge of the logic and the document outlining the release trains conceptually. We change it to something more easy to understand that doesn't require full understanding of the versioning/labeling/branching document that has been created for the Angular organization. PR Close #38622 31 August 2020, 16:30:00 UTC
4e8592e feat(dev-infra): write outputs of command runs to ng-dev log file (#38599) Creates infrastructure to write outputs of command runs to ng-dev log file. Additionally, on commands which fail with an exit code greater than 1, an error log file is created with the posix timestamp of the commands run time as an identifier. PR Close #38599 31 August 2020, 15:47:18 UTC
d366b17 docs: ng generate module command doc change (#38480) PR Close #38480 31 August 2020, 15:43:22 UTC
8a3785d docs: remove first person and space in CircleCI in the testing guide. (#38631) PR Close #38631 31 August 2020, 15:42:07 UTC
bcaafb4 docs: remove double space in start-data. (#38642) PR Close #38642 31 August 2020, 15:41:32 UTC
9cdf857 docs: fix broken markdown in start/start-data (#38644) PR Close #38644 31 August 2020, 15:40:59 UTC
abc1c99 refactor(dev-infra): remove `style` type from commit style guide (#38639) The `style` commit type is not part of the commit parser config, it should be removed from the documentation. PR Close #38639 31 August 2020, 15:40:16 UTC
cb6bf40 fix(bazel): fix integration test for bazel building (#38629) Update the API used to request a timestamp. The previous API we relied on for this test application, worldclockapi.com no longer serves times and simply 403s on all requests. This caused our test to timeout as the HTTP request did not handle a failure case. By moving to a new api, the HTTP request responds as expected and timeouts are corrected as there is not longer a pending microtask in the queue. PR Close #38629 28 August 2020, 18:16:42 UTC
fc600e5 build: update ng-dev merge config to reflect new label updates (#38620) Update the ng-dev merge configuration to reflect the new label updates PR Close #38620 28 August 2020, 15:03:26 UTC
a6ce102 ci: update angular robot to be based on new label updates (#38620) Update the angular robot configuration to reflect the new label updates PR Close #38620 28 August 2020, 15:03:24 UTC
76c955f docs(forms): exclude internal-only methods and properties from docs (#38583) Prior to this commit, a lot of internal-only class properties and methods (such as `ngOnChanges`) of the Forms package directives were exposed on angular.io website. These fields are not expected to be called externally (they are used/invoked by framework only), since they are part of internal implementations of the following interfaces: * Angular lifecycle hook interfaces * ControlValueAccessor interface * Validator interface Having these internal-only fields in docs creates unnecessary noise on directive detail pages. This commit adds the `@nodoc` annotation to these properties and methods to keep fields in the golden files, but hide them in docs. PR Close #38583 27 August 2020, 23:39:40 UTC
e3a71ae ci: update github robot to reflect new target labels (#38428) Updates the Github robot to reflect the updated target labels that are used as part of the canonical versioning and labeling for the Angular organization. PR Close #38428 27 August 2020, 21:52:49 UTC
44fcc0a build: use new labeling and branching in merge script (#38428) We introduced a new shared configuration for merge script labels that follow the proposal of: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU These label semantics and the branching are set up for the Angular framework with this commit. The goal is that labeling and merging is consistent between all Angular projects and that clear rules are defined for branching. This was previously not the case. PR Close #38428 27 August 2020, 21:52:47 UTC
5c3db4f docs: update docs to reflect new PR targeting methods for release trains (#38401) As part of the migration to a common strategy/method for branching and releasing across the main angular repositories, updates need to be made to the documentation. These changes reflect the updates made and is based on the following document which describes the merging label expectations: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU PR Close #38401 27 August 2020, 21:52:07 UTC
43ddfba build: bump to lastest sha of angular/dev-infra's lock-closed action (#38615) Update to the latest lock-closed action to fix the link which is used. PR Close #38615 27 August 2020, 17:58:31 UTC
94fd5c7 test(docs-infra): add commands to run the unit tests (#34537) This commit adds the necessary custom commands to run the tests in a node environment. PR Close #34537 27 August 2020, 16:06:03 UTC
1b440e8 test(docs-infra): add missing tests for obserables and promises (#34537) This commit adds missing tests for obserables and promises which are both stand-alone mini-apps. PR Close #34537 27 August 2020, 16:06:01 UTC
89ff446 docs: add Sam Vloeberghs to GDE list (#37970) PR Close #37970 26 August 2020, 19:52:59 UTC
f00e1bc docs: remove outdated CircleCI link from `DEVELOPER.md` (#38554) CircleCI updated their UI and now the URLs are different (and cannot be constructed based on the build number alone). This commit removes a reference of the obsolete URL pattern to avoid confusion. Example old URL: https://circleci.com/gh/angular/angular/<build-number>#artifacts Example new URL: https://app.circleci.com/pipelines/github/angular/angular/<build-number>/workflows/<workflow-id>/jobs/<job-id>/artifacts PR Close #38554 26 August 2020, 19:52:29 UTC
0d439fd fix(docs-infra): add guard to not render anchor link for private api (#38589) This commit adds a guard that prevents rendering anchor links for private api's. Closes #38564 PR Close #38589 26 August 2020, 19:51:06 UTC
7d8dce1 release: cut the v10.0.14 release 26 August 2020, 18:32:54 UTC
9168919 docs: Minor fixes in NgModules section (#36177) Apply minor fixes to various guides of the NgModules section PR Close #36177 25 August 2020, 22:24:06 UTC
d066368 docs: add correct path for karma.conf.js file (#38571) In the latest Angular CLI versions, the `karma.conf.js` file resides in the root folder of the Angular CLI project. PR Close #38571 25 August 2020, 16:56:35 UTC
4e263eb docs: fix typo in the testing component basics guide (#38573) The guide ends with a sentence that implies there are more tests following the end of the guide. PR Close #38573 25 August 2020, 16:56:02 UTC
3c684d9 fix(zone.js): zone.js toString patch should check typeof Promise is function (#38350) Close #38361 zone.js monkey patch toString, and check the instance is `Promise` or not by using `instanceof Promise`, sometimes when Promise is not available, the `instanceof` operation fails and throw `TypeError: Right-hand side of 'instanceof' is not an object` this PR check `typeof Promise` equals to function or not to prevent the error. PR Close #38350 25 August 2020, 16:51:54 UTC
81db6a3 release: cut the v10.0.12 release 24 August 2020, 22:15:10 UTC
8224e65 docs(localize): fix angular.json syntax (#38553) In chapter internationalization (i18n) at section "Deploy multiple locales" the syntax for angular.json is wrong. This commit fixes the angular.json, when specifying the translation file and the baseHref for a locale. PR Close #38553 24 August 2020, 16:25:38 UTC
9e50cef test(language-service): [Ivy] return cursor position in overwritten template (#38552) In many testing scenarios, there is a common pattern: 1. Overwrite template (inline or external) 2. Find cursor position 3. Call one of language service APIs 4. Inspect spans in result In order to faciliate this pattern, this commit refactors `MockHost.overwrite()` and `MockHost.overwriteInlineTemplate()` to allow a faux cursor symbol `¦` to be injected into the template, and the methods will automatically remove it before updating the script snapshot. Both methods will return the cursor position and the new text without the cursor symbol. This makes testing very convenient. Here's a typical example: ```ts const {position, text} = mockHost.overwrite('template.html', `{{ ti¦tle }}`); const quickInfo = ngLS.getQuickInfoAtPosition('template.html', position); const {start, length} = quickInfo!.textSpan; expect(text.substring(start, start + length)).toBe('title'); ``` PR Close #38552 24 August 2020, 16:25:07 UTC
66d8c22 feat(language-service): introduce hybrid visitor to locate AST node (#38540) This commit introduces two visitors, one for Template AST and the other for Expression AST to allow us to easily find the node that most closely corresponds to a given cursor position. This is crucial because many language service APIs take in a `position` parameter, and the information returned depends on how well we can find a good candidate node. In View Engine implementation of language service, the search for the node and the processing of information to return the result are strongly coupled. This makes the code hard to understand and hard to debug because the stack trace is often littered with layers of visitor calls. With this new feature, we could test the "searching" part separately and colocate all the logic (aka hacks) that's required to retrieve an accurate span for a given node. Right now, only the most "narrow" node is returned by the main exported function `findNodeAtPosition`. If needed, we could expose the entire AST path, or expose other methods to provide more context for a node. Note that due to limitations in the template AST interface, there are a few known cases where microsyntax spans are not recorded properly. This will be dealt with in a follow-up PR. PR Close #38540 24 August 2020, 16:24:21 UTC
814b436 fix(compiler-cli): adding references to const enums in runtime code (#38542) We had a couple of places where we were assuming that if a particular symbol has a value, then it will exist at runtime. This is true in most cases, but it breaks down for `const` enums. Fixes #38513. PR Close #38542 21 August 2020, 19:23:24 UTC
6b98567 fix(dev-infra): ignore comments when validating commit messages (#38438) When creating a commit with the git cli, git pre-populates the editor used to enter the commit message with some comments (i.e. lines starting with `#`). These comments contain helpful instructions or information regarding the changes that are part of the commit. As happens with all commit message comments, they are removed by git and do not end up in the final commit message. However, the file that is passed to the `commit-msg` to be validated still contains these comments. This may affect the outcome of the commit message validation. In such cases, the author will not realize that the commit message is not in the desired format until the linting checks fail on CI (which validates the final commit messages and is not affected by this issue), usually several minutes later. Possible ways in which the commit message validation outcome can be affected: - The minimum body length check may pass incorrectly, even if there is no actual body, because the comments are counted as part of the body. - The maximum line length check may fail incorrectly due to a very long line in the comments. This commit fixes the problem by removing comment lines before validating a commit message. Fixes #37865 PR Close #38438 21 August 2020, 19:17:17 UTC
7f2a3e4 docs: apply code styling in template reference variables guide (#38522) PR Close #38522 20 August 2020, 20:01:37 UTC
1775f35 fix(docs-infra): fix vertical alignment of external link icons (#38410) At some places external link icons appear as a subscript. For example https://github.com/angular/angular/blame/8366effeec8e74c1a11d2a6e1a48d42e849e4653/aio/content/guide/roadmap.md\#L37 this commit places external link icons in the middle to improve there positioning in a line. PR Close #38410 20 August 2020, 16:40:05 UTC
1df52d9 docs: udpate the details (#37967) updating my twitter handle and bio as it is changed from Angular and Web Tech to Angular also the twitter handle is changed to SantoshYadavDev PR Close #37967 20 August 2020, 16:39:05 UTC
77e8db4 docs(core): Fix typo in JSDoc for AbstractType<T> (#38541) PR Close #38541 20 August 2020, 16:30:24 UTC
c90262e Revert "Revert "fix(core): remove closing body tag from inert DOM builder (#38454)"" This reverts commit 87bbf69ce8f673c022b6db55be232ecdf2cb343a. 20 August 2020, 15:56:01 UTC
87bbf69 Revert "fix(core): remove closing body tag from inert DOM builder (#38454)" This reverts commit 552853648ca75fe420ba594ba48555da39f263c7. 20 August 2020, 04:02:55 UTC
5528536 fix(core): remove closing body tag from inert DOM builder (#38454) Fix a bug in the HTML sanitizer where an unclosed iframe tag would result in an escaped closing body tag as the output: _sanitizeHtml(document, '<iframe>') => '&lt;/body&gt;' This closing body tag comes from the DOMParserHelper where the HTML to be sanitized is wrapped with surrounding body tags. When an opening iframe tag is parsed by DOMParser, which DOMParserHelper uses, everything up until its matching closing tag is consumed as a text node. In the above example this includes the appended closing body tag. By removing the explicit closing body tag from the DOMParserHelper and relying on the body tag being closed implicitly at the end, the above example is sanitized as expected: _sanitizeHtml(document, '<iframe>') => '' PR Close #38454 19 August 2020, 21:18:47 UTC
07b99f5 fix(localize): parse all parts of a translation with nested HTML (#38452) Previously nested container placeholders (i.e. HTML elements) were not being fully parsed from translation files. This resulted in bad translation of messages that contain these placeholders. Note that this causes the canonical message ID to change for such messages. Currently all messages generated from templates use "legacy" message ids that are not affected by this change, so this fix should not be seen as a breaking change. Fixes #38422 PR Close #38452 19 August 2020, 21:16:48 UTC
57d1a48 fix(localize): include the last placeholder in parsed translation text (#38452) When creating a `ParsedTranslation` from a set of message parts and placeholder names a textual representation of the message is computed. Previously the last placeholder and text segment were missing from this computed message string. PR Close #38452 19 August 2020, 21:16:45 UTC
d662a64 refactor(compiler-cli): add getTemplateOfComponent to TemplateTypeChecker (#38355) This commit adds a `getTemplateOfComponent` method to the `TemplateTypeChecker` API, which retrieves the actual nodes parsed and used by the compiler for template type-checking. This is advantageous for the language service, which may need to query other APIs in `TemplateTypeChecker` that require the same nodes used to bind the template while generating the TCB. Fixes #38352 PR Close #38355 19 August 2020, 21:07:07 UTC
e57a2b3 docs: Typos fixes in the binding syntax guide (#38519) PR Close #38519 19 August 2020, 21:05:53 UTC
a3f3082 release: cut the v10.0.11 release 19 August 2020, 16:05:11 UTC
0570c24 docs: Fix typo in the inputs and outputs guide (#38524) PR Close #38524 19 August 2020, 15:27:48 UTC
398118f feat(dev-infra): create a wizard for building commit messages (#38457) Creates a wizard to walk through creating a commit message in the correct template for commit messages in Angular repositories. PR Close #38457 19 August 2020, 00:01:18 UTC
dcc3f6d feat(dev-infra): tooling to check out pending PR (#38474) Creates a tool within ng-dev to checkout a pending PR from the upstream repository. This automates an action that many developers on the Angular team need to do periodically in the process of testing and reviewing incoming PRs. Example usage: ng-dev pr checkout <pr-number> PR Close #38474 18 August 2020, 23:22:52 UTC
0af9533 fix(router): ensure routerLinkActive updates when associated routerLinks change (#38511) This commit introduces a new subscription in the `routerLinkActive` directive which triggers an update when any of its associated routerLinks have changes. `RouterLinkActive` not only needs to know when links are added or removed, but it also needs to know about if a link it already knows about changes in some way. Quick note that `from...mergeAll` is used instead of just a simple `merge` (or `scheduled...mergeAll`) to avoid introducing new rxjs operators in order to keep bundle size down. Fixes #18469 PR Close #38511 18 August 2020, 17:21:55 UTC
f9a76a7 Revert "fix(router): ensure routerLinkActive updates when associated routerLinks change (#38349)" (#38511) This reverts commit e0e5c9f195460c7626c30248e7a79de9a2ebe377. Failures in Google tests were detected. PR Close #38511 18 August 2020, 17:21:52 UTC
832a54e docs(common): Wrong parameter description on TrackBy (#38495) Track By Function receive the T[index] data, not the node id. TrackByFunction reference description has the same issue. PR Close #38495 18 August 2020, 17:08:47 UTC
e8f4294 refactor(localize): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 18 August 2020, 17:06:32 UTC
ce448f4 refactor(ngcc): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 18 August 2020, 17:06:29 UTC
847eaa0 refactor(dev-infra): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 18 August 2020, 17:06:26 UTC
3e80f0e release: cut the v10.0.10 release 17 August 2020, 20:10:36 UTC
f3dd6c2 fix(ngcc): detect synthesized delegate constructors for downleveled ES2015 classes (#38500) Similarly to the change we landed in the `@angular/core` reflection capabilities, we need to make sure that ngcc can detect pass-through delegate constructors for classes using downleveled ES2015 output. More details can be found in the preceding commit, and in the issue outlining the problem: #38453. Fixes #38453. PR Close #38500 17 August 2020, 19:50:19 UTC
863acb6 fix(core): detect DI parameters in JIT mode for downleveled ES2015 classes (#38500) In the Angular Package Format, we always shipped UMD bundles and previously even ES5 module output. With V10, we removed the ES5 module output but kept the UMD ES5 output. For this, we were able to remove our second TypeScript transpilation. Instead we started only building ES2015 output and then downleveled it to ES5 UMD for the NPM packages. This worked as expected but unveiled an issue in the `@angular/core` reflection capabilities. In JIT mode, Angular determines constructor parameters (for DI) using the `ReflectionCapabilities`. The reflection capabilities basically read runtime metadata of classes to determine the DI parameters. Such metadata can be either stored in static class properties like `ctorParameters` or within TypeScript's `design:params`. If Angular comes across a class that does not have any parameter metadata, it tries to detect if the given class is actually delegating to an inherited class. It does this naively in JIT by checking if the stringified class (function in ES5) matches a certain pattern. e.g. ```js function MatTable() { var _this = _super.apply(this, arguments) || this; ``` These patterns are reluctant to changes of the class output. If a class is not recognized properly, the DI parameters will be assumed empty and the class is **incorrectly** constructed without arguments. This actually happened as part of v10 now. Since we downlevel ES2015 to ES5 (instead of previously compiling sources directly to ES5), the class output changed slightly so that Angular no longer detects it. e.g. ```js var _this = _super.apply(this, __spread(arguments)) || this; ``` This happens because the ES2015 output will receive an auto-generated constructor if the class defines class properties. This constructor is then already containing an explicit `super` call. ```js export class MatTable extends CdkTable { constructor() { super(...arguments); this.disabled = true; } } ``` If we then downlevel this file to ES5 with `--downlevelIteration`, TypeScript adjusts the `super` call so that the spread operator is no longer used (not supported in ES5). The resulting super call is different to the super call that would have been emitted if we would directly transpile to ES5. Ultimately, Angular no longer detects such classes as having an delegate constructor -> and DI breaks. We fix this by expanding the rather naive RegExp patterns used for the reflection capabilities so that downleveled pass-through/delegate constructors are properly detected. There is a risk of a false-positive as we cannot detect whether `__spread` is actually the TypeScript spread helper, but given the reflection patterns already make lots of assumptions (e.g. that `super` is actually the superclass, we should be fine making this assumption too. The false-positive would not result in a broken app, but rather in unnecessary providers being injected (as a noop). Fixes #38453 PR Close #38500 17 August 2020, 19:50:16 UTC
989e8a1 fix(router): ensure routerLinkActive updates when associated routerLinks change (#38349) This commit introduces a new subscription in the `routerLinkActive` directive which triggers an update when any of its associated routerLinks have changes. `RouterLinkActive` not only needs to know when links are added or removed, but it also needs to know about if a link it already knows about changes in some way. Quick note that `from...mergeAll` is used instead of just a simple `merge` (or `scheduled...mergeAll`) to avoid introducing new rxjs operators in order to keep bundle size down. Fixes #18469 PR Close #38349 17 August 2020, 19:34:02 UTC
84d1ba7 refactor(language-service): [Ivy] remove temporary compiler (#38310) Now that Ivy compiler has a proper `TemplateTypeChecker` interface (see https://github.com/angular/angular/pull/38105) we no longer need to keep the temporary compiler implementation. The temporary compiler was created to enable testing infrastructure to be developed for the Ivy language service. This commit removes the whole `ivy/compiler` directory and moves two functions `createTypeCheckingProgramStrategy` and `getOrCreateTypeCheckScriptInfo` to the `LanguageService` class. Also re-enable the Ivy LS test since it's no longer blocking development. PR Close #38310 17 August 2020, 18:30:36 UTC
b32126c fix(common): Allow scrolling when browser supports scrollTo (#38468) This commit fixes a regression from "fix(common): ensure scrollRestoration is writable (#30630)" that caused scrolling to not happen at all in browsers that do not support scroll restoration. The issue was that `supportScrollRestoration` was updated to return `false` if a browser did not have a writable `scrollRestoration`. However, the previous behavior was that the function would return `true` if `window.scrollTo` was defined. Every scrolling function in the `ViewportScroller` used `supportScrollRestoration` and, with the update in bb88c9fa3daac80086efbda951d81c159e3840f4, no scrolling would be performed if a browser did not have writable `scrollRestoration` but _did_ have `window.scrollTo`. Note, that this failure was detected in the saucelabs tests. IE does not support scroll restoration so IE tests were failing. PR Close #38468 14 August 2020, 18:41:26 UTC
d5e09f4 fix(core): fix multiple nested views removal from ViewContainerRef (#38317) When removal of one view causes removal of another one from the same ViewContainerRef it triggers an error with views length calculation. This commit fixes this bug by removing a view from the list of available views before invoking actual view removal (which might be recursive and relies on the length of the list of available views). Fixes #38201. PR Close #38317 13 August 2020, 20:35:56 UTC
c25c57c style(compiler-cli): remove unused constant (#38441) Remove unused constant allDiagnostics PR Close #38441 13 August 2020, 20:32:44 UTC
692e34d test(docs-infra): remove deprecated `ReflectiveInjector` (#38408) This commit replaces the old and slow `ReflectiveInjector` that was deprecated in v5 with the new `Injector`. Note: This change was only done in the spec files inside the `aio` folder. While changing this, it was not possible to directly use `Injector.get` to get the correct typing for the mocked classes. For example: ```typescript locationService = injector.get<TestLocationService>(LocationService); ``` Fails with: > Argument of type 'typeof LocationService' is not assignable to parameter of type 'Type<TestLocationService> | InjectionToken<TestLocationService> | AbstractType<TestLocationService>'. Type 'typeof LocationService' is not assignable to type 'Type<TestLocationService>'. Property 'searchResult' is missing in type 'LocationService' but required in type 'TestLocationService'. Therefore, it was necessary to first convert to `unknown` and then to `TestLocationService`. ```typescript locationService = injector.get(LocationService) as unknown as TestLocationService; ``` PR Close #38408 13 August 2020, 19:56:17 UTC
071348e build: run browsers tests on chromium locally (#38435) (#38450) Previously we added a browser target for `firefox` into the dev-infra package. It looks like as part of this change, we accidentally switched the local web testing target to `firefox`. Web tests are not commonly run locally as we use Domino and NodeJS tests for primary development. Sometimes though we intend to run tests in a browser. This would currently work with Firefox but not on Windows (as Firefox is a noop there in Bazel). This commit switches the primary browser back to `chromium`. Also Firefox has been added as a second browser to web testing targets. This allows us to reduce browsers in the legacy Saucelabs job. i.e. not running Chrome and Firefox there. This should increase stability and speed up the legacy job (+ reduced rate limit for Saucelabs). PR Close #38435 PR Close #38450 13 August 2020, 19:55:16 UTC
8803f9f ci: disable saucelabs tests on Firefox ESR while investigating failures (#37647) (#38450) Firefox ESR tests fail running the acceptance tests on saucelabs. These tests are being disabled while investigating the failure as it is not entirely clear whether this is saucelabs failure or a something like a memory pressure error in the test itself. PR Close #37647 PR Close #38450 13 August 2020, 19:55:13 UTC
aa816d3 ci: disable closure size tracking test (#38449) We should define ngDevMode to false in Closure, but --define only works in the global scope. With ngDevMode not being set to false, this size tracking test provides little value but a lot of headache to continue updating the size. PR Close #38449 13 August 2020, 18:41:16 UTC
a5ba40a refactor(router): Add annotations to correct Router documentation (#38448) The `@HostListener` functions and lifecycle hooks aren't intended to be public API but do need to appear in the `.d.ts` files or type checking will break. Adding the nodoc annotation will correctly hide this function on the docs site. Again, note that `@internal` cannot be used because the result would be that the functions then do not appear in the `.d.ts` files. This would break lifecycle hooks because the class would be seen as not implementing the interface correctly. This would also break `HostListener` because the compiled templates would attempt to call the `onClick` functions, but those would also not appear in the `d.ts` and would produce errors like "Property 'onClick' does not exist on type 'RouterLinkWithHref'". PR Close #38448 13 August 2020, 18:36:13 UTC
cb83b8a fix(core): error if CSS custom property in host binding has number in name (#38432) Fixes an error if a CSS custom property, used inside a host binding, has a number in its name. The error is thrown because the styling parser only expects characters from A to Z,dashes, underscores and a handful of other characters. Fixes #37292. PR Close #38432 13 August 2020, 17:35:11 UTC
8bb726e build: update ng-dev config file for new commit message configuration (#38430) Removes the commit message types from the config as they are now staticly defined in the dev-infra code. PR Close #38430 13 August 2020, 16:11:25 UTC
88662a5 feat(dev-infra): migrate to unified commit message types in commit message linting (#38430) Previously commit message types were provided as part of the ng-dev config in the repository using the ng-dev toolset. This change removes this configuration expectation and instead predefines the valid types for commit messages. Additionally, with this new unified set of types requirements around providing a scope have been put in place. Scopes are either required, optional or forbidden for a given commit type. PR Close #38430 13 August 2020, 16:11:23 UTC
9b32a59 feat(dev-infra): update to latest benchpress version (#38440) We recently updated the benchpress package to have a more loose Angular core peer dependency, and less other unused dependencies. We should make sure to use that in the dev-infra package so that peer dependencies can be satisified in consumer projects, and so that less unused dependencies are brought into projects. PR Close #38440 13 August 2020, 16:09:34 UTC
ffd1691 feat(dev-infra): save invalid commit message attempts to be restored on next commit attempt (#38304) When a commit message fails validation, rather than throwing out the commit message entirely the commit message is saved into a draft file and restored on the next commit attempt. PR Close #38304 13 August 2020, 15:45:28 UTC
afd4417 refactor(dev-infra): extract the commit message parsing function into its own file (#38429) Extracts the commit message parsing function into its own file. PR Close #38429 12 August 2020, 23:10:08 UTC
2f53bbb docs: remove unused Input decorator (#38306) In the part "5. Add In-app Navigation" of the tutorial it was already removed PR Close #38306 12 August 2020, 18:26:11 UTC
a4f99f4 refactor(dev-infra): use promptConfirm util in ng-dev's formatter (#38419) Use the promptConfirm util instead of manually creating a confirm prompt with inquirer. PR Close #38419 12 August 2020, 18:25:12 UTC
0711128 docs: update web-worker CLI commands to bash style (#38421) With this change we update the CLI generate commands to be in bash style. PR Close #38421 12 August 2020, 18:24:36 UTC
25f79ba release: cut the v10.0.9 release 12 August 2020, 16:35:37 UTC
2590a9b docs: delete one superfluous sentence (#38339) PR Close #38339 12 August 2020, 15:23:19 UTC
f68a1d3 build: run formatting automatically on pre-commit hook (#38402) Runs the `ng-dev format changed` command whenever the `git commit` command is run. As all changes which are checked by CI will require this check passing, this change can prevent needless roundtrips to correct lint/formatting errors. This automatic formatting can be bypassed with the `--no-verify` flag on the `git commit` command. PR Close #38402 11 August 2020, 23:32:55 UTC
89f7f63 feat(dev-infra): Add support for formatting all staged files (#38402) Adds an ng-dev formatter option to format all of the staged files. This will can be used to format only the staged files during the pre-commit hook. PR Close #38402 11 August 2020, 23:32:55 UTC
ca2b4bc fix(compiler-cli): avoid creating value expressions for symbols from type-only imports (#38415) In TypeScript 3.8 support was added for type-only imports, which only brings in the symbol as a type, not their value. The Angular compiler did not yet take the type-only keyword into account when representing symbols in type positions as value expressions. The class metadata that the compiler emits would include the value expression for its parameter types, generating actual imports as necessary. For type-only imports this should not be done, as it introduces an actual import of the module that was originally just a type-only import. This commit lets the compiler deal with type-only imports specially, preventing a value expression from being created. Backports #37912 to patch PR Close #38415 11 August 2020, 19:31:58 UTC
f6cfc92 ci: update payload size limits for Closure tests (#38411) Currently the Closure-related tests are not tree-shaking the dev-mode-only content, thus payload size checks are failing even if dev-mode-only content is added. The https://github.com/angular/angular/commit/2e9fdbde9eb26fea17e3e68e272dc1c2cc9f4fa3 commit added some logic to JIT compiler, which is likely triggered the payload size increase. This commit updates the payload size limits for Closure-related test to get master and patch branches back to the "green" state. PR Close #38411 11 August 2020, 17:59:40 UTC
5b87c67 fix(compiler-cli): infer quote expressions as any type in type checker (#37917) "Quote expressions" are expressions that start with an identifier followed by a comma, allowing arbitrary syntax to follow. These kinds of expressions would throw a an error in the template type checker, which would make them hard to track down. As quote expressions are not generally used at all, the error would typically occur for URLs that would inadvertently occur in a binding: ```html <a [href]="https://example.com"></a> ``` This commit lets such bindings be inferred as the `any` type. Fixes #36568 Resolves FW-2051 PR Close #37917 11 August 2020, 16:54:54 UTC
f5b9d87 fix(compiler): evaluate safe navigation expressions in correct binding order (#37911) When using the safe navigation operator in a binding expression, a temporary variable may be used for storing the result of a side-effectful call. For example, the following template uses a pipe and a safe property access: ```html <app-person-view [enabled]="enabled" [firstName]="(person$ | async)?.name"></app-person-view> ``` The result of the pipe evaluation is stored in a temporary to be able to check whether it is present. The temporary variable needs to be declared in a separate statement and this would also cause the full expression itself to be pulled out into a separate statement. This would compile into the following pseudo-code instructions: ```js var temp = null; var firstName = (temp = pipe('async', ctx.person$)) == null ? null : temp.name; property('enabled', ctx.enabled)('firstName', firstName); ``` Notice that the pipe evaluation happens before evaluating the `enabled` binding, such that the runtime's internal binding index would correspond with `enabled`, not `firstName`. This introduces a problem when the pipe uses `WrappedValue` to force a change to be detected, as the runtime would then mark the binding slot corresponding with `enabled` as dirty, instead of `firstName`. This results in the `enabled` binding to be updated, triggering setters and affecting how `OnChanges` is called. In the pseudo-code above, the intermediate `firstName` variable is not strictly necessary---it only improved readability a bit---and emitting it inline with the binding itself avoids the out-of-order execution of the pipe: ```js var temp = null; property('enabled', ctx.enabled) ('firstName', (temp = pipe('async', ctx.person$)) == null ? null : temp.name); ``` This commit introduces a new `BindingForm` that results in the above code to be generated and adds compiler and acceptance tests to verify the proper behavior. Fixes #37194 PR Close #37911 11 August 2020, 16:51:11 UTC
3acebdc fix(core): prevent NgModule scope being overwritten in JIT compiler (#37795) In JIT compiled apps, component definitions are compiled upon first access. For a component class `A` that extends component class `B`, the `B` component is also compiled when the `InheritDefinitionFeature` runs during the compilation of `A` before it has finalized. A problem arises when the compilation of `B` would flush the NgModule scoping queue, where the NgModule declaring `A` is still pending. The scope information would be applied to the definition of `A`, but its compilation is still in progress so requesting the component definition would compile `A` again from scratch. This "inner compilation" is correctly assigned the NgModule scope, but once the "outer compilation" of `A` finishes it would overwrite the inner compilation's definition, losing the NgModule scope information. In summary, flushing the NgModule scope queue could trigger a reentrant compilation, where JIT compilation is non-reentrant. To avoid the reentrant compilation, a compilation depth counter is introduced to avoid flushing the NgModule scope during nested compilations. Fixes #37105 PR Close #37795 11 August 2020, 16:50:28 UTC
02aca13 fix(dev-infra): update i18n-related file locations in PullApprove config (#38403) The changes in https://github.com/angular/angular/pull/38368 split `render3/i18n.ts` files into smaller scripts, but the PullApprove config was not updated to reflect that. This commit updates the PullApprove config to reflect the recent changes in i18n-related files. PR Close #38403 11 August 2020, 00:29:52 UTC
32109dc fix(core): queries not matching string injection tokens (#38321) Queries weren't matching directives that provide themselves via string injection tokens, because the assumption was that any string passed to a query decorator refers to a template reference. These changes make it so we match both template references and providers while giving precedence to the template references. Fixes #38313. Fixes #38315. PR Close #38321 10 August 2020, 22:27:25 UTC
c9acb7b fix(compiler-cli): preserve quotes in class member names (#38387) When we were outputting class members for `setClassMetadata` calls, we were using the string representation of the member name. This can lead to us generating invalid code when the name contains dashes and is quoted (e.g. `@Output() 'has-dashes' = new EventEmitter()`), because the quotes will be stripped for the string representation. These changes fix the issue by using the original name AST node that was used for the declaration and which knows whether it's supposed to be quoted or not. Fixes #38311. PR Close #38387 10 August 2020, 22:26:46 UTC
545444d refactor(core): break `i18n.ts` into smaller files (#38368) This commit contains no changes to code. It only breaks `i18n.ts` file into `i18n.ts` + `i18n_apply.ts` + `i18n_parse.ts` + `i18n_postprocess.ts` for easier maintenance. PR Close #38368 10 August 2020, 22:07:44 UTC
7f11149 fix(platform-server): remove styles added by ServerStylesHost on destruction (#38367) When a ServerStylesHost instance is destroyed, all of the shared styles added to the DOM head element by that instance should be removed. Without this removal, over time a large number of style rules will build up and cause extra memory pressure. This brings the ServerStylesHost in line with the DomStylesHost used by the platform browser, which performs this same cleanup. PR Close #38367 10 August 2020, 20:12:24 UTC
ee5123f fix(core): Store the currently selected ICU in `LView` (#38345) The currently selected ICU was incorrectly being stored it `TNode` rather than in `LView`. Remove: `TIcuContainerNode.activeCaseIndex` Add: `LView[TIcu.currentCaseIndex]` PR Close #38345 10 August 2020, 19:41:18 UTC
3dfaf56 docs: Remove redundant sentence from Router (#38398) PR Close #38398 10 August 2020, 16:52:31 UTC
432a688 docs: update team contributors page (#38384) Removing Kara, Denny, Judy, Tony, Matias as they are no longer actively working on the project PR Close #38384 10 August 2020, 16:51:51 UTC
42a649d docs: fix purpose description of "builders.json" (#36830) PR Close #36830 07 August 2020, 22:04:57 UTC
47fbfb3 refactor(forms): get rid of duplicate functions (#38371) (#38380) This commit performs minor refactoring in Forms package to get rid of duplicate functions. It looks like the functions were duplicated due to a slightly different type signatures, but their logic is completely identical. The logic in retained functions remains the same and now these function also accept a generic type to achieve the same level of type safety. PR Close #38380 07 August 2020, 19:11:37 UTC
back to top