All Versions
436
Latest Version
Avg Release Cycle
7 days
Latest Release
16 days ago

Changelog History
Page 25

  • v9.0.6 Changes

    March 10, 2020

    ๐Ÿ› Bug Fixes

    • bazel: do not use manifest paths for generated imports within compilation unit (#35841) (5ea9a61)
    • compiler: process imports first and declarations second while calculating scopes (#35850) (6f2fd6e), closes #35502
    • core: add noSideEffects() to make*Decorator() functions (#35769) (#35846) (4fe3f37)
    • core: add noSideEffects() to ษตษตdefineComponent() (#35769) (#35846) (68ca32f)
    • core: remove side effects from ษตษตgetInheritedFactory() (#35769) (#35846) (000c834)
    • core: remove side effects from ษตษตNgOnChangesFeature() (#35769) (#35846) (d24ce21)
    • core: undecorated-classes-with-di migration should handle libraries generated with CLI versions past v6.2.0 (#35824) (eaf5b58), closes #34985
    • language-service: resolve the variable from the template context first (#35982) (f882ff0)
    • localize: improve matching and parsing of XLIFF 1.2 translation files (#35793) (677d666)
    • localize: improve matching and parsing of XLIFF 2.0 translation files (#35793) (689964b)
    • localize: improve matching and parsing of XTB translation files (#35793) (9f68ff9)
    • localize: merge translation from all XLIFF <file> elements (#35936) (83d7819), closes #35839
    • ๐Ÿ’ป platform-browser: add missing peerDependency on [@angular](https://github.com/angular)/animations (#35949) (db9704a), closes #35888
    • router: state data missing in routerLink (#33203) (773d7b8)

    ๐ŸŽ Performance Improvements

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.5 Changes

    March 04, 2020

    ๐Ÿ› Bug Fixes

    ๐Ÿ”‹ Features

    ๐ŸŽ Performance Improvements

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.4 Changes

    February 27, 2020

    ๐Ÿ› Bug Fixes

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.3 Changes

    February 27, 2020

    ๐Ÿ› Bug Fixes

    ๐Ÿ”‹ Features

    • ngcc: implement source-map flattening (#35132) (0a8e8cd)
    • zone.js add an tickOptions parameter with property processNewMacroTasksSynchronously. (#33838) (7d2ea93), closes #33799

    ๐ŸŽ Performance Improvements

    • core: avoid recursive scope recalculation when TestBed.overrideModule is used (#35454) (349539e)
    • core: remove unused event argument in listener instructions (#35097) (afc5b3e)

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.2 Changes

    February 19, 2020

    ๐Ÿ› Bug Fixes

    • core: better handing of ICUs outside of i18n blocks (#35347) (4fb5e21)
    • core: correctly concatenate static and dynamic binding to class when shadowed (#35350) (8220363), closes #35335
    • core: remove support for Map/Set in [class]/[style] bindings (#35392) (1797390)
    • ivy: LFrame needs to release memory on leaveView() (#35156) (4b1dcaf), closes #35148
    • ivy: add attributes and classes to host elements based on selector (#34481) (03a8b16)
    • ivy: error if directive with synthetic property binding is on same node as directive that injects ViewContainerRef (#35343) (a30fd29), closes #35342
    • ivy: queries should match elements inside ng-container with the descendants: false option (#35384) (fd4ce84), closes #34768
    • ivy: wrong context passed to ngOnDestroy when resolved multiple times (#35249) (0671e54), closes #35167

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.1 Changes

    February 12, 2020

    ๐Ÿ› Bug Fixes

    • bazel: devserver shows blank page in Windows (#35159) (727f92f)
    • bazel: spawn prod server using port 4200 (#35160) (829f506)
    • bazel: update ibazel to 0.11.1 (#35158) (4e6d237)
    • compiler: report errors for missing binding names (#34595) (d13cab7)
    • elements: schematics fail with schema.json not found error (#35211) (94d002b), closes #35154
    • forms: change Array.reduce usage to Array.forEach (#35349) (554c2cb)
    • ivy: ensure module imports are instantiated before the module being declared (#35172) (b6a3a73)
    • ivy: repeat template guards to narrow types in event handlers (#35193) (dea1b96), closes #35073
    • ivy: set namespace for host elements of dynamically created components (#35136) (480a4c3)
    • language-service: Suggest ? and ! operator on nullable receiver (#35200) (3cc24a9)
    • ngcc: ensure that path-mapped secondary entry-points are processed correctly (#35227) (c3c1140), closes #35188

    <!-- CHANGELOG SPLIT MARKER -->

  • v9.0.0 Changes

    February 06, 2020

    Blog post "Version 9 of Angular Now Available โ€” Project Ivy has arrived!".

    ๐Ÿš€ Release Highlights & Update instructions

    ๐Ÿš€ To learn about the release highlights and our CLI-powered automated update workflow for your projects please check out the v9 release announcement.

    โšก๏ธ Dependency updates

    @angular/core now requires:

    • RxJS 6.5

    @angular/compiler-cli now requires:

    • TypeScript 3.6 or 3.7

    ๐Ÿ› Bug Fixes

    ๐Ÿ”จ Code Refactoring

    ๐Ÿ”‹ Features

    ๐ŸŽ Performance Improvements

    • ivy: remove unused argument in hostBindings function (#34969) (71a3c72)
    • ivy: add more styling use-cases to benchmarks (#34923) (ef70a89)
    • ivy: add create scenario to the styling benchmark (#34775) (1ec9515)
    • ivy: add noop change detection scenario to the styling benchmark (#34775) (4928f1a)
    • ivy: add static style to the list of scenarios (#34775) (a15f20b)
    • ivy: styling algorithm benchmark (#34664) (f8d4ce7)
    • ivy: support simple generic type constraints in local type ctors (#34021) (88adc30)
    • compiler: optimize cloning cursors state (#34332) (5d871b5)
    • compiler: speed up i18n digest computations (#34332) (adb0663)
    • compiler: use a shared interpolation regex (#34332) (940e62b)
    • ivy: cache export scopes extracted from declaration files (#34332) (eb9a8ac)
    • ivy: eagerly parse the template twice during analysis (#34334) (fb4a11a)
    • ivy: reuse prior analysis work during incremental builds (#34288) (c387952)
    • ivy: share instances of DomElementSchemaRegistry (#34332) (ce94192)
    • ivy: use module resolution cache (#34332) (82442c5)
    • ivy: chain listener instructions (#33720) (#34340) (d3ec306)
    • ivy: chain styling instructions (#33837) (#34340) (c66fd06)
    • โž• add js-web-frameworks benchmark (#34034) (bf16b0e)
    • ivy: avoid duplicate state lookup and default function parameters (#34183) (00f7372)
    • ivy: do no work if moving a viewRef to the same position (#34052) (d228801)
    • ivy: fix creation time micro-benchmarks (#34031) (457ac3a)
    • ivy: R3TestBed - Do not process NgModuleDefs that have already been processed (#33863) (05a18cc)
    • ivy: add micro-benchmark focused on directive input update (#33798) (edd624b)
    • ivy: don't store public input names in two places (#33798) (105616c)
    • ivy: extract template's instruction first create pass processing (#33856) (01af94c)
    • ivy: Improve performance of transplanted views (#33702) (a16a57e)
    • core: Avoid unnecessary creating provider factory (#33742) (c315881)
    • ivy: add new benchmark focused on template creation (#33511) (df1bef3)
    • ivy: add ngIf-like directive to the ng_template benchmark (#33595) (e89c2dd)
    • ivy: avoid native node retrieval from LView (#33511) (083d48e)
    • ivy: avoid repeated native node retrieval and patching (#33322) (41caafc)
    • ivy: avoid repeated tNode.initialInputs reads (#33322) (4452d6d)
    • ivy: move local references into consts array (#33129) (66725b7), closes #32798
    • ivy: avoid generating selectors array for directives without a selector (#33431) (c3e9356)
    • ivy: apply [style]/[class] bindings directly to style/className (#33336) (dcdb433)
    • ivy: apply static styles/classes directly to an element's style/className properties (#33364) (5607ad8)
    • ivy: improve styling performance (#33326) (d40ee6a)
    • ivy: avoid unnecessary i18n pass while processing a template (#33284) (7f7dc7c)
    • ivy: initialise inputs from static attrs on the first template pass only (#33195) (aef7dca)
    • ivy: limit global state read / write in host bindings (#33195) (3e14c2d)
    • ivy: guard host binding execution with a TNode flag (#33102) (d4d0723)
    • ivy: introduce micro-benchmark for directive instantiation (#33082) (22d4efb)
    • ivy: limit memory reads in getOrCreateNodeInjectorForNode (#33102) (dcca80b)
    • ivy: speed up bindings when no directives are present (#32919) (b2decf0)
    • ivy: stricter null checks in setInputsFromAttrs (#33102) (b800b88)
    • ivy: use instanceof operator to check for NodeInjectorFactory instances (#33082) (8d111da)
    • ivy: add static attributes to the element_text_create benchmark (#32997) (affae99)
    • ivy: attempt rendering initial styling only if present (#32979) (6004703)
    • ivy: avoid memory allocation in the isAnimationProp check (#32997) (9f0c549)
    • ivy: increase number of created views in the element_text_create benchmark (#32979) (8593d0d)
    • ivy: limit TNode.inputs reads on first template pass (#32979) (e6881b5)
    • ivy: move attributes array into component def (#32798) (d5b87d3)
    • language-service: improve Language service performance (#32098) (65297cd)
    • ivy: avoid repeat global state accesses in i18n instructions (#32916) (ffc34b3)
    • ivy: remove extra SafeStyle detection code (#32775) (52552b0)
    • ivy: avoid megamorphic reads during property binding (#32574) (fcdd068)
    • ivy: avoid repeated lview reads in pipe instructions (#32633) (73cb581)
    • ivy: avoid repeated LView reads in property instructions (#32681) (e6ed4a2)
    • ivy: avoid unnecessary DOM reads in styling instructions (#32716) (05e1b3b)
    • ivy: binding update benchmark (#32574) (ea378a9)
    • ivy: convert all node-based benchmark to use a testing harness (#32699) (1748aeb)
    • ivy: guard listening to outputs with isDirectiveHost (#32495) (527ce3b)
    • ivy: initialise TNode inputs / outputs on the first creation pass (#32608) (ad178c5)
    • ivy: introduce benchmark for listeners registration (#32495) (024765b)
    • ivy: limit TNode.outputs reads (#32495) (51292e2)
    • ivy: run the expandng rows benchmark with es2015 (#32716) (3ace25f)
    • language-service: keep analyzedModules cache when source files don't change (#32562) (4f03323)
    • ivy: check for animation synthetic props in dev mode only (#32578) (7280710)
    • ivy: introduce a node-based micro-benchmarks harness (#32510) (2895edc)
    • ivy: replace select instruction with advance (#32516) (664e001)
    • ivy: run tree benchmark with bundles and ngDevMode off (#32558) (c3a1ef2)
    • ngcc: process tasks in parallel in async mode (#32427) (e36e6c8)
    • core: Make PlatformLocation tree-shakable (#32154) (1537791)
    • ivy: add a micro benchmark for map-based style and class bindings (#32401) (ba5e07e)
    • ivy: add a micro benchmark for style and class bindings (#32401) (df8e675)
    • ivy: add element and text creation benchmark (#32342) (85864ed)
    • ivy: guard directive-related operations with a TNode flag (#32445) (641c5c1)
    • ivy: properly initialise global state in the element_text_create benchmark (#32397) (8dc3f36)
    • ivy: remove renderStringify calls for text nodes creation (#32342) (a1e91b0)
    • ivy: remove repeated memory read / write in addComponentLogic (#32339) (581b837)
    • ivy: run registerPostOrderHooks in the first template pass only (#32342) (fac066e)
    • ivy: minimise writes to the lView[BINDING_INDEX] / binding root (#32263) (e3422e0)
    • ivy: store binding metadata in the ngDevMode only (#32317) (0874bf4)
    • core: make sanitization tree-shakable in Ivy mode (#31934) (2e4d17f)
    • ivy: auto-call select(0) for non-empty views only (#32131) (4d549f6)
    • ivy: avoid first template pass checks during view creation (#32120) (4c3b791)
    • ivy: avoid for-of loops at runtime (#32157) (abb44f7)
    • ivy: improve NaN checks in change detection (#32212) (53bfa7c)
    • ivy: interpolation micro-benchmark (#32104) (be665d8)
    • ivy: noop change detection micro-benchmark (#32104) (c422c72)
    • don't create holey arrays (#32155) (6477057)
    • ivy: read selected index only when need in prop bindings (#32212) (53f33c1)
    • ivy: split hooks processing into init and check phases (#32131) (1062960)
    • ivy: split view processing into render (create) and refresh (update) pass (#32020) (b9dfe66)
    • ivy: don't read global state when interpolated values don't change (#32093) (6eb9c2f)

    โช Reverts

    • "fix(ivy): recompile component when template changes in ngc watch mode (#33551)" (#33661) (cb55f60)
    • ๐Ÿ›  fix(ivy): Only restore registered modules if user compiles modules with TestBed (#32944) (#33663) (f8e9c1e)
    • ๐Ÿ›  fix(ivy): R3TestBed should clean up registered modules after each test (#32872) (#33663) (7c4366d)
    • ๐Ÿ— build: remove vendored Babel typings (#33176) (#33215) (e9ee685)
    • โšก๏ธ build: update webdriver-manager to support latest Chrome (#33216) (a914859)
    • ๐Ÿ build: use http caching on windows CI runs (#33238) (#33254) (117ca7c)
    • ๐ŸŽ feat: add a flag in bootstrap to enable coalesce event change detection to improve performance (#30533) (#33230) (082aed6)
    • ๐Ÿ“„ docs: create Issue and Pull Request markdown doc, explaining automatic locking policy (#32405) (43619fc)

    ๐Ÿ’ฅ BREAKING CHANGES

    • i18n: The CLDR data has been updated to v36.0.0, which may cause some localized data strings to change. For example, the space separator used in numbers in the fr locales changed from \xa0 to \u202f (c1bd3bc)
    • bazel: @angular/bazel ng_setup_workspace() is no longer needed and has been removed. We assume you will fetch rules_nodejs in your WORKSPACE file, and no other dependencies remain here. ๐Ÿšš Simply remove any calls to this function and the corresponding load statement.
    • โšก๏ธ typescript 3.4 and 3.5 are no longer supported, please update to typescript 3.6
    • We no longer directly have a direct depedency on tslib. Instead it is now listed a peerDependency.

    ๐Ÿ‘‰ Users not using the CLI will need to manually install tslib via;

    yarn add tslib
    

    or

    npm install tslib --save
    
    • forms: * <ngForm></ngForm> can no longer be used as a selector. Use <ng-form></ng-form> instead.
    • ๐Ÿšš The NgFormSelectorWarning directive has been removed.
    • ๐Ÿšš FormsModule.withConfig has been removed. Use the FormsModule directly.
    • core: The deprecated type Renderer has been removed. Use Renderer2 instead.
    • core: The deprecated type RenderComponentType has been removed. Use RendererType2 instead.
    • core: The deprecated type RootRenderer has been removed. Use RendererFactory2 instead.
    • ๐Ÿ‘ท service-worker: Remove deprecated option versionedFiles from service worker asset group configuration in ngsw-config.json

    Before

    "assetGroups": [
      {
        "name": "test",
        "resources": {
          "versionedFiles": [
            "/**/*.txt"
          ]
        }
      }
    ]
    

    After

    "assetGroups": [
      {
        "name": "test",
        "resources": {
          "files": [
            "/**/*.txt"
          ]
        }
      }
    ]
    
    • ivy: Translations (loaded via the loadTranslations() function) must now use ๐ŸŒ MessageId for the translation key rather than the previous SourceMessage string.
    • ivy: To attach the $localize function to the global scope import from ๐ŸŒ @angular/localize/init. Previously it was @angular/localize. To access the loadTranslations() and clearTranslations() functions, import from @angular/localize. Previously it was @angular/localize/run_time.
    • bazel: Angular bazel users using protractor_web_test_suite from @angular/bazel npm package should now switch to the @bazel/protractor npm package.

    ๐ŸŒ This should impact very few users and the user's that are impacted have a very easy upgrade path to switch to fetching the protractor_web_test_suite rule via the @bazel/protractor npm package.

    • ivy: This commit removes the public export of hasBeenProcessed().

    This was exported to be available to the CLI integration but was never ๐Ÿ‘‰ used. The change to the function signature is a breaking change in itself ๐Ÿšš so we remove the function altogether to simplify and lower the public API surface going forward.

    • core: Injector.get now accepts abstract classes to return type-safe values. Previous implementation returned any through the ๐Ÿ—„ deprecated implementation.
    • 0๏ธโƒฃ Angular now compiles with Ivy by default (#32219) (ec4381d).

    ๐Ÿ‘€ If you aren't familiar with Ivy, read our blog post about the Ivy preview and see the list of changes here.

    • ivy: make Hammer support tree-shakable. Previously, in Ivy applications, Hammer providers were included by default. With this commit, apps that want Hammer support must import HammerModulein their root module. (#32203) (de8ebbd)

    ๐Ÿ—„ DEPRECATIONS

    • core: TestBed.get function is marked as deprecated, use TestBed.inject instead.

    <!-- CHANGELOG SPLIT MARKER -->

  • v8.2.14 Changes

    November 13, 2019

    ๐Ÿ› Bug Fixes

    <!-- CHANGELOG SPLIT MARKER -->

  • v8.2.13 Changes

    October 30, 2019

    ๐Ÿ› Bug Fixes

    <!-- CHANGELOG SPLIT MARKER -->

  • v8.2.12 Changes

    October 23, 2019

    ๐Ÿ› Bug Fixes

    • โฌ†๏ธ upgrade: remove unused version export (#33180) (37cbcfa)

    <!-- CHANGELOG SPLIT MARKER -->