days
-1
0
hours
0
-5
minutes
-3
-6
seconds
0
-6
search
The wait is over!

Angular v8 arrives with the much-anticipated Ivy compiler as an opt-in feature

JAX Editorial Team
Angular
© Shutterstock / studiostoks  

Angular v8 is live and it brings an impressive list of changes and improvements. Those of you who have been following our thread, already know what we are talking about! But those of you who are new here, let’s have a look at all highlights of the latest Angular release.

Pop the champagne!

Angular v8 arrives with an impressive list of changes and improvements including the much-anticipated Ivy compiler as an opt-in feature!

This latest release also brings an extensive list of bug fixes and some important breaking changes.

Are you eager to have a sneak peek at most interesting changes?

We invited Manfred Steyer to give us the first taste of Angular v8, fresh out of the oven! 

You can find the full article here

For those of you who want to take a look at the detailed list of features and bug fixes, you can head over to the official changelog.

Now, let’s have a quick look at the new features.

Features

  • add support for TypeScript 3.3 (and drop older versions) (#29004) (75748d6)
  • common: add ability to watch for AngularJS URL updates through onUrlChange hook (#30466) (8022d36)
  • common: stricter types for SlicePipe (#30156) (722b2fa)
  • bazel: use rbe_autoconfig() and new container. (#29336) (e562acc)
  • common: add @angular/common/upgrade package for $location-related APIs (#30055) (152d99e)
  • common: add ability to retrieve the state from Location service (#30055) (b44b143)
  • common: add ability to track all location changes (#30055) (3a9cf3f)
  • common: add APIs to read component pieces of URL (#30055) (b635fe8)
  • common: add MockPlatformLocation to enable more robust testing of Location services (#30055) (d0672c2)
  • common: add UrlCodec type for use with upgrade applications (#30055) (ec455e1)
  • common: provide replacement for AngularJS $location service (#30055) (4277600)
  • remove deprecated DOCUMENT token from platform-browser (#28117) (3a9d247)
  • compiler: support skipping leading trivia in template source-maps (#30095) (304a12f)
  • core: add missing ARIA attributes to html sanitizer (#29685) (909557d), closes #26815
  • router: deprecate loadChildren:string (#30073) (c61df39)
  • service-worker: allow configuring when the SW is registered (#21842) (4cfba58), closes #20970
  • service-worker: expose SwRegistrationOptions token to allow runtime config (#21842) (39c0152)
  • service-worker: support bypassing SW with specific header/query param (#30010) (6200732), closes #21191
  • compiler-cli: export tooling definitions (#29929) (e1f51ea)
  • compiler-cli: lower some exported expressions (#30038) (8e73f9b)
  • core: add schematics to move deprecated DOCUMENT import (#29950) (645e305)
  • bazel: update the build to use the new architect api (#29720) (902a53a)
  • remove @angular/http dependency from @angular/platform-server (#29408) (9745f55)
  • compiler-cli: ngcc – make logging more configurable (#29591) (8d3d75e)
  • core: Add “AbstractType” interface (#29295) (afd4a4e), closes #26491
  • core: template-var-assignment update schematic (#29608) (7c8f4e3)
  • bazel: Upgrade rules_nodejs and rules_sass (#29388) (d6d081e)
  • service-worker: support multiple apps on different subpaths of a domain (#27080) (e721c08), closes #21388
  • bazel: Eject Bazel (#29167) (36a1550)
  • bazel: Hide Bazel files in Bazel builder (#29110) (7060d90)
  • forms: clear (remove all) components from a FormArray (#28918) (a68b1a1), closes #18531
  • platform-server: wait on returned BEFORE_APP_SERIALIZED promises (#29120) (7102ea8)

 

 

Update May 24, 2019

Angular v.8.0.0-rc.5 arrives and brings some minor updates with a couple of new features and a list of bug fixes for core and bazel.

According to the official release schedule, we should be expecting the stable release within this month.

So, will this be the last release candidate? We will see!

For now, let’s have a look at what the latest release candidate brings.

Features

  • common: add ability to watch for AngularJS URL updates through onUrlChange hook (#30466) (8022d36)
  • common: stricter types for SlicePipe (#30156) (722b2fa)

Bug Fixes

  • bazel: allow ts_library interop with list-typed inputs (#30600) (bf38df4)
  • bazel: Disable sandbox on Mac OS (#30460) (3de26a8)
  • bazel: ng test should run specific ts_web_test_suite (#30526) (8bc4da8)
  • core: remove deprecated TestBed.deprecatedOverrideProvider API (#30576) (5a46f94)
  • core: require ‘static’ flag on queries in typings (#30641) (c8af830)
  • core: temporarily remove @deprecated jsdoc tag for a TextBed.get overload (#30514) (561e01d), closes #29290#29905
  • router: type cast correctly for IE 11 bug breaking URL Unification when comparing objects (#30464) (32daa93)

 

Update May 16, 2019

The fourth release candidate has now arrived! We inch closer and closer to the release of Angular 8.

This update comes with a number of bug fixes and a new feature for Bazel. Here’s what been added with 8.0.0-rc.4:

Bug Fixes

  • bazel: Directly spawn native Bazel binary (#30306) (d1fcc2b)
  • bazel: pass correct arguments to http_server in Windows (#30346) (71eba45), closes #29785
  • bazel: Use existing npm/yarn lock files (#30438) (3136d9f)
  • compiler: ensure strict mode when evaluating in JIT (#30122) (192f108)
  • core: migrations not always migrating all files (#30269) (e8ceae1)
  • core: static-query migration errors not printed properly (#30458) (fde3f46)
  • core: static-query migration fails with default parameter values (#30269) (c3246e6)
  • core: static-query migration should gracefully exit if AOT compiler throws (#30269) (a71d8a8)
  • core: static-query migration should handle queries on accessors (#30327) (dd299f9)
  • core: static-query migration should not fallback to test strategy (#30458) (0fa48e8)
  • core: static-query migration should not prompt if no queries are used (#30254) (12fb639)
  • core: static-query usage migration strategy should detect ambiguous query usage (#30215) (e295c6a)
  • router: ensure navigations start with the current URL value incase redirect is skipped (#30344) (9b88920), closes #30340 #30160
  • router: IE 11 bug can break URL unification when comparing objects (#30393) (c383491)

Features

  • bazel: use rbe_autoconfig() and new container. (#29336) (e562acc)

 

 

Update May 8, 2019

As release candidates for Angular v8 keep coming, our anticipation for the final release grows.

rc.3 is live and this time it brings only but a short list of bug fixes, including a fix for the interpolate identifier in AOT as well as ibazel 0.10.1 for windows fixes.

Let’s have a quick look.

Bug Fixes

  • bazel: Bump ibazel to 0.10.1 for windows fixes (#30196) (9f68c35)
  • compiler-cli: log ngcc skipping messages as debug instead of info (#30232) (548b003)
  • core: fix interpolate identifier in AOT (#30243) (3fe3a84)
  • router: ensure history.state is set in eager update mode (#30154) (9720227)
  • router: fix a problem with router not responding to back button (#30160) (132f01c)

 

 

Update April 30, 2019

Four bugfixes in two updates that were released within a few days: The pace on the way to Angular 8 is increasing. Just one day after the release of the first release candidate for Angular 8, the second was released. It contains two bugfixes for Bazel. One of them concerns the file metadata.tsconfig.json, which no longer includes common/upgrade*.

The second bugfix is an update of the peerDep Ranges. Here is the complete list of changes:

Angular 8.0.0-rc.2

Bug Fixes

  • language-service: Remove tsserverlibrary from rollup globals (#30123) (b706800)
  • disable injectable-pipe migration (#30180) (4b2fcfd)

Angular 8.0.0-rc.1

Bug Fixes

 

Update April 26, 2019

Only a couple of days after the last beta went out, Angular v8 enters the RC stage!

Angular v8.0.0-rc.0 is out and it brings an impressive list of features as well as one breaking change.

Let’s have a quick look.

Breaking changes

  • bazel: ng_module now depends on a minimum of build_bazel_rules_nodejs 0.27.12

Features

  • common: add @angular/common/upgrade package for $location-related APIs (#30055) (152d99e)
  • common: add ability to retrieve the state from Location service (#30055) (b44b143)
  • common: add ability to track all location changes (#30055) (3a9cf3f)
  • common: add APIs to read component pieces of URL (#30055) (b635fe8)
  • common: add MockPlatformLocation to enable more robust testing of Location services (#30055) (d0672c2)
  • common: add UrlCodec type for use with upgrade applications (#30055) (ec455e1)
  • common: provide replacement for AngularJS $location service (#30055) (4277600)
  • remove deprecated DOCUMENT token from platform-browser (#28117) (3a9d247)
  • compiler: support skipping leading trivia in template source-maps (#30095) (304a12f)
  • core: add missing ARIA attributes to html sanitizer (#29685) (909557d), closes #26815
  • router: deprecate loadChildren:string (#30073) (c61df39)
  • service-worker: allow configuring when the SW is registered (#21842) (4cfba58), closes #20970
  • service-worker: expose SwRegistrationOptions token to allow runtime config (#21842) (39c0152)
  • service-worker: support bypassing SW with specific header/query param (#30010) (6200732), closes #21191

If you want to check out the extensive list of bug fixes, head over to the official changelog

 

Update April 24, 2019

Yet another beta version is out!

Angular v8.0.0-beta.14 brings a list of important bug fixes and three interesting features.

Let’s have a quick look at what’s in this new release.

Features

  • compiler-cli: export tooling definitions (#29929) (e1f51ea)
  • compiler-cli: lower some exported expressions (#30038) (8e73f9b)
  • core: add schematics to move deprecated DOCUMENT import (#29950) (645e305)

Bug fixes

  • bazel: do not typecheck core schematic files (#29876) (2ba799d)
  • bazel: restore ng build –prod (#30005) (96a8289)
  • common: prevent repeated application of HttpParams mutations (#29045) (8e8e89a), closes #20430
  • common: async pipe will properly check when it recieves an NaN value from an observable (#22305) (3f6bf6d), closes #15721
  • core: don’t include a local EventListener in typings (#29809) (4bde40f)
  • core: use shakeable global definitions (#29929) (e5905bb)
  • language-service: Use proper types instead of any (#29942) (1a56cd5)

 

Update April 17, 2019

The beta releases are coming faster and faster – does this indicate a stabilization? Anyway – the release candidate phase should not be far away. Beta 13 for Angular 8 was about three bugfixes, one of which is important for developers who want to work with the current version of TypeScript:

Bug fixes

 

Update April 15, 2019

8.0.0-beta.12 has arrived.

This beta release is mostly focused on bug fixes, fixing 11 known issues. It also adds one new feature and one new deprecation.

Bug fixes

Features

  • bazel: update the build to use the new architect api (#29720) (902a53a)

Deprecations

  • TestBed.get() has two signatures, one which is typed and another which accepts and returns any. The signature for any is deprecated; all usage of TestBed.get() should go through the typed API. This mainly affects string tokens (which aren’t supported) and abstract class tokens.

 

Update April 5, 2019

The beta tap is still wide open. The 11th beta for Angular v8 brings four new features, four bug fixes and one new build.

Make sure to take note of the breaking change.

Here’s what’s been added:

Features

build

Bug fixes

  • bazel: Update schematics to support routing (#29548) (401b8ee)
  • bazel: use //:tsconfig.json as the default for ng_module (#29670) (b14537a)
  • compiler-cli: ngcc – cope with processing entry-points multiple times (#29657) (6b39c9c)
  • core: static-query schematic should detect static queries in getters. (#29609) (33016b8)

BREAKING CHANGES

  • bazel: @bazel/typescript is now a peerDependency of @angular/bazel so user’s of @angular/bazel must add @bazel/typescript to their package.json

 

Update March 20, 2019

Features

  • bazel: Upgrade rules_nodejs and rules_sass (#29388) (d6d081e)
  • service-worker: support multiple apps on different subpaths of a domain (#27080) (e721c08), closes #21388

The 10th beta is very generous; not only does it add support for TypeScript 3.3 (so don’t use the older versions anymore!) but there are also a bunch of breaking changes. Does this mean the RC phase is upon us? We’ll see.

In the meantime, let’s have a closer look at what’s included in beta.9.

Bug fixes

Features

  • add support for TypeScript 3.3 (and drop older versions) (#29004) (75748d6)

Breaking changes

  • core: Certain elements (like <tr> or <col>) require parent elements to be of a certain type by the HTML specification (ex. can only be inside / ). Before this change Angular template parser was auto-correcting “invalid” HTML using the following rules:
  • <tr> would be wrapped in <tbody> if not inside <tbody><tfoot> or <thead>;
  • <col> would be wrapped in <colgroup> if not inside <colgroup>.

This mechanism of automatic wrapping / auto-correcting was problematic for several reasons:

  • it is non-obvious and arbitrary (ex. there are more HTML elements that have rules for parent type);
  • it is incorrect for cases where <tr> / <col> are at the root of a component’s content, ex.:
<projecting-tr-inside-tbody>
  <tr>...</tr>
</projecting-tr-inside-tbody>

In the above example the <projecting-tr-inside-tbody> component could be “surprised” to see additional <tbody>elements inserted by Angular HTML parser.

  • TypeScript 3.1 and 3.2 are no longer supported.

Therefore, you should update your TypeScript version to 3.3 right away. 

 

Update March 13, 2019 

Keep the beta releases coming!

Today we have a look at Angular v.8.0.0-beta.8 and the list of features as well as bug fixes it brings.

Let’s have a look.

Features

Bug fixes

  • bazel: add missing binary path for api-extractor (#29202) (df354d1)
  • bazel: ng build should produce prod bundle (#29136) (14ce8a9)
  • compiler: ensure template is updated if an output is transformed (#29041) (c7e4931)

 

 

Update March 7, 2019

Yet another beta arrives!

Angular 8.0.0-beta.7 is out and it brings two new features and quite a list of bug fixes.

Let’s have a look.

Features

  • core: update schematic to migrate to explicit query timing (#28983) (6215799)
  • service-worker: add JSON schema for service worker config (#27859) (3bee0f6), closes #19847

Bug fixes

 

 

Update February 27, 2019

The beta train shows no sign of slowing down!

The seventh beta arrives with five bug fixes and one feature in tow.

Feature

  • bazel: add ts_config extending support for ng_module (#21883) (edb6c2d)

 

Update February 21, 2019

Things are definitely speeding up in the Angular world.

It’s been less than a week since beta.4 arrived with a dozen bug fixes and five features and now a new beta release is making its debut.

Beta.5 brings three bug fixes and four features.

Features

 

Update February 18, 2019

If everything goes well, Angular v8 might be released in May but the plan is subject to change so we’ve decided to just enjoy the ride.

The fifth beta is pretty bountiful; it brings a dozen bug fixes and five features.

Features

  • optionally save complete performance log in chrome benchpress tests (#27551) (d42f32c)
  • bazel: add dts bundler as action to ng_module (#28588) (3d39100)
  • compiler: support tokenizing a sub-section of an input string (#28055) (eeb560a)
  • compiler: support tokenizing escaped strings (#28055) (2424184)
  • compiler-cli: no longer re-export external symbols by default (#28633) (91b7152), closes #28594 #25644 #25644

If you’d like to know more about Ivy Renderer’s fate, check out this article

 

Update February 6, 2019

Things are moving fast! The third beta was released last Wednesday and now the next one is already available!

There were eight betas for Angular v7 so if v8 is anything like that, the beta phase is far from over.

Beta.3 arrives with five bug fixes and one performance improvement, namely:

 

Update January 31, 2019

Since there is no schedule this time, there’s no way of knowing when the beta tap closes and when the RC period begins. But let’s enjoy the journey, which, in our case, means that the third beta is here.

This one is not as “leafy” as beta.0, for example, but it has it all: two bug fixes, one feature and one performance improvement.

Features

Performance improvements

  • core: be more consistent about typeof checks (#28400) (9af18c2)

 

 

Update January 23, 2019

It’s been a week since the first beta arrived and now the second one is already here.

Beta.1 brings two bug fixes, three features and one revert:

Features

Reverts

 

Update January 17, 2019

Now we really miss the time when Angular releases had a schedule and everything was pretty straightforward.

That being said, it’s time to update our thread; the first beta for Angular 8 has arrived with 13 bug fixes, the majority being about Bazel, plus one feature and one performance improvement.

Features

  • forms: export NumberValueAccessor & RangeValueAccessor directives (#27743) (ac15717)

Performance improvements

 

 

Update January 16, 2019

We started our Angular threads a couple of years ago and we’ve been keeping a close on eye on all the releases ever since.

The latest update might be invisible to the naked eye especially since the date of that last update hasn’t changed but we discovered that the Angular team has made a hush-hush update to Angular v7.2.

When Angular v7.2 was released, it only had four bug fixes (see the list below) but if you look at the same release now, there are 32 bug fixes plus nine features. Sneaky, sneaky!

Features

 

Update January 7, 2019

It seems that Angular v7.2 only had one release candidate as we’re now one step closer to Angular v8.

The latest release brings a few bug fixes:

  • bazel: unable to launch protractor test on windows (#27850) (1e6c9be)
  • forms: match getError and hasError to get method signature (#20211) (1b0b36d)
  • upgrade: allow nesting components from different downgraded modules (#27217) (bc0ee01)
  • upgrade: correctly handle nested downgraded components with downgradeModule() (#27217) (326b464), closes #22581#22869 #27083

 

Update December 19, 2018

Moments before Christmas, the Angular team decided it is time for a treat! The first release candidate for v7.2.0 is here with a huge list of bug fixes and a couple of new features.

Let’s have a quick look.

Bug Fixes

Features

 

Update December 12, 2018

The third beta for Angular v7.2 is here. This release may only bring some bugfixes but every step counts.

Let’s take a quick look at the four bugfixes featured in beta.2.

Bugfixes

  • bazel: fix TS errors in the schematics/bazel-workspace files (#27600) (3290fc3)
  • bazel: Read latest versions from latest-versions.ts & use semver check (#27526) (30a3b49)
  • bazel: tsickle dependency not working with typescript 3.1.x (#27402) (f034114)
  • forms: typed argument for FormBuilder group (#26985) (b0c7561)

 

Update December 7, 2018

The second beta for Angular v7.2 arrives in time for Saint Nicholas with lots of goodies in tow.

There are 14 bug fixes, six features, and even one breaking change. Let’s have a closer look:

Features

  • bazel: ng-new schematics with Bazel (#27277) (06d4a0c)
  • router: add a Navigation type available during navigation (#27198) (d40af0c)
  • router: add pathParamsOrQueryParamsChange mode for runGuardsAndResolvers (#27464) (d70a7f3), closes #26861#18253
  • router: allow passing state to routerLink directives (#27198) (73f6ed9), closes #24617
  • router: allow passing state to NavigationExtras (#27198) (67f4a5d)
  • router: restore whole object when navigating back to a page managed by Angular router (#27198) (2684249)

Breaking change

  • bazel: Bazel users: rules_angular_dependencies() will no longer install transitive dependencies of build_bazel_rules_nodejs and build_bazel_rules_typescript. User WORKSPACE files will now need to install rules_nodejs and rules_typescript transitive deps directly:
load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dependencies")
rules_typescript_dependencies()

load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dependencies")
rules_nodejs_dependencies()

 

Update December 7, 2018

Angular v7.1 was released last week but the Angular team is already busy preparing v7.2 for its arrival.

Case in point: the beta season has brought a couple of bug fixes; no features this time.

 

Update November 22, 2018

Angular v7 arrived last month but, as you well know, things move at the speed of light around here. This can only mean one thing: it’s time for a new thread.

We’re officially leaving Angular v7 behind and starting a new journey. Angular v8 will be released in March/April 2019 but now that Angular v7.1 is here, there’s no looking back. If you’d like to check out the old release thread, you’ll find it here.

We were really surprised to see that Angular v7.1 only had one release candidate but we’re glad to see that the latest release is so bountiful; it has almost 20 bug fixes and over 10 features.

Let’s have a look at the features:

  • bazel: Bazel workspace schematics (#26971) (b07bd30)
  • router: add prioritizedGuardValue operator optimization and allowing UrlTree return from guard (#26478) (fdfedce)
  • compiler: ability to mark an InvokeFunctionExpr as pure (#26860) (4dfa71f)
  • forms: add updateOn option to FormBuilder (#24599) (e9e804f)
  • router: allow guards to return UrlTree as well as boolean (#26521) (081f95c)
  • router: allow redirect from guards by returning UrlTree (#26521) (152ca66)
  • router: guard returning UrlTree cancels current navigation and redirects (#26521) (4e9f2e5), closes #24618
  • service-worker: add typing for messagesClicked in SwPush service (#25860) (c78c221)
  • service-worker: close notifications and focus window on click (#25860) (f5d5a3d)
  • service-worker: handle ‘notificationclick’ events (#25860) (cf6ea28), closes #20956 #22311
  • upgrade: support downgrading multiple modules (#26217) (93837e9), closes #26062
  • router: add pathParamsChange mode for runGuardsAndResolvers (#26861) (bf6ac6c), closes #18253

Check out the GitHub repo for the extensive changelog. 

What’s up with Ivy?

According to the blog post announcing Angular v7, Ivy is still under active development. “We are beginning to validate the backwards compatibility with existing applications and will announce an opt-in preview of Ivy as soon as it is ready in the coming months.”

How can Ivy help you? If you wish Angular was smaller, easier to debug, and compiled faster, you’ve got yourself a genie in the shape of Angular’s renderer code-named Ivy. Since it comes as a non-breaking change, this means you’ll get it automatically in a future release by just staying on Angular’s latest releases.

Ivy is currently not feature complete.

You can track the Angular team’s progress at ivy.angular.io.

Leave a Reply

2 Comments on "Angular v8 arrives with the much-anticipated Ivy compiler as an opt-in feature"

avatar
400
  Subscribe  
Notify of
Trancy Dsouza
Guest

Please correct the typo in the title.

Eirini-Eleni Papadopoulou
Admin

Hi there,

Fixed! Thank you so much for noticing!