https://github.com/angular/angular

sort by:
Revision Author Date Message Commit Date
7bd9e09 release: cut the v10.0.0-next.5 release 04 May 2020, 21:48:09 UTC
42c58d9 docs(dev-infra): update format commands described in DEVELOPER.md (#36910) This commit updates DEVELOPER.md to describe the latest formatting command 'ng-dev' and removed deprecated 'gulp' command. Fixes #36909 PR Close #36910 04 May 2020, 19:51:21 UTC
b3713a1 test(language-service): Add method to override inline template (#36890) This commit adds a method `overrideInlineTemplate` to the `MockTypescriptHost`. This allows us to override an inline template in a Component without changing the TypeScript parts. This methods works in a similar way as `MockTypescriptHost.override()`, which is used for overriding external template. PR Close #36890 04 May 2020, 19:50:47 UTC
e037840 perf(ngcc): speed up the `getBasePaths()` computation (#36881) This function needs to deduplicate the paths that are found from the paths mappings. Previously this deduplication was not linear and also called the expensive `relative()` function many times. This commit, suggested by @JoostK, reduces the complexity of the deduplication by using a tree structure built from the segments of each path. PR Close #36881 04 May 2020, 19:50:02 UTC
ec6b9cc perf(ngcc): only compute basePaths in TargetedEntryPointFinder when needed (#36881) Previously the `basePaths` were computed when the finder was instantiated. This was a waste of effort in the case that the targeted entry-point is already processed. This change makes the computation of `basePaths` lazy, so that the work is only done if they are actually needed. Fixes #36874 PR Close #36881 04 May 2020, 19:50:02 UTC
db4c59d fix(ngcc): support TS 3.9 wrapped ES2015 classes (#36884) In TS 3.9 the compiler will start to wrap ES2015 classes in an IIFE to help with tree-shaking when the class has "associated" statements. E.g. ```ts let PlatformLocation = /** @class */ (() => { ... class PlatformLocation { } ... return PlatformLocation; })(); ``` This commit updates `Esm2015ReflectionHost` to support this format. PR Close #36884 04 May 2020, 19:48:26 UTC
58ea040 test(language-service): add new mock host for testing ivy (#36879) This commit adds a new mock host for testing the ivy language service. Unlike the existing mock_host which mocks the LanguageServiceHost, the Ivy mock host mocks just the filesystem interface, aka ts.ServerHost. This is because Ivy language service requires an actual Project to perform operations like adding synthetic typecheck files to the project, and by extension, to the ts.Program. These requirements make the existing mock host unsuitable to be reused. This new testing structure also improves test performance, because the old mock host copies (it actually creates symlinks, but still that's relatively expensive due to the sheer number of files involved) all @angular/* packages along with the typescript package to a temporary node_modules directory. This is done every time setup() is called. Instead, this new mock host just loads them from a pre-determined path in Bazel runfiles. PR Close #36879 04 May 2020, 19:47:15 UTC
6046e86 build: update setup-rbe.sh script to accept non google.com/angular.io (#36846) Previously the setup-rbe.sh script did not allow accounts that did have domains of angular.io or google.com. Since we add emails from other domains into everyone@angular.io, we are unable to be certain in the script that the account is not actually a member of the required group. This change adds the option to choose to continue with an email account logged in which we cannot verify by domain. PR Close #36846 04 May 2020, 19:45:48 UTC
297dab8 build: migrate bazel related formatting/linting to ng-dev format (#36842) Migrates away from inline searching for files and running buildifier directly, instead using ng-dev for formatting. Additionally, provides a deprecation message for any usages of the previous commands. PR Close #36842 04 May 2020, 19:45:00 UTC
2cb5f59 feat(dev-infra): run buildifier formatting and linting via ng-dev (#36842) In an effort to centralize formatting and linting enforcement into one location, buildifier is being added as a formatter for ng-dev's format command. Allowing for format enforcement for all .bzl, .bazel, WORKSPACE and BUILD files. PR Close #36842 04 May 2020, 19:45:00 UTC
0f3831b build: create macro for transpiling javascript file to es5 (#36802) For testing on IE, shims must be served in es5. Because the shims served in these tests come from node_modules and are not part of the angular/angular source code, they must be transpiled to es5 if they are published as es6. This macro allows for a uniform method for running this transpilation during the build process. PR Close #36802 04 May 2020, 19:43:50 UTC
9d9d46f fix(core): log error instead of warning for unknown properties and elements (#36399) Changes the Ivy unknown element/property messages from being logged with `console.warn` to `console.error`. This should make them a bit more visible without breaking existing apps. Furthermore, a lot of folks filter out warning messages in the dev tools' console, whereas errors are usually still shown. BREAKING CHANGE: Warnings about unknown elements are now logged as errors. This won't break your app, but it may trip up tools that expect nothing to be logged via `console.error`. Fixes #35699. PR Close #36399 04 May 2020, 19:37:42 UTC
d9c4840 fix(router): cancel navigation when at least one resolver completes with no "next" emission (#24621) This change aligns behavior for resolvers which return EMPTY. Currently EMPTY resolvers have inconsistent behavior: - One resolver that returns EMPTY => won't navigate and just ends on ResolveStart router event. - Two resolvers where both return EMPTY => throws "Error: Uncaught (in promise): EmptyError: no elements in sequence" - Two resolvers where one returns a value and the other one returns EMPTY => Navigates successfully. With this change any EMPTY resolver will cancel navigation. BREAKING CHANGE: Any resolver which return EMPTY will cancel navigation. If you want to allow the navigation to continue, you will need to update the resolvers to emit some value, (i.e. defaultIfEmpty(...), of(...), etc). PR Close #24195 PR Close #24621 04 May 2020, 19:36:49 UTC
12fcc7c build(language-service): make test project a filegroup (#36865) This commit makes the test project a filegroup so that it could be shared with the Ivy tests. Also removed `project/foo.ts` since it is no longer used. PR Close #36865 01 May 2020, 17:02:34 UTC
95a407d build: Add entry point for Ivy language service (#36864) This commit adds a new entry point for the Ivy version of language service. The entry point is just a shell for now, implementation will be added in subsequent PRs. The Ivy version of language service could be loaded from the NPM package via `require(@angular/language-service/bundles/ivy.umd.js)` PR Close #36864 01 May 2020, 17:02:03 UTC
e9300c9 build: use @angular/dev-infra-private for bazel stamping (#36844) Migrate to using new common environment stamping script for stamping during bazel build/release tasks. PR Close #36844 01 May 2020, 17:00:04 UTC
df274b4 feat(dev-infra): create environment stamping script in ng-dev (#36844) Create a common environment stamping script in the ng-dev tooling as to be used in common release tasks. This is the first step in consolidating pieces of the release scripting process into a single location to develop a release tool. PR Close #36844 01 May 2020, 17:00:04 UTC
f8941a5 refactor(ngcc): change async locker timeout to 250 secs (#36838) Previously the `AsyncLocker` was configured to only wait 50x500ms before timing out. This is 25secs, which is often less than a normal run of ngcc, so the chance of a timeout flake was quite high. The default is now 500x500ms, which is 250secs. If this is too high for some projects then it can be changed via the `ngcc.config.js` project file. PR Close #36838 01 May 2020, 16:52:10 UTC
38f805c feat(ngcc): allow async locking timeouts to be configured (#36838) The commit adds support to the ngcc.config.js file for setting the `retryAttempts` and `retryDelay` options for the `AsyncLocker`. An integration test adds a new check for a timeout and actually uses the ngcc.config.js to reduce the timeout time to prevent the test from taking too long to complete. PR Close #36838 01 May 2020, 16:52:10 UTC
98931bf refactor(ngcc): rename `Configuration.getConfig()` (#36838) Strictly this method only returns config for packages. So this commit renames it to `getPackageConfig()`, which frees us up to add other "getXxxxConfig()` methods later. PR Close #36838 01 May 2020, 16:52:09 UTC
9b85b53 test(ngcc): remove duplicate test (#36838) This test is basically duplicated (and slightly enhanced) in the following test. So it is superfluous. (I suspect it was the result of a broken rebase.) PR Close #36838 01 May 2020, 16:52:09 UTC
d805526 fix(ngcc): provide a unique exit code for timeouts (#36838) When ngcc fails due to a timeout waiting for another process to complete, it was not failing with a unique exit code, so that it was not possible to know if the process can be restarted; compared to ngcc failing for some more fatal reason. Now if ngcc exits because of a timeout, the exit code will be 177. PR Close #36838 01 May 2020, 16:52:09 UTC
ee43576 refactor(ngcc): improve locker pausing message (#36838) When ngcc is having to pause and wait for another process it provides a message to the user. This commit adds the extra information about how to remove the lockfile if desired, since this message is not shown if you Ctrl-C out of the process before the timeout period ends. PR Close #36838 01 May 2020, 16:52:09 UTC
35c6ed2 docs(di): fix typo in advanced di doc (#36634) PR Close #36634 01 May 2020, 16:50:28 UTC
72f534f feat(localize): support merging multiple translation files (#36792) Previously only one translation file per locale could be loaded. Now the user can specify multiple files per locale, and the translations from each of these files will be merged together by message id. The merging is on a first-wins approach. So if to you have three files to be merged: ``` ['a.xlf', 'b.xmb', 'c.json'] ``` Then any message from `a.xlf` will be used rather than a message from `b.xmb` or `c.json` and so on. In practice this means that you should put the files in order of most important first, with "fallback" translations later. PR Close #36792 01 May 2020, 16:46:12 UTC
3cb9b43 refactor(localize): hide merging diagnostics messages behind a method (#36792) This commit introduces `Diagnostics.merge(other)` which will take the messages from `other` and append them to the messages of `this`. The translation loader is updated to use this new method. PR Close #36792 01 May 2020, 16:46:12 UTC
bf0c520 refactor(localize): simplify adding condition diagnostics (#36792) Previously the `missingTranslation` option had to be checked before calling `warn` or `error` on the `diagnostics` object. Now this boilerplate is hidden inside the `Diagnostics.add()` method, which will open it up to being used for other conditional diagnostics. PR Close #36792 01 May 2020, 16:46:11 UTC
ee35e22 feat(service-worker): use `ignoreVary: true` when retrieving responses from cache (#34663) The Angular ServiceWorker always uses a copy of the request without headers for caching assets (in order to avoid issues with opaque responses). Therefore, it was previously not possible to retrieve resources from the cache if the response contained [Vary](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary) headers. In addition to that, `Vary` headers do not work in all browsers (or work differently) and may not work as intended with ServiceWorker caches. See [this article](https://www.smashingmagazine.com/2017/11/understanding-vary-header) and the linked resources for more info. This commit avoids the aforementioned issues by making sure the Angular ServiceWorker always sets the `ignoreVary` option passed to [Cache#match()](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match) to `true`. This allows the ServiceWorker to correctly retrieve cached responses with `Vary` headers, which was previously not possible. Fixes #36638 BREAKING CHANGE: Previously, [Vary](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary) headers would be taken into account when retrieving resources from the cache, completely preventing the retrieval of cached assets (due to ServiceWorker implementation details) and leading to unpredictable behavior due to inconsistent/buggy implementations in different browsers. Now, `Vary` headers are ignored when retrieving resources from the ServiceWorker caches, which can result in resources being retrieved even when their headers are different. If your application needs to differentiate its responses based on request headers, please make sure the Angular ServiceWorker is [configured](https://angular.io/guide/service-worker-config) to avoid caching the affected resources. PR Close #34663 01 May 2020, 16:44:07 UTC
dc9f4b9 feat(service-worker): include `CacheQueryOptions` options in ngsw-config (#34663) Previously it was not possible to provide `CacheQueryOptions` ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/Cache)) for querying the Cache. This commit introduces a new parameter called `cacheQueryOptions` for `DataGroup` and `AssetGroup`. Currently only `ignoreSearch` is supported as `ignoreVary` and `ignoreMethod` would require using the complete Request object for matching which is not possible with the current implementation. Closes #28443 PR Close #34663 01 May 2020, 16:44:07 UTC
49be32c refactor(common): remove WrappedValue from AsyncPipe (#36633) `AsyncPipe` only uses `WrappedValue` when the latest value from the `Promise` or `Observable` is different from the previous one. This is already enough to trigger change detection so the `WrappedValue` is not necessary. Fixes #29927 BREAKING CHANGE: This change could result in ExpressionChangedAfterItHasBeenChecked errors that were not detected before. The error could previously have gone undetected because two WrappedValues are considered "equal" in all cases for the purposes of the check, even if their respective unwrapped values are not. Additionally, `[val]=(observable | async).someProperty` will no longer trigger change detection if the value of `someProperty` is identical to the value in the previous emit. If you need to force change detection, either update the binding to use an object whose reference changes or subscribe to the observable and call markForCheck as needed. PR Close #36633 30 April 2020, 18:41:49 UTC
1786586 fix(core): Refresh transplanted views at insertion point only (#35968) Only refresh transplanted views at the insertion location in Ivy. Previously, Ivy would check transplanted views at both the insertion and declaration points. This is achieved by adding a marker to the insertion tree when we encounter a transplanted view that needs to be refreshed at its declaration. We use this marker as an extra indication that we still need to descend and refresh those transplanted views at their insertion locations even if the insertion view and/or its parents are not dirty. This change fixes several issues: * Transplanted views refreshed twice if both insertion and declaration are dirty. This could be an error if the insertion component changes result in data not being available to the transplanted view because it is slated to be removed. * CheckAlways transplanted views not refreshed if shielded by non-dirty OnPush (fixes #35400) * Transplanted views still refreshed when insertion tree is detached (fixes #21324) PR Close #35968 29 April 2020, 21:31:12 UTC
45c0941 refactor(ngcc): move `PathMappings` to separate file to avoid circular dependency (#36626) Now that `ngcc/src/ngcc_options` imports `FileWriter` type, there is a circular dependency detected by the `ts-circular-deps:check` lint check: ``` ngcc/src/ngcc_options.ts → ngcc/src/writing/file_writer.ts → ngcc/src/packages/entry_point_bundle.ts → ngcc/src/ngcc_options.ts ``` This commit moves the `PathMappings` type (and related helpers) to a separate file to avoid the circular dependency. NOTE: The circular dependency was only with taking types into account. There was no circular dependency for the actual (JS) code. PR Close #36626 29 April 2020, 21:28:26 UTC
4779c4b fix(ngcc): handle `ENOMEM` errors in worker processes (#36626) When running in parallel mode, worker processes forward errors thrown during task processing to the master process, which in turn exits with an error. However, there are cases where the error is not directly related to processing the entry-point. One such case is when there is not enough memory (for example, due to all the other tasks being processed simultaneously). Previously, an `ENOMEM` error thrown on a worker process would propagate to the master process, eventually causing ngcc to exit with an error. Example failure: https://circleci.com/gh/angular/angular/682198 This commit improves handling of these low-memory situations by detecting `ENOMEM` errors and killing the worker process, thus allowing the master process to decide how to handle that. The master process will put the task back into the tasks queue and continue processing tasks with the rest of the worker processes (and thus with lower memory pressure). PR Close #36626 29 April 2020, 21:28:26 UTC
793cb32 fix(ngcc): give up re-spawing crashed worker process after 3 attempts (#36626) Previously, when the last worker process crashed, the master process would try to re-spawn it indefinitely. This could lead to an infinite loop (if for some reason the worker process kept crashing). This commit avoids this by limiting the number of re-spawn attempts to 3, after which ngcc will exit with an error. PR Close #36626 29 April 2020, 21:28:26 UTC
966598c fix(ngcc): support recovering when a worker process crashes (#36626) Previously, when running in parallel mode and a worker process crashed while processing a task, it was not possible for ngcc to continue without risking ending up with a corrupted entry-point and therefore it exited with an error. This, for example, could happen when a worker process received a `SIGKILL` signal, which was frequently observed in CI environments. This was probably the result of Docker killing processes due to increased memory pressure. One factor that amplifies the problem under Docker (which is often used in CI) is that it is not possible to distinguish between the available CPU cores on the host machine and the ones made available to Docker containers, thus resulting in ngcc spawning too many worker processes. This commit addresses these issues in the following ways: 1. We take advantage of the fact that files are written to disk only after an entry-point has been fully analyzed/compiled. The master process can now determine whether a worker process has not yet started writing files to disk (even if it was in the middle of processing a task) and just put the task back into the tasks queue if the worker process crashes. 2. The master process keeps track of the transformed files that a worker process will attempt to write to disk. If the worker process crashes while writing files, the master process can revert any changes and put the task back into the tasks queue (without risking corruption). 3. When a worker process crashes while processing a task (which can be a result of increased memory pressure or too many worker processes), the master process will not try to re-spawn it. This way the number or worker processes is gradually adjusted to a level that can be accomodated by the system's resources. Examples of ngcc being able to recover after a worker process crashed: - While idling: https://circleci.com/gh/angular/angular/682197 - While compiling: https://circleci.com/gh/angular/angular/682209 - While writing files: https://circleci.com/gh/angular/angular/682267 Jira issue: [FW-2008](https://angular-team.atlassian.net/browse/FW-2008) Fixes #36278 PR Close #36626 29 April 2020, 21:28:26 UTC
772ccf0 feat(ngcc): support reverting a file written by `FileWriter` (#36626) This commit adds a `revertFile()` method to `FileWriter`, which can revert a transformed file (and its backup - if any) written by the `FileWriter`. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 29 April 2020, 21:28:26 UTC
ff6e931 refactor(ngcc): keep track of transformed files per task (#36626) With this commit, the master process will keep track of the transformed files that each worker process is intending to write to disk. In a subsequent commit, this info will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 29 April 2020, 21:28:26 UTC
dff5129 refactor(ngcc): notify master process about transformed files before writing (#36626) With this commit, worker processes will notify the master process about the transformed files they are about to write to disk before starting writing them. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 29 April 2020, 21:28:26 UTC
e367593 refactor(ngcc): support running callback before writing transformed files (#36626) This commit enhances the `CompileFn`, which is used to process each entry-point, to support running a passed-in callback (and wait for it to complete) before proceeding with writing the transformed files to disk. This functionality is currently not used. In a subsequent commit, it will be used for passing info from worker processes to the master process that will allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 29 April 2020, 21:28:26 UTC
16039d8 refactor(ngcc): rename `TaskQueue#markTaskCompleted()` to `markAsCompleted()` (#36626) Rename the `markTaskCompleted()` method to be consistent with the other similar methods of `TaskQueue` (`markAsFailed()` and `markAsUnprocessed()`). PR Close #36626 29 April 2020, 21:28:26 UTC
4665c35 feat(ngcc): support marking an in-progress task as unprocessed (#36626) This commit adds support for stopping processing an in-progress task and moving it back to the list of pending tasks. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 29 April 2020, 21:28:25 UTC
4c63241 fix(ngcc): do not run in parallel mode if there are less than 3 CPU cores (#36626) Previously, ngcc would run in parallel mode (using the `ClusterExecutor`) when there were at least 2 CPU cores (and all other requirements where met). On systems with just 2 CPU cores, this meant there would only be one worker process (since one CPU core is always reserved for the master process). In these cases, the tasks would still be processed serially (on the one worker process), but we would also pay the overhead of communicating between the master and worker processes. This commit fixes this by only running in parallel mode if there are more than 2 CPU cores (i.e. at least 2 worker processes). PR Close #36626 29 April 2020, 21:28:25 UTC
9aa778e refactor(ngcc): move "Compiling" log message before starting work on a task (#36626) Previously, the "Compiling <entryPoint>" log message was printed before starting to analyze and transform files, but after creating the `EntryPointBundle` (which includes creating the TS program). Since creating the `EntryPointBundle` involves some work, it is more accurate to move the log message before creating the bundle. PR Close #36626 29 April 2020, 21:28:25 UTC
62ba0ac test(language-service): do not invalidate @angular/core (#36845) Fix typo and add test cases for https://github.com/angular/angular/pull/36783 PR closes https://github.com/angular/vscode-ng-language-service/issues/713 PR Close #36845 29 April 2020, 21:27:33 UTC
52d2e46 release: cut the v10.0.0-next.4 release 29 April 2020, 21:07:45 UTC
c89421b docs: release notes for the v9.1.4 release 29 April 2020, 20:59:31 UTC
cebd4fa build: use sh instead of exec for release scripts (#36862) Previously the exec command was used, however the exec command would exit the original calling script regardless of the whether exit was called. This caused the release script to always exit after the pre-check phase. PR Close #36862 29 April 2020, 20:04:43 UTC
3d82aa7 fix(core): attempt to recover from user errors during creation (#36381) If there's an error during the first creation pass of a `TView`, the data structure may be corrupted which will cause framework assertion failures downstream which can mask the user's error. These changes add a new flag to the `TView` that indicates whether the first creation pass was successful, and if it wasn't we try re-create the `TView`. Fixes #31221. PR Close #36381 29 April 2020, 15:36:42 UTC
89c5890 fix(ngcc): recognize enum declarations emitted in JavaScript (#36550) An enum declaration in TypeScript code will be emitted into JavaScript as a regular variable declaration, with the enum members being declared inside an IIFE. For ngcc to support interpreting such variable declarations as enum declarations with its members, ngcc needs to recognize the enum declaration emit structure and extract all member from the statements in the IIFE. This commit extends the `ConcreteDeclaration` structure in the `ReflectionHost` abstraction to be able to capture the enum members on a variable declaration, as a substitute for the original `ts.EnumDeclaration` as it existed in TypeScript code. The static interpreter has been extended to handle the extracted enum members as it would have done for `ts.EnumDeclaration`. Fixes #35584 Resolves FW-2069 PR Close #36550 28 April 2020, 22:59:57 UTC
a6a7e1b build: enable platform-browser tests on Saucelabs (#36797) Enables some passing `platform-browser` tests on Saucelabs. The reason they were disabled was an error log which doesn't actually fail the test run and has been there for a long time. PR Close #36797 28 April 2020, 22:10:27 UTC
70dd27f fix(compiler): normalize line endings in ICU expansions (#36741) The html parser already normalizes line endings (converting `\r\n` to `\n`) for most text in templates but it was missing the expressions of ICU expansions. In ViewEngine backticked literal strings, used to define inline templates, were already normalized by the TypeScript parser. In Ivy we are parsing the raw text of the source file directly so the line endings need to be manually normalized. This change ensures that inline templates have the line endings of ICU expression normalized correctly, which matches the ViewEngine. In ViewEngine external templates, defined in HTML files, the behavior was different, since TypeScript was not normalizing the line endings. Specifically, ICU expansion "expressions" are not being normalized. This is a problem because it means that i18n message ids can be different on different machines that are setup with different line ending handling, or if the developer moves a template from inline to external or vice versa. The goal is always to normalize line endings, whether inline or external. But this would be a breaking change since it would change i18n message ids that have been previously computed. Therefore this commit aligns the ivy template parsing to have the same "buggy" behavior for external templates. There is now a compiler option `i18nNormalizeLineEndingsInICUs`, which if set to `true` will ensure the correct non-buggy behavior. For the time being this option defaults to `false` to ensure backward compatibility while allowing opt-in to the desired behavior. This option's default will be flipped in a future breaking change release. Further, when this option is set to `false`, any ICU expression tokens, which have not been normalized, are added to the `ParseResult` from the `HtmlParser.parse()` method. In the future, this collection of tokens could be used to diagnose and encourage developers to migrate their i18n message ids. See FW-2106. Closes #36725 PR Close #36741 28 April 2020, 19:22:40 UTC
7bc5bcd test(compiler): check extracted translations for line endings (#36741) When there are `CRLF` line endings some translations get different message ids. This commit adds tests to track this in ViewEngine. PR Close #36741 28 April 2020, 19:22:40 UTC
aa0dd0d test(compiler): fix unwanted `!` operators (#36741) The `I18nComponent` was using `!` for some of its properties because it had not initialized them. This is now resolved by explictly marking them as optional. PR Close #36741 28 April 2020, 19:22:40 UTC
e0aa399 refactor(compiler): simplify tokenizer and parser results (#36741) Move the creation of the results objects into the wrapper functions. This makes it easier to reason about what the parser and lexer classes are responsible for - you create a new object for each tokenization or parsing activity and they hold the state of the activity. PR Close #36741 28 April 2020, 19:22:39 UTC
4172707 refactor(compiler): tighten type of `TemplateParser._console` (#36741) This property can actually be `null` when called from the language-service. This change allows us to remove the use of `!` to subvert the type system. PR Close #36741 28 April 2020, 19:22:39 UTC
7c8c413 build(docs-infra): upgrade cli command docs sources to c1cf42fd4 (#36832) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/9459c8519...c1cf42fd4): **Modified** - help/build.json - help/serve.json - help/test.json PR Close #36832 28 April 2020, 18:52:52 UTC
1d9375d ci: fix bad reference to `head` property in rebase-pr script (#36825) Update rebase-pr script to properly reference a property on the refs object using `target` rather than the previously named `head`. PR Close #36825 28 April 2020, 16:13:35 UTC
f27deea fix(core): handle synthetic props in Directive host bindings correctly (#35568) Prior to this change, animations-related runtime logic assumed that the @HostBinding and @HostListener with synthetic (animations) props are used for Components only. However having @HostBinding and @HostListener with synthetic props on Directives is also supported by View Engine. This commit updates the logic to select correct renderer to execute instructions (current renderer for Directives and sub-component renderer for Components). This PR resolves #35501. PR Close #35568 27 April 2020, 21:55:16 UTC
00e6cb1 feat(router): allow CanLoad guard to return UrlTree (#36610) A CanLoad guard returning UrlTree cancels current navigation and redirects. This matches the behavior available to `CanActivate` guards added in #26521. Note that this does not affect preloading. A `CanLoad` guard blocks any preloading. That is, any route with a `CanLoad` guard is not preloaded and the guards are not executed as part of preloading. fixes #28306 PR Close #36610 27 April 2020, 19:53:49 UTC
cae2a89 docs: fix typo (#36786) Correct typo in the router docs, changing "as your app growns" to "as your app grows". Previously the wrong spelling was used and this commit rectifies this. PR Close #36786 27 April 2020, 19:50:42 UTC
b34fb04 build(docs-infra): upgrade cli command docs sources to 9459c8519 (#36808) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/730657c86...9459c8519): **Modified** - help/analytics.json PR Close #36808 27 April 2020, 19:11:18 UTC
2365bb8 build: migrate from gulp to ng-dev for running formatting (#36726) Migrates away from gulp to ng-dev for running our formatter. Additionally, provides a deprecation warning for any attempted usage of the previous `gulp format:*` tasks. PR Close #36726 24 April 2020, 19:32:18 UTC
7b5a0ba feat(dev-infra): create format tool in @angular/dev-infra-private (#36726) Previously we used gulp to run our formatter, currently clang-format, across our repository. This new tool within ng-dev allows us to migrate away from our gulp based solution as our gulp solution had issue with memory pressure and would cause OOM errors with too large of change sets. PR Close #36726 24 April 2020, 19:32:18 UTC
ad8c4cd revert: "feat(dev-infra): exposed new rule 'component_benchmark' via dev_infra (#36434)" (#36798) This reverts commit b7f2a033df47080084e73340f25286c8ec1a419a. PR Close #36798 24 April 2020, 18:03:38 UTC
f5ff206 revert: "build(dev-infra): update package.json and :npm_package (#36434)" (#36798) This reverts commit d6f6cd0cb17efceacf1da7bf814865bd0608d4c5. PR Close #36798 24 April 2020, 18:03:37 UTC
90a2796 revert: "build(core): use dev-infra's component_benchmark to show PoC (#36434)" (#36798) This reverts commit e6161ca307be01eb1142092b53cbd7ddbd33312a. PR Close #36798 24 April 2020, 18:03:37 UTC
76190c7 ci: migrate payload size tracking goldens to the golden directory (#36455) This change is part of a larger effort to migrate all golden type tracking files to a single location. Additionally, this makes it a bit easier to manage file ownership in pullapprove. PR Close #36455 24 April 2020, 16:05:11 UTC
dd049ca fix(language-service): disable update the `@angular/core` module (#36783) After the user edits the file `core.d.ts`, the symbol from the core module will be invalided, which only is created when init the language service. Then the language-service will crash. PR Close #36783 24 April 2020, 16:04:25 UTC
bcd31cb build(docs-infra): upgrade cli command docs sources to 730657c86 (#36790) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/56c648827...730657c86): **Modified** - help/build.json - help/generate.json PR Close #36790 24 April 2020, 16:03:56 UTC
e6161ca build(core): use dev-infra's component_benchmark to show PoC (#36434) This change demonstrates how to use the newly created rule in one of our performance tests. Future commits and PRs will migrate the remaining tests to this new bazel rule. PR Close #36434 23 April 2020, 20:31:53 UTC
d6f6cd0 build(dev-infra): update package.json and :npm_package (#36434) * Set up dev-infra's :npm_package to also contain benchmarking suite * Add benchmarking deps to dev-infra's package.json * Add a bazel workspace to dev-infra's package.json. This is so that when a project wants to use dev-infra's code and macros, they can just import the macros from their node_modules instead of loading it separately PR Close #36434 23 April 2020, 20:31:53 UTC
b7f2a03 feat(dev-infra): exposed new rule 'component_benchmark' via dev_infra (#36434) * Move tools/brotli-cli, tools/browsers, tools/components, tools/ng_rollup_bundle, and modules/e2e_util to dev-infra/benchmarking * Fix imports and references to moved folders and files * Set up BUILD.bazel files for moved folders so they can be packaged with dev-infra's :npm_package PR Close #36434 23 April 2020, 20:31:53 UTC
e37f266 build: require a commit body in commit messages (#36632) Enforces a requirement that all PR commit messages contain a body of at least 100 characters. This is meant to encourage commits within the repo to be more descriptive of each change. PR Close #36632 23 April 2020, 19:18:56 UTC
5e579c4 fix(dev-infra): properly handle multiline regex of commit body (#36632) Previously, the commit message body regex only matched the first line of the body. This change corrects the regex to match the entire line. PR Close #36632 23 April 2020, 19:18:56 UTC
f0ec4ae ci: fix pullapprove incorrectly skipping fw-compiler as owner (#36661) Currently, if changes are made to `compiler-cli/ngcc` and to other compiler-related files, then only the `fw-ngcc` group is requested for review. This is because the `not contains_any_globs` condition will be false for `fw-compiler` and the group will never become active. We fix this by removing the incorrect condition and filtering out ngcc files before checking `contains_any_globs` in the primary fw-compiler condition. PR Close #36661 23 April 2020, 19:17:10 UTC
b80b43d ci: add codeowner group for migrations (#36661) Adds a new codeowner group that is dedicated for changes to the migrations stored in `packages/core/schematics`. PR Close #36661 23 April 2020, 19:17:10 UTC
f0c570b feat(dev-infra): pullapprove verify should handle `files` in conditions (#36661) Currently, when verifying our pullapprove configuration, we don't respect modifications to the set of files in a condition. e.g. It's not possible to do the following: ``` contains_any_globs(files.exclude(...), [ ``` This prevents us from having codeowner groups which match a directory, but want to filter out specific sub directories. For example, `fw-core` matches all files in the core package. We want to exclude the schematics from that glob. Usually we do this by another exclude condition. This has a *significant* downside though. It means that fw-core will not be requested if a PR changes schematic code, _and_ actual fw-core code. To support these conditions, the pullapprove verification tool is refactored, so that it no longer uses Regular expressions for parsing, but rather evaluates the code through a dynamic function. This is possible since the conditions are written in simple Python that can be run in NodeJS too (with small modifications/transformations). PR Close #36661 23 April 2020, 19:17:10 UTC
e5d2853 docs: correct ngSwitch definition (#35489) PR Close #35489 23 April 2020, 19:13:39 UTC
152293d test(router): fix router test failing on IE (#36742) This was originally fixed in #35976, but one of the window.scrollY assertions was missed. Also updated tests to use toBeGreater/LessThan to improve failure messages. PR Close #36742 23 April 2020, 16:13:27 UTC
ceb61d1 test(router): add canDeactivate test for forChild route (#36699) This PR adds test case to cover a failure that was detected after merging #36302. That commit will be reverted and will need a new PR that does not cause this test to fail. PR Close #36699 23 April 2020, 16:08:44 UTC
dd806b0 docs: add Annie Wang to contributors.json (#36612) PR Close #36612 23 April 2020, 16:08:09 UTC
113c75d refactor(localize): remove unused code (#36745) PR Close #36745 23 April 2020, 16:07:33 UTC
b7acf07 refactor(localize): consolidate message/translation metadata (#36745) PR Close #36745 23 April 2020, 16:07:33 UTC
519f2ba test(localize): tidy up translation parser tests (#36745) There was a lot of duplication and multiline backtick strings that made it hard to maintain. PR Close #36745 23 April 2020, 16:07:33 UTC
3962908 refactor(localize): tighten up recognition of simple JSON translations (#36745) PR Close #36745 23 April 2020, 16:07:33 UTC
afd2cbc refactor(localize): move `source_file_utils.ts` up (#36745) This will allow the utilities in this file to be shared outside `translate` code. PR Close #36745 23 April 2020, 16:07:33 UTC
4275b34 build: add AndrewKushnir to the `fw-testing` group (#36744) This commit update the PullApprove config to add AndrewKushnir to the `fw-testing` group. The reason for this change is that I was involved into TestBed rewrite (for Ivy) and it belongs to the `fw-testing` group ownership. PR Close #36744 22 April 2020, 21:12:10 UTC
1b3ee17 build: move circular deps golden to a subfolder (#36630) Moves the circular deps golden for packages into a subfolder of goldens, `/goldens/circular-deps/` to more easily target the files for ownership. PR Close #36630 22 April 2020, 21:11:20 UTC
8306da5 release(benchpress): bump version of benchpress to 0.2.0 (#36457) Bumping the version of benchpress as a new version needs to be released as part of the effort to set up more benchmarking accross the angular/angular and angular/components repos. PR Close #36457 22 April 2020, 21:10:28 UTC
75dff8a docs: improve startup nav, naming, and terminology (#35533) PR Close #35533 22 April 2020, 21:08:29 UTC
fc1b557 build: run pre-check before publishing (#36527) Previously, our process included running the pre-check script before releasing. With our new publishing process this was dropped. This change adds in automatically executing this check before publish for both next and latest PR Close #36527 22 April 2020, 21:07:49 UTC
47f9867 fix(localize): include legacy ids when describing messages (#36761) Previously, we only displayed the new `$localize` id, which is not currently what most people have in their translation files. Until people migrate to the new message id system it is confusing not to display the legacy ids. PR Close #36761 22 April 2020, 20:31:47 UTC
781f561 build: update to @bazel/bazelisk@^1.4.0 (#36729) Upgrading @bazel/bazelisk to version 1.4.0 as this introduces the bazel binary. This prevents the need to have a `bazel` script defined in package.json to point to `bazelisk`, instead it is just available on install. PR Close #36729 22 April 2020, 20:31:17 UTC
deea6da release: cut the v10.0.0-next.3 release 22 April 2020, 18:59:44 UTC
43622d3 docs: release notes for the v9.1.3 release 22 April 2020, 18:56:11 UTC
5db8d93 build: fix the compare master and patch script output (#36749) Currently the commit message and corresponding version are flipped, which makes it hard to review the changes. This commit updates the script to properly recognize the order of arguments. PR Close #36749 22 April 2020, 04:23:57 UTC
535c249 build: update `REQUIRED_BASE_SHA` in merge script to `commit-message` script update commit (#36750) Updating `REQUIRED_BASE_SHA` for master and patch branches to make sure PRs that we merge are rebased after `commit-message` validation script update (to make sure the `lint` CI job fails in case a PR contains commits with invalid commit messages). PR Close #36750 22 April 2020, 01:58:23 UTC
942b986 fix(core): properly identify modules affected by overrides in TestBed (#36649) When module overrides (via `TestBed.overrideModule`) are present, it might affect all modules that import (even transitively) an overridden one. For all affected modules we need to recalculate their scopes for a given test run and restore original scopes at the end. Prior to this change, we were recalculating module scopes only for components that are used in a test, without taking into account module hierarchy. This commit updates Ivy TestBed logic to calculate all potentially affected modules are reset cached scopes information for them (so that scopes are recalculated as needed). Resolves #36619. PR Close #36649 22 April 2020, 01:57:48 UTC
acf6075 fix(core): do not use unbound attributes as inputs to structural directives (#36441) Prior to this commit unbound attributes were treated as possible inputs to structural directives. Since structural directives can only accepts inputs defined using microsyntax expression (e.g. `<div *dir="exp">`), such unbound attributes should not be considered as inputs. This commit aligns Ivy and View Engine behavior and avoids using unbound attributes as inputs to structural directives. PR Close #36441 21 April 2020, 17:30:25 UTC
28995db fix(core): missing-injectable migration should not migrate `@NgModule` classes (#36369) Based on the migration guide, provided classes which don't have either `@Injectable`, `@Directive`, `@Component` or `@Pipe` need to be migrated. This is not correct as provided classes with an `@NgModule` also have a factory function that can be read by the r3 injector. It's unclear in which cases the `@NgModule` decorator is used for provided classes, but this scenario has been reported. Either we fix this in the migration, or we make sure to report this as unsupported in the Ivy compiler. Fixes #35700. PR Close #36369 21 April 2020, 16:54:24 UTC
back to top