Das Warten hat ein Ende

Auf dem Weg zu Angular 7 und weiter: Angular 7.1 ist da!

Ann-Cathrin Klose, Dominik Mohilo

© Google / CC BY 4.0

Angular 7.1 wurde veröffentlicht! Was hat sich bei Ivy, Bazel und Co. getan und was hat es ins Release geschafft?

Angular 7 ist da, weiter geht es mit Angular 7.1 und der immer noch offenen Frage: Wann kommt Ivy? Das soll noch im Release-Zyklus von Angular 7 der Fall sein.

Das Team hinter Angular plant, alle sechs Monate eine neue Major-Version zu veröffentlichen; das entspräche einer Veröffentlichung von Angular 8 im März bzw. April. Ein genaues Releasedatum legt man inzwischen aber nicht mehr im Voraus fest, wie dem Angular-Guide zu entnehmen ist.

Angular im Videotutorial

Im entwickler.tutorial Enterprise-Architekturen mit Angular erklärt Manfred Steyer, Google Developer Expert, wie sich mit Angular große und wartbare Geschäftsanwendungen entwickeln lassen.

Angular 7.1 ist da

Update vom 22. November 2018

Nach nur einem Release Candidate steht Angular 7.1 zur Verfügung. Das Release umfasst zahlreiche Bugfixes und kleinere neue Features, die wie immer aus den Beta-Releases und dem Release Candidate bekannt sind. Neuerungen in Hinblick auf die großen Features für Angular, die für 2018 angekündigt wurden, gibt es bei Bazlel. Hier findet sich in Angualr 7.1 ein neues Package, das die Grundlage für das Erstellen von Anwendungen mit Bazel legt. Wie Cédric Exbrayat zusammenfasst, gehören die Bazel Workspace Schematics zu diesem Package und können für das Erstellen der notwendigen Dateien für Bazel in einer Angular-CLI-Anwendung genutzt werden.

Weitere Informationen zum Release können dem Changelog auf GitHub entnommen werden.

Ivy, der neue Renderer, ist allerdings erneut nicht im Release enthalten. Wie auf der Seite „Is Angular Iyy Ready“ zu erkennen ist, gab es hier aber durchaus Fortschritte. Derzeit wird ein Projektstatus von 93,46 Prozent Fertigstellung dort angegeben, mit noch 10 offenen Issues. Dazu zählen die Integration für Webpack, die Dokumentation, sowie zwei noch nicht fertig gestellte Injection-Features und zwei Features für die Internationalisierung. Ein unfertiges Feature findet sich außerdem im Bereich der Decorators, eins in der Template-Syntax.


International JavaScript Conference
Hans-Christian Otto

Testing React Applications

by Hans-Christian Otto (Suora GmbH)

Sebastian Witalec

Building a Robo-Army with Angular

by Sebastian Witalec (Progress)

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)


Angular 7.1.0-rc.0

Update vom 15. November 2018

Der erste Release Candidate von Angular 7.1 ist da. Erneut gab es ein neues Feature, dieses Mal für den Router. Dort wurde für runGuardsAndResolvers eine Option hinzugefügt, mit der Guards und Resolvers optionale Parameter ignorieren: Dazu kann der pathParamsChange Mode genutzt werden. Außerdem umfasst der Release Candidate drei Bug Fixes. Davon betreffen zwei den Bereich des Compiler-CLI, dem nun die fehlende Dependency tslib hinzugefügt. Außerdem gibt das Compiler-CLI nun keine non-posix-Paths für JSON Genfiles an den jeweiligen CompilerHost weiter. Im Router wurde ein Bug behoben, der den Parameter relativeLinkResolution für recognize als Funktion betrifft. Der recognize-Operator, der als Wrapper für die Funktion fungiert, hat den Parameter bislang nicht erkannt. Weitere Informationen können dem Changelog auf GitHub entnommen werden.



Update vom 08. November 2018

Angular 7.1.0-beta.2

Neun Features und sechs Bugfixes bringt die neuste Beta-Version von Angular 7.1 mit. Zu den Features gehört unter anderem eine Änderung an downgradeModule(), durch die es nun möglich ist, Downgrades an mehreren Modulen zugleich vorzunehmen. Zwei neue Features betreffen den Service Worker: Hier wurde Support für das ’notificationclick‘-Event hinzugefügt, mit dem Fenster und Notifications nun außerdem durch Anklicken geschlossen werden können. Für den Router gab es drei neue Features, die das Handling von UrlTree durch Guards betreffen. Im Compiler kann nun InvokeFunctionExpr als Pure markiert werden. Dieses Verhalten betrifft die Optimierung des Codes im Rahmen des Tree Shakings und markiert, dass der entsprechende Aufruf keine Seiteneffekte hat.

Weitere Informationen zu diesen Features sowie den Bugfixes im Release können im Changelog auf GitHub gefunden werden.



Update vom 01. November 2018

Angular 7.1.0-beta.1

Die zweite Beta von Angular 7.1 bringt fünf Bugfixes mit. Zwei der behobenen Fehler in Version 7.1.0-beta.1 befanden sich im Compiler, drei im Core. Einer der Bugfixes im Compiler betrifft Inputs mit Aliasen, die nun richtig erzeugt werden; der zweite Bugfix betrifft relative Pfade, die nun nur noch in Summary File Errors erzeugt werden. Im Core werden nun Comment Nodes unterhalb von unsafe-Elementen ignoriert. Außerdem wird die Dependency zwischen @Component Decorator und @angular/compiler nun zur Runtime geladen, nicht mehr zum Zeitpunkt der Kompilierung, um negative Auswirkungen auf die Build-Zeiten zu vermeiden. In der Metadaten-Vererbung im Core ist ebenfalls ein Fehler behoben worden. Weitere Informationen können wie immer dem Changelog auf GitHub entnommen werden.



Update vom 25. Oktober 2018

Angular 7.1.0-beta.0

Die erste Beta des ersten Minor Release für Angular 7  ist da: Angular 7.1.0-beta.0 steht zum Download bereit. Die Version umfasst vier Bugfixes und ein Feature. Zu den Bugfixes gehört, dass im Angular-Core nun Null-Werte für renderer setElement(…) verwendet werden können. Im Bereich der Service Worker wird nun der Cache alter Versionen von Service Workern aufgeräumt. Weitere Bugfixes wurden am Router und am Upgrade-Verhalten von Komponenten-Elementen vorgenommen.

Das neue Feature in Angular 7.1.0-beta.0 betrifft ebenfalls den Router. Hier wurde eine Optimisierung für den Operator prioritizedGuardValue hinzugefügt, die einen UrlTree Return vom Guard erlaubt. Weitere Informationen zum Release können wie immer dem Changelog auf GitHub entnommen werden.

Und Ivy? Der neue Ivy Renderer ist noch immer nicht fertig gestellt worden. Wer sich einen Überblick verschaffen möchte, kann dazu die GitHub-Seite „Is Angular Ivy Ready“ nutzen, die einen Überblick über das Projekt gibt und in Prozent angibt, wie viele Features noch fertiggestellt werden müssen. Derzeit gibt die Seite eine Status von knapp 89 Prozent Fertigstellung an und benennt 17 Features als noch in Arbeit befindlich. Auch die offizielle Status-Seite zu Ivy gibt einen Einblick in den Projektfortschritt. Zu sehen ist, dass vor allem im Bereich der Injection Features und der Internationalisierung noch Arbeit vor dem Team liegt.



Angular 7 – Neue Features

Da das Team von Angular im neuen Release-Plan das Update für „September/Oktober“ angekündigt hat, ist Angular 7 die gefühlt erste pünktliche Version. Das Warten hat sich allerdings gelohnt, denn das neue Angular 7 fixt nicht nur zahlreiche Bugs und löst viele Probleme der Nutzer, es kommt auch mit einer Menge neuer Features für Entwickler.

CLI Prompts

Ein mehr als hilfreiches Feature sind die neuen Prompts (aka. Empfehlungen) im CLI. Führt man Befehle wie ng new oder ng add @angular/material aus, werden Empfehlungen für weitere Features, die man nutzen kann, angezeigt. So soll die Aufmerksamkeit der Nutzer für Dinge wie eingebautes Routing oder die Unterstützung von SCSS geschult werden.

Aber natürlich gibt es dieses Feature nicht nur starr für Standardfunktionen: Auch Schematics können mit CLI Prompts ausgestattet werden! Jedes Schematics Package kann von diesen Empfehlungen profitieren, dazu muss nur der x-promt-Schlüssel in einer Collection hinzugefügt werden:

"routing": {
  "type": "boolean",
  "description": "Generates a routing module.",
  "default": false,
  "x-prompt": "Would you like to add Angular routing?"
},

Angular Material & CDK

Das Component Development Kit hat zwei neue Funktionen: Drag & Drop sowie virtuelles Scrollen. Durch Import der Module DragDropModule und ScrollingModule kann man diese Funktionen in die eigene Anwendung implementieren. Nutzer können so schneller durch lange Listen (Virtual Scrolling) navigieren, oder eben Elemente per Drag & Drop verschieben. Im Bereich Angular Material werden die Nutzer leichte Veränderungen bemerken, denn Angular 7 passt die Darstellung an die offiziellen Material-Design-Richtlinien an, die in diesem Jahr aktualisiert wurden.

Performance

Die Geschwindigkeit von Anwendungen kann durch viele Faktoren negativ beeinflusst werden. Unter anderem setzten viele Entwickler wohl unnötigerweise das Polyfill reflect-metadata in Produktion ein, obwohl man es nur für die Entwicklung benötigt. Dies wird in Angular 7 während des Build-Prozesses nun automatisch aus der Datei polyfills.ts entfernt.

Abhängigkeiten, Ivy & Partnerprojekte

Nun die schlechte Nachricht: Ivy ist nicht Teil des aktuellen Releases. Die neue Engine für das Rendering verbleibt als experimentelles Feature, solange die Entwicklungsphase noch nicht abgeschlossen und wichtige Fragen der Rückwärtskompatibilität nicht geklärt sind. Eine Vorschau des fertigen Renderers soll in den kommenden Monaten veröffentlicht werden.

Angular hat viele Dependencys, allerdings sind die zu TypeScript, RxJS und Node.js die wichtigsten. Diese Abhängigkeiten wurden für Version 7 des Webframeworks aktualisiert, sodass TypeScript nun in Version 3.1 benötigt wird, die Abhängigkeit zu RxJS wurde auf Version 6.3 aktualisiert und Node 10 wird nun ebenfalls unterstützt, allerdings verbleibt der Support für Node.js 8 fürs Erste erhalten.

Zu guter Letzt sei erwähnt, dass diverse Partnerprojekte von Angular ebenfalls aktualisiert wurden. Dazu zählen etwa die Angular Console, mit der man Angular-Projekte lokal starten und betreiben kann, sowie @angular/fire, dessen erstes stabiles Release veröffentlicht wurde.

Update und Angular 6

Das Update von Angular 6 auf Angular 7 ist auf update.angular.io sehr ausführlich dokumentiert. Allerdings sollte es auch durch das Ausführen eines einzigen Kommandos funktionieren:

ng update @angular/cli @angular/core

Damit ist Angular 7 offiziell die Nachfolge von Angular 6 angetreten. Zum „alten Eisen“ gehört Angular 6 allerdings nicht: Laut Release Guide wird Angular 6 nun ab 3. November als LTS-Version (Long Term Support) bis nächstes Jahr im November weiterhin mit Sicherheitsupdates und Bugfixes unterstützt. Weitere Informationen zum Update gibt es auf dem Blog von Angular und wie immer auf GitHub.



Update vom 12. Oktober 2018

Angular 7.0.0-rc.1

Der zweite Release Candidate von Angular 7 steht zum Download bereit. Zu finden ist die neue Version wie immer auf GitHub, genau wie ihre Release Notes. Diese fallen dieses Mal jedoch besonders kurz aus: Gearbeitet wurde an Ivy, dem neuen Renderer für Angular, der mit dem finalen Release von Angular 7 die Beta-Phase verlassen wird. Für die Anwender gibt es in dieser Beta-Version dennoch keine spannenden neuen Features zu testen. Alle Neuerungen an Angular 7.0.0-rc.1 seien interner Natur, so steht es in den Release Notes. Für den Nutzer ändert sich nichts.



Update vom 4. Oktober 2018

Angular 7: Die letzten Betas & die ersten Release Candidates

Angular 7.0.0-beta.6 & Angular 7.0.0-beta.7

Mit Angular 7.0.0-beta.6 und 7.0.0-beta.7 ist der Beta-Release-Zyklus für das neue Major-Release abgeschlossen. In Angular 7.0.0-beta.6 wurde noch einmal intensiv an Ivy gearbeitet, dem neuen Renderer, der mit der neuen Version final und produktionsreif implementiert werden soll. Insgesamt fünf neue Features für Ivy bracht das Release mit, darunter eins, das die Integration von Animations in Metadaten verbessert. Auch bei den Bugfixes finden sich sechs Neuerungen für Ivy in diesem Release, sowie einige weitere Änderungen.

Angular 7.0.0-beta.7, das letzte Beta-Release vor dem ersten Release Candidate, fiel deutlich kleiner aus. Zwei Bugfixes und zwei neue Feautres umfasst die letzte Beta. Eins der neue Features betrifft das Compiler-CLI. Dort ist es nun möglich, auch angularCompilerOptions zu erweitern.

Angular 7.0.0-rc.0

Der erste Release Candidate von Angular 7 kommt ganz ohne Bugfixes daher. Das muss aber nicht heißen, dass die neue Version keine Ausbesserungen mehr bekommen wird. Angular 7.0.0-rc.0 fügt nämlich ein weiteres Feature zur neuen Version hinzu: Angular 7 unterstützt nun TypeScript 3.1, das selbst erste in der vergangenen Woche final erschienen ist.

Wie viele Release Candidates für Angular 7 vorgesehen sind, ist nicht bekannt. Auch ein finales Release Datum für Angular 7 hat das Angular-Team bislang nicht bekannt gegeben.



Update vom 6. September 2018

Angular 7.0.0-beta.5

Mit der sechsten Beta von Angular 7, Angular 7.0.0-beta.5, wurden zwei neue Features für Angular 7 veröffentlicht. Eines der neuen Features betrifft Angular Elements. Hier wurde die Verwendung von <slot> in Shadow DOM v1 aktiviert, das bereits aus früheren Updates bekannt ist. Der Router gibt nun außerdem eine Warnung aus, wenn Navigationen außerhalb von NgZone ausgelöst werden sollen.

Bugfixes gab es zu diesem Beta-Release an diversen Bereichen von Angular 7; das Release ist also deutlich größer ausgefallen als die vorherigen. Darunter sind drei für Angular Elements, zwei für den Core, eins für Bazel. Einen Überblick über alle Bugfixes und neuen Features gibt das Changelog auf GitHub.

Das finale Release von Angular 7 soll laut Release Schedule noch im September oder Oktober 2018 erfolgen. Genaue Informationen zur geplanten Zahl der Beta-Versionen und zum Zeitpunkt des Übergangs in die Release-Candidate-Phase veröffentlicht das Angular-Team allerdings nicht mehr, sodass nicht ersichtlich ist, inwiefern Angular 7 derzeit im Zeitplan liegt.



Update vom 30. August 2018

Angular 7.0.0-beta.4

Statt neuer Features gibt es dieses Mal nur Bugfixes im neusten Release der Beta-Phase von Angular 7. Die fünfte Beta-Version, Angular 7.0.0-beta.4, umfasst vier Bugfixes, darunter drei für Bazel. Das Build-Tool Bazel cached nun fileNameToModuleName Lookups. Wenn Dateien nicht als Bazel Worker ausgeführt werden, soll so Aufwand für das bislang notwendige Re-Parsing der Datei gespart werden. Außerdem wurden von Bazel gemanagede Runtime-Dependencies in ng_setup_workspace verschoben, sodass sie nun auch später im Verarbeitungsprozess im NG CLI verfügbar sind. Dies erzeugte bislang eine Fehlermeldung. Das dritte Bugfix für Bazel löst ein Performance-Problem in g3. Künftig werden Sourcefiles nicht mehr geparsed, wenn der Modulname benötigt wird. Stattdessen werden die die entsprechenden Tags in den .d.ts-Dateien ausgelesen.

Das vierte Bugfix betrifft den Compiler, der eine Aktualisierung bezüglich der neuen Reihenfolge zur Slot Allocation erhalten hat. Hier wurden die Anweisungen unter reserveSlots entfernt. So soll sichergestellt werden, dass Binding und Interpolation Counts berücksichtigt werden, wenn der Zeitabstand der Slots berechnet wird.

Weitere Informationen zum Release gibt es wie immer im Changelog auf GitHub.



Update vom 23. August 2018

Angular 7.0.0-beta.3

Gewohnt klein fällt die vierte Beta von Angular 7 aus, die unter der Versionsnummer Angular 7.0.0-beta.3 auf GitHub zur Verfügung steht. Gearbeitet wurde zu diesem Release an einem Feature: Dem Router wurde UrlSegment[] im Interface CanLoad hinzugefügt. UrlSegment[] kann neben Route als zweiter Parameter an das Interface übergeben werden. Das neue Element wird genutzt, um URL-Elemente zu übergeben, die der Nutzer aufgerufen hat, bevor er eine bestimmte Seite besucht. Als Anwendungsfall wird im entsprechenden PR wird ein Authentifizierungsprozess beschrieben, an dessen Ende der Nutzer durch die via UrlSegment[] übergebenen Parameter zurück zur Startseite navigieren kann.

Update vom 15. August 2018

Angular 7.0.0-beta.2

Wie immer wurden auch die Beta-Releases von Angular 7 ab Version 0 durchnummeriert. Angular 7.0.0-beta.2 ist also schon die dritte Beta-Version von Angular 7. Das Release fällt allerdings klein aus: Nur zwei Bugfixes sind dieses Mal dabei. Bei einem handelt es sich um eine Änderung an Bazel. Hier wurde ein Type Mismatch im Zusammenhang mit devmode_js ausgebessert. Der zweite Bugfix findet sich im Service Worker. Bislang hat dieser die Einstellung Cache-Control: no-cache zwar erlaubt, bei ihrer Verwendung aber einen Fehler ausgegeben. Dieses Verhalten wurde nun angepasst, wie dem entsprechenden Pull Request zu entnehmen ist. Alle weiteren Informationen zu Angular 7.0.0-beta.2 können wir immer den Release Notes auf GitHub entnommen werden.



Update vom 9. August 2018

Angular 7.0.0-beta.1

Die zweite Beta-Version von Angular 7 ist da. Neu dabei ist das DoBootstrap-Interface. Ein solches Interface existiere bereits für alle anderen Lifecycle-Hooks, nicht aber für ngDoBootstrap, wie im entsprechenden Feature Request auf GitHub nachzulesen ist. Das führe bisher zu Linter-Warnungen, die mit Angular 7 wegfallen werden. Auch fehle ngDoBootstrap bislang in der Dokumentation. Das neue Interface biete hier einen Einstiegspunkt, um das Verhalten und die Verwendung zu dokumentieren.

Neben dem neuen Interface bringt das Beta-Release einige Bugfixes mit. Darunter sind je ein Bugfix am Compiler-CLI, am Router und am Core, sowie eins für ngfactory- und ngsummary-Files. Alle Neuerungen können wie immer auf GitHub nachgelesen werden.



Update vom 06. August 2018

Erste Betaversion von Angular 7 erschienen!

Während die aktuelle Version Angular 6.1 mit Angular 6.1.1 bereits eine Woche nach der großen Veröffentlichung ein kleines Bugfix-Update bekommen hat, ist endlich auch die erste Betaversion von Angular 7 erschienen, doch dazu gleich mehr. Das Bugfix beinhaltet lediglich ein Update für die tsickle Dependency, sodass TypeScript 2.9 unterstützt wird.

Angular 7.0.0-beta.0

Die erste Beta von Angular 7 bringt nicht viel Neues, allerdings sind das ja bekanntlich keine schlechten Nachrichten. Vier Bugfixes und ein neues Feature haben es in die Vorabversion geschafft, besonders der Compiler und das Kommandozeilenwerkzeug des Compilers standen im Fokus, aber auch ein Bug im Angular Core wurde gefixt.

Das neue Feature für den Compiler ist ein Update für die XMB-Platzhalter (<ph>), sodass nun der originale Wert zu dem Beispielwert hinzugefügt wird. Platzhalter können so ein Beispiel-Tag (<ex>) und einen Text-Node haben, wobei letzterer vom TC als „Originalwert“ des Platzhalters genutzt wird, das Beispiel hingegen stellt einen Dummy-Wert dar. Das folgende Beispiel stellt sicher, dass ein Originaltext vorhanden ist, kümmert sich aber nicht darum, ob das Beispiel korrekt ist.

<ph name="PET"><ex>Gopher</ex>{{ petName }}</ph>

Breaking Changes verursacht diese Änderung zum Glück nicht, aber Tools, die auf der vorherigen Verhaltensweise aufbauen, könnten eventuell nicht mehr den XMB parsen. Also aufgepasst!

In Sachen Bugfixes kann die Funktion compile_strategy nun auch endlich importiert werden und der Compiler ist nun in der Lage eingebettete Template-Funktionen zu „flatten“. Im Compiler CLI wurde realPath zu realpath korrigiert und Angular gibt ab sofort eine Fehlermeldung aus, wenn @Output nicht initialisiert wird.

Alle Informationen rund um die erste Betaversion von Angular 7 gibt es wie immer auf GitHub.



Update vom 26. Juli 2018

Angular 6.1 ist da!

Angular 6.1 ist erschienen. Das Minor-Release versammelt die Bugfixes und Erweiterungen der Vorversionen zu einem produktionsreifen Release.  67 behobene Fehler und ca. 20 neue Features wurden dabei umgesetzt.

Zu den Highlights gehört der Support für ShadowDOM v1, die Nutzung von async/await mit Jasmine und die Nutzung des EventManager-Plug-ins auf dem Server. Unterstützt wird TypeScript 2.9.

Beachten sollte man den Breaking Change, der ein Update auf Angular 6.1 mit sich bringt. Die Nutzung von @angular/bazel Rules benötigen nun den Aufruf von ng_setup_workspace() in der Workspace-Datei. Das Beispiel in den Release Notes sieht folgendermaßen aus:

local_repository(
    name = "angular",
    path = "node_modules/@angular/bazel",
)

load("@angular//:index.bzl", "ng_setup_workspace")

ng_setup_workspace()

Update vom 20. Juli 2018

Angular 6.1.0-rc.3

Acht Tage nach dem ersten Release Candidate von Angular 6.1 steht auf einmal Version 6.1.0-rc.3 bereit. Was ist denn da los? Angular 6.1.0-rc.1 und 6.1.0-rc.2 sind auf GitHub nicht zu finden. Das Changelog gibt aber doch Auskunft darüber, was es mit dieser Unregelmäßigkeit auf sich hat:

Note: the RC.1/2 releases on npm accidentally glitched-out midway, so we cut RC.3 instead. Sorry! 🙂

Das Angular-Team hat also keine drei Release Candidates in acht Tagen veröffentlicht, Entwickler haben nichts verpasst. Was ist nun aber neu in 6.1.0-rc.3? Vor allem an Bazel wurde gearbeitet, wie das Changelog zeigt. Dafür wurde eine erste Implementierung des Features protractor_web_test_suite vorgenommen. Außerdem wurde im Bereich des Routers die Option urlUpdateStrategy eingeführt. Damit kann die Browser-URL zu Beginn der Navigation aktualisiert werden. Weiterhin wurde erneut am Support für ShadowDOM v1, async/await in Jasmine und dem ? als Gobbling-Zeichen in der SW-Config gearbeitet.

Das Release umfasst außerdem zahlreiche Bugfixes, beispielsweise für den 18n_extractor im Compiler, der nun die richtigen Source-File-Namen ausgibt. Einen Überblick über die Neuerungen in Angular 6.1.0-rc.3 gibt wie immer das Changelog auf GitHub.

Angular 7 Roadmap
Angular 7 wird voraussichtlich im Herbst 2018 erscheinen. Das Team hinter Angular plant, alle sechs Monate eine neue Major-Version zu veröffentlichen; das entspräche einer Veröffentlichung von Angular 7 Anfang November. Ein genaues Releasedatum legt man inzwischen aber nicht mehr im Voraus fest, wie dem Angular-Guide zu entnehmen ist. Aus der Angular Roadmap 2018 ist allerdings bekannt, dass zu Version 7 beispielsweise der Ivy Renderer fertig gestellt werden soll, der in Angular 6 als Beta-Version verfügbar ist. Bevor Angular 7 bereit steht, wird es jedoch noch einige Updates für Angular 6 geben.

Update vom 12. Juli 2018

Angular 6.1.0-rc.0

Kurz nach Angular 6.0.8 ist nun das nächste Update für die noch in Arbeit befindliche Version Angular 6.1 erschienen. Mit Angular 6.1.0-rc.0 hat die erste Minor-Version von Angular 6 die Beta-Release-Phase verlassen. Der erste Release Candidate bringt zahlreiche Bugfixes und vier neue Features mit. Eins davon ist bereits aus Angular 6.0.8 bekannt: ShadowDOM v1 wird auch von Angular 6.1 unterstützt.

Angular 6.1 bringt außerdem Support für TypeScript 2.9 mit und im Bereich des Core wird nun die Verwendung von Async/Await mit Jasmine unterstützt. In der Config für Service Worker kann mit der neuen Version ? als Zeichen im Rahmen des Globbings von Dateinamen verwendet werden. ? kann als Platzhalter für ein Zeichen verwendet werden, wobei / ausgeschlossen ist.

Weitere Informationen zum Release sind im Changelog auf GitHub zusammengefasst.


Update vom 12. Juli 2018

Angular 6.0.8

Seit dem Erscheinen von Angular 6.1.0-beta.3 Ende Juni gab es keine neuen Beta-Releases mehr. Die Arbeit an Angular 6 geht aber weiter: Nun steht Angualr 6.0.8 zur Installation bereit. Dieses Release bringt acht Bugfixes und ein neues Feature mit. Zu den Bugfixes gehört einer, der das Verhalten beim Aufrunden von Sekunden korrigiert. Außerdem wird durch lookupResourceWithHash() nun kein Netzwerk-Request mehr ausgelöst und Code, der im Router eine Exception auslösen könnte, wird nun innerhalb der try/catch-Construction eingebettet, sodass Apps in diesem Fall nicht mehr abstürzen.

Angular 6.0.8 bringt außerdem ein neues Feature mit: Support für ShadowDOM v1. Dabei handelt es sich um eine neue ViewEncapsulation-Option, die mit .attachShadow({ mode: 'open' }) arbeitet. Das API ViewEncapsulation-API v0 bleibt jedoch unverändert, um Breaking Changes zu vermeiden. In Zukunft könnte das nun integrierte neue API v1 allerdings zur Deprecation von Version 0 führen.

Alle Informationen zum Release können dem Changelog auf GitHub entnommen werden.

International JavaScript Conference
Hans-Christian Otto

Testing React Applications

by Hans-Christian Otto (Suora GmbH)

Sebastian Witalec

Building a Robo-Army with Angular

by Sebastian Witalec (Progress)

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)


Update vom 28. Juni 2018

Angular 6.1.0-beta.2, also die dritte Beta-Version für Angular 6.1.0, erschien vor einer Woche und brachte nur wenig interessantes mit. Zwei Bugfixes vermeldet das Changelog, einer davon betrifft den Compiler. Gelöst wurde dort ein Problem mit Import Statements, die zuvor keinen . enthalten durften. Der zweite Bug betraf den Core und dort den Injector, der seit dem dritten Beta-Release nun korrekt mit dem @Self-Flag umgeht.

Welche Änderungen an 6.1.0-beta.3 vorgenommen wurden, kann dem Changelog hingegen nicht entnommen werden. Hier findet sich zwar ein Hinweis darauf, dass die neue Beta erschienen sei; Release Notes fehlen jedoch. Betrachtet man aber den unmittelbaren Vergleich der Commits zwischen der vorherigen und der neuen Beta-Version, zeigt sich, dass die Entwickler nicht untätig waren. Unter den 56 verzeichneten Commits finden sich erneut einige Neuerungen am Ivy Renderer, an dem zur Zeit offenbar besonders aktiv gearbeitet wird. Bearbeitet wurden dabei sowohl Bugs als auch ein neues Feature für Ivy:

  • ngInjectorDef generation in JIT and AOT (#24632)

Da der entsprechende PR geschlossen wurde, ist davon auszugehen, dass das neue Feature in der gegenwärtigen Beta verfügbar ist. Nähre Informationen zur neuen Beta sind dieses mal nicht über das Changelog verfügbar, sondern können dem Versionsvergleich zwischen Angular 6.1.0-beta.2 und 6.1.0-beta.3 entnommen werden.

Auf das Major Release von Angular 6 folgten erst einmal vier Bugfix-Releases. Angular 6.0.1 bis 6.0.4 lösen Probleme an verschiedenen Bereichen von Angular, darunter einige Bugs an Angular Animations sowie im Bereich der Service Worker. Nur einen Monat nach Erscheinen der neuen Major-Version steht außerdem Angular 6.1.0-beta.0 zur Verfügung und damit die erste Beta für das erste Minor-Release für Angular 6.


Update vom 14. Juni 2018

Angular 6.1.0-beta.1

Nur wenige Tage nach dem ersten Beta-Release von Angular 6.1.0 steht bereits die zweite Betaversion zum Download bereit. Unter dem Namen Angular 6.1.0-beta.1 kann das Update gefunden werden. Die neuen Features der Version umfassen dieses mal gleich vier Änderungen am Ivy Renderer. Nachdem zuletzt eher an den Animations gearbeitet wurde, steht jetzt also wieder Ivy im Fokus, das zu Version 7 final implementiert werden soll.

Zu den neuen Features am Ivy Renderer gehört der Support von SVG- und MathML-Elementen. Außerdem wurden Output Instructions für Attribute mit Namespacing von Elementen neu eingeführt. Das dritte neue Feature für den Ivy Renderer ist der Support für ApplicationRef.bootstrapModuleFactory, beim vierten handelt es sich um eine neues Utility für den Aufruf von TS ASTs, das synnthetische Nodes unmittelbar vor bestimmten Arten von Nodes einsetzen kann.

Weitere neue Features in Angular 6.1.0-beta.1 betreffen den Core und den Router. Für den Router wurde ein Scrolling Restoration Service implementiert, der Core hat zwei neue Features bekommen. Ein weiteres neues Feature ist die Einführung von KeyValuePipe. Einen Überblick über alle Neuerungen und die Bugfixes im Release gibt es wie immer im Changelog auf GitHub.


Originalbeitrag vom 14. Juni 2018

Angular 6.1.0-beta.0

Auch die nun erschienene Beta-Version von Angular 6.1 bringt zuerst einmal zahlreiche Problemlösungen mit und fasst die Bugfixes zusammen, die in den vorherigen Releases vorgenommen wurden. Darunter ist beispielsweise ein Fix für das Segment-Parsing im Router, das in Version 6 kein Ampersand verarbeiten konnte. Angular 6 brachte im Bereich der Animationen außerdem einen Bug mit, der die Unterscheidung von Browser- und Serverumgebungen gestört hat. Dieser wurde inzwischen behoben. Einen Überblick über alle Bugfixes in Angular 6.1.0-beta.0 gibt es im Changelog auf GitHub.

Außerdem stellt das Changelog die neuen Features vor, die mit der Beta-Version eingeführt werden. Insgesamt bringt das Release sechs neue Features mit. Eine davon betrifft  Mock Compiler Expectations, die nun Kommentare mit // ... und // TODO unterstützen. Für das Compiler-CLI wurde tsickle auf Version 0.29.x gesetzt. Für den Bereich Platform-Browser ist nun Lazy-Loading von HammerJS möglich, dafür wurden außerdem die entsprechenden Symbole zum Public API hinzugefügt. Daneben kann das EventManagerPlugin in der neuen Version auf dem Server genutzt werden. Dem Router wurden eine Navigation Execution Context Info für Activation Hooks hinzugefügt.

Geschrieben von
Ann-Cathrin Klose
Ann-Cathrin Klose
Ann-Cathrin Klose hat allgemeine Sprachwissenschaft, Geschichte und Philosophie an der Johannes Gutenberg-Universität Mainz studiert. Bereits seit Februar 2015 arbeitete sie als redaktionelle Assistentin bei Software & Support Media und ist seit Oktober 2017 Redakteurin. Zuvor war sie als freie Autorin tätig, ihre ersten redaktionellen Erfahrungen hat sie bei einer Tageszeitung gesammelt.
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: