Angular 8, with polite delay, saw the light of day in June. But after the release is before the release and already in the autumn is Angular 9 on the plan, more precisely: in October or November, it should be ready. Whether this appointment is met, or Angular 9 is a gift from Nicholas? We will see. But until then it is still a long way and initially are the smaller releases, so Angular 8.1, 8.2, etc. into the house.
Angular 9 Next versions
Angular 9.0.0-next.15 focuses on troubleshooting. After Ivy was at the center of the feature development, the release notes for the latest Next version show that of course work continues on other parts of the framework. Although most of the fixed bugs in the release are again in the scope of the new compiler, the features include an innovation for Ivy, two for Bazel, and one for the language service. Bazel upgraded the Schematics to the recently released 1.0.0 release . In addition, Bazel Schematics is now working with Ivy and the new Rollup_Bundle, which replaces the legacy version. In the feature area, Ivy continued to work on the i18n support itself. For the language service, a feature has been implemented that allows the replacement of typed texts with suggestions. Also a change to performance improvement by Ivy is back, this time for directives without selector.
Angular 9 is not finished yet. On the way to the soon to be expected major release is now again a Next-build available, which brings a whole host of new features. Again, the release is mostly about Ivy. So there are three performance improvements for the new compiler, as well as numerous features in this version. This includes, for example, that the country specification for internationalization can now be made via a global property that is read out at runtime. In addition, some migrations have been added to the Angular Compatibility Compiler (ngcc).
Angular 9.0.0-next.13 comes with new features and bug fixes. Also included is a Breaking Change that affects Bazel: The Workspace @angular/bazel ng_setup_workspace() is no longer needed and has been removed. Instead, rules_nodejs is assumed to be in the workspace file and no further dependencies remain. Therefore it should be sufficient to remove all calls for this function as well as the corresponding load statement.
As a new feature for the core, a generic type for ModuleWithProviders has been added that defines the module type. It should be needed for all users in Angular 10, in Angular 9, however, only for Ivy users. Ivy gets its own compiler options for Shim Generation and there are also new features for NgModules. In response to a request, Angular 9.0.0-next.13 also allows private NgModules re-exports in ngcc.
With the release of Angular 9.0.0-next.12 the framework only supports TypeScript 3.6, not the predecessor versions 3.4 and 3.5. This brings also this Next-Release again with a Breaking Change. That’s the only one, though. Further innovations concern again the performance with Ivy. Among other things, the initialization of static attributes in templates has been worked on, which now only takes place in the first round.
One of the feature changes to Angular 9.0.0-next.12 is that type checking for event bindings with Ivy is now available. Also in the range of Ivy falls the simplified debugging for Styles and Classes. However, some new features, including a flag added to BootstrapOptions have already been withdrawn.
Angular 9 next versions Next 11
The TypeScript runtime library tslib is no longer a direct dependency of Angular. With the release of Angular 9.0.0-next.11, tslib has moved into the status of a peer dependency. For users who do not use the Angular CLI, this is a breaking change because they now have to install tslib manually. Also for Angular Forms v9.0.0-next.11 brings a Breaking Change: has been removed and can no longer be used as selector. Instead, you have to work with . One of the breaking changes in this context is that the warning has been removed. The third Breaking Change on the Forms is the removal of FormsModule.withConfig . Instead, FormsModule can be FormsModule directly.
In addition to these breaking changes, the new Next version of Angular 9 will of course include some feature changes as well as performance enhancements and bug fixes. As we saw earlier in the next releases for Angular 9, it also shows again that the Angular team is working on the completion of the new compiler, Ivy. Version Next.11 brings several new features here: For the i18n support in Angular 9, Ivy introduces a new format; if the old one is used, this had to be marked manually. However, enableI18nLegacyMessageFormat now been set to true to make the upgrade easier. Other innovations for Ivy include issuing more accurate error messages for unknown components, which provide information on how to solve the problem.
Of course these are not all new features that fall within the scope of the new compiler. The performance enhancements in this release also belong to Ivy. For example, this means that setInputsFromAttrs now setInputsFromAttrs stricter zero checks.
Angular 9.0.0-next.10 is ready for the test: Work on Angular 9 continues, but the new major version of the framework is still missing. First of all, the code base has now been cleaned up. Renderer , known from version 4, has been deprecated for a long time and has now been completely removed, including the associated icons. Instead, Renderer2 must now be used. But new features have made it into the release. For Ivy there are two new features related to the internationalization features (i18n), as can be read in the changelog:
- ivy: i18n – implement compile-time inlining (# 32881) (2cdb3a0)
- ivy: i18n – render legacy message ids in $ localize if requested (# 32937) (bcbf3e4)
There are also feature news for the core, where queries are now dynamically processed by default. The static flag for ViewChild and ContentChild is now false by default. For this purpose, the flag was also marked as optional. Other new features include Forms, Language Service, and ngcc.
Angular 9 next versions – Next 9
With Angular 9.0.0-next.9, four new features have been added to the upcoming major version, one of which is called Breaking Change. This time, however, this is not an innovation to Ivy or Bazel, but a deprecation in the service worker, which has now been removed. For example, versionedFiles no longer available in the Service Worker Asset Group Configuration in ngsw-config.json.
But among the three other feature changes that this release brings, the new compiler is also found again: With Ivy, the package @angular/localize now be added via ng add . Also part of Ivy is the performance improvement in the release: The global state is no longer called from the i18n Instructions if the information is already available.
In addition, Angular 9 next versions updates the required version of the RxJS dependency to v6.5.3. Also for the Language Service there is an innovation concerning the loading of NgModules. When NgModules are loaded from the Language Service, it is now checked for an updated version in the cache. If that is the case, it can be used.
The ninth Next release of Angular 9, v9.0.0-next.8, comes with only four new features, two of which are bug fixes for Ivy. Fixed a bug that occurred in the context of debugging component element. Here, the necessary debug information is output with window.ng.getDebugNode . The second fixed bug in Ivy relates to map-based bindings that under certain circumstances skipped over intermediate values.
The release also includes a new feature added to the Language Service. This can now determine to which NgModule a directive belongs. The performance improvement can be found again in Ivy: The extra SafeStyle Detection Code has been removed.
Angular 9.0.0-next.7 is here! Again, the version brings a whole new set of features, including some innovations for Ivy. Also on the performance of the new compiler was worked. But the release also includes Breaking Changes.
For Ivy with version Next.7 of Angular 9 different innovations were delivered. Among them are bug fixes as well as new features and performance improvements. The two breaking changes in the release are also related to Ivy. One of these concerns translations that are loaded with the loadTranslations() function. Here, MessageId must be MessageId for the key, not the string SourceMessage . For the $localize function, the imports have changed. The global scope is now imported from @angular/localize/init , while loadTranslations() and clearTranslations() loaded from @angular/localize . These are also breaking changes. One of the performance improvements for Ivy is that Lview no longer read repeatedly in Pipe Instructions and Property Instructions. The DOM avoided unnecessary read access to styling instructions. Also included are a few more performance enhancements, Ivy internationalization support features, and Ivy bugfixes.
In addition to the innovations to Ivy, there were of course also updates for other areas of Angular in the release. So again three features for the language service are included. This includes adding some logging methods to the TypeScript host that can be used to create logfiles.
More information about these and all other changes to Angular 9 next versions can be found in the changelog on GitHub .