On the road to Angular v7: 6.1.0 beta.1 is here
We’re still excited about the recent Angular v6 release but the show must go on. The current release focuses on the toolchain and on making it easier to move quickly with Angular in the future so we’re excited to see what Angular v7’s “theme” will be. But until then, let’s focus on what we do know – the beta season for 6.1.0 has begun.
We’re off to a good start! The second beta is here and it doesn’t come empty-handed. There are nine bugfixes and nine features.
- common: introduce KeyValuePipe (#24319) (2b49bf7)
- core: export defaultKeyValueDiffers to private api (#24319) (92b278c)
- core: expose a Compiler API for accessing module ids from NgModule types (#24258) (bd02b27)
- core: KeyValueDiffer#diff allows null values (#24319) (52ce9d5)
- ivy: a generic visitor which allows prefixing nodes for ngtsc (#24230) (ca79e11)
- ivy: add support of ApplicationRef.bootstrapModuleFactory (#23811) (e3759f7)
- ivy: namespaced attributes added to output instructions (#24386) (82c5313)
- ivy: now supports SVG and MathML elements (#24377) (8c1ac28)
- router: implement scrolling restoration service (#20030) (49c5234), closes #13636 #10929 #7791 #6595
We’re happy to see that things are moving forward for Angular’s new 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, Brad Green, Angular platform engineering director at Google, wrote in his takeaways from ngAtlanta.
PS: You can track their progress at ivy.angular.io.
Update June 7, 2018
Now that Angular v6 is here, it’s time to look toward the future, which happens to be all about Angular v7. What will this version bring? We don’t know yet but we’re pretty excited to see the bits and pieces and then put everything together this Fall.
That being said, it’s time to move on — to 6.1.0 to be more exact. The first beta arrived in early June with nearly 30 bugfixes and six feature in tow.
- compiler: support
// TODOin mock compiler expectations (#23441) (c6b206e)
- compiler-cli: update
- platform-browser: add HammerJS lazy-loader symbols to public API (#23943) (26fbf1d)
- platform-browser: allow lazy-loading HammerJS (#23906) (313bdce)
- platform-server: use EventManagerPlugin on the server (#24132) (d6595eb)
- router: add navigation execution context info to activation hooks (#24204) (20c463e), closes #24202
Angular v7 should be released in September/October 2018. Read more about the release schedule here.
Let’s revisit Angular v6
Angular v6 is the first release that unifies the Framework, Material and CLI. If you want to read more about the highlights and the new CLI-powered update workflow for your projects, check out the v6 release announcement.
Furthermore,the team is synchronizing the major versions going forward for the framework packages (
@angular/compiler, etc), the Angular CLI, and Angular Material + CDK. “The minor and patch releases for these projects will be issued based on the project’s needs,” Stephen Fluin announced in the blog post.
We talked about ng update in a previous article; this new CLI command analyzes your
package.jsonand uses its knowledge of Angular to recommend updates to your application. In short, it will “help you adopt the right version of dependencies, and keep your dependencies in sync, but 3rd parties can provide update scripts using schematics“.
Just to clarify something: it will not replace your package manager;
ng update uses npm or yarn under the hood to manage dependencies. In addition to updating dependencies and peer dependencies,
ng update will apply needed transforms to your project.
This new CLI command promises to make adding new capabilities to your project easy. It uses your package manager to “download new dependencies and invoke an installation script (implemented as a schematic) which can update your project with configuration changes, add additional dependencies (e.g. polyfills), or scaffold package-specific initialization code.”
This first release of Angular Elements focuses on allowing you to bootstrap Angular components within an existing Angular application by registering them as Custom Elements.
Angular Material + CDK Components
The new tree component for displaying hierarchical data is surely the biggest news. As Fluin explained in the blog post, “following patterns from the data-table component, the CDK houses the core tree directives, with Angular Material offering the same experience with Material Design styles on top.”
But that’s not all; the team also introduced new badge and bottom-sheet components. The former helps display helpful information such as unread item counts while the latter represent a special type of mobile-centric dialogs that come up from the bottom of the viewport, commonly used to present a list of options following an action.
@angular/cdk/overlay package is one of the most powerful pieces of infrastructure in the CDK today.
CLI v6 now offers support for workspaces containing multiple projects, such as multiple applications or libraries. CLI projects will now use
.angular-cli.json for build and project configuration.
Each CLI workspace has projects, each project has targets, and each target can have configurations.
RxJS v6 brings a few major changes, along with a backwards compatibility package
rxjs-compat that will keep your applications working. It’s more tree-shakable now, ensuring that only the pieces of RxJS that you use are included in your production bundles.
Note: If you use
ng update, your application should keep working, but you can learn more about the 5.5 to 6.0 migration.
Ivy is still under active development, but there will be an opt-in preview of Ivy as soon as it is ready.
Long Term Support (LTS)
The Angular team previously announced that only v4 and v6 would be LTS releases but the good news is that long-term support has been extended to ALL major releases starting with v4. Each major release will be supported for 18 months with around 6 months of active development followed by 12 months of critical bugfixes and security patches.
For the complete list of highlights, check out Stephen Fluin’s blog post.