Angular wird 10!

Auf dem Weg zu Angular 10: RC.6 ist da
Keine Kommentare

Kurz nach RC.5 steht nun auch schon RC.6 bereit. Der neuste Release Candidate von Angular 10 bringt eine Neuerung für Bazel mit.

Angular 9 ist da! Das Release ist mit starker Verzögerung doch noch fertig geworden. Mit dabei ist Ivy, der neue Compiler von Angular, der eine der größten Neuerungen in der Geschichte des Frameworks darstellt. Damit können nun deutlich kleinere Bundles erzeugt werden. Aber nicht nur das ist möglich. Ivy bietet auch großes Potenzial für die Zukunft von Angular. Wohin die Reise gehen könnte, erklärt Manfred Steyer in diesem Talk von der iJS München 2019. Wie genau es weiter geht, werden aber erst die Minor Releases von Angular 9 und schlussendlich Angular 10 zeigen.

Angular 10: Die Release Candidates

Angular 10.0.0-rc.6

Update vom 16. Juni 2020

Und schon geht es weiter: Angular 10.0.0-rc.6 ist da. Der neue Release Candidate bringt eine Feature-Änderung an Bazel mit. Künftig können Entwicklungs-Tools, die Inputs aus dem Production- in den DevMode übersetzen müssen, auf die expliziten Mappings zurückgreifen, um Dateinamen auszulesen. Diese Änderung greift laut Pull Request dem allgemeinen Update der TypeScript Build Rules voraus, die künftig insgesamt das Lesen derartiger Daten erlauben sollen.

Außerdem bringt der neue Release Candidate natürlich wieder einige Bugfixes mit, die im Changelog auf GitHub nachgelesen werden können.


Angular 10.0.0-rc.4 & rc.5

Update vom 15. Juni 2020

Gleich zwei neue Release Candidates von Angular 10 stehen bereit. Mit Angular 10.0.0-rc.4 und rc.5 sind zwei Feature-Änderungen am Language-Service ausgeliefert worden. Bei der ersten geht es um den Abruf von TS-Referenzen, die nun über den Language Service möglich ist. Die zweite Neuerung am Language-Service betrifft die Auto-Vervollständigung von HTML-Entities. Diese wurde nun entfernt. Wie dem Pull Request zu dieser Neuerung zu entnehmen ist, sei diese Art von Vervollständigung für HTML keine Kern-Funktion von des Angular Lanuguage-Service, habe aber Einfluss auf die Performance. Der Anwender müsse außerdem zuerst wissen, welche Entity verwendet werden soll, bevor die Vervollständigung funktioniert, sodass dies wenig Mehrwert habe.

Zur Verbesserung der Performance von Angular wurde außerdem daran gearbeitet, welche Art von Code in welchem Kontext gezogen wird. So soll der Core in Zukunft keinen JIT-spezifischen Code mehr in AOT-Bundles ziehen.

Weitere Informationen können wie immer dem Changelog auf GitHub entnommen werden.


Angular 10.0.0-rc.3

Update vom 9. Juni 2020

Ein weiterer Release Candidate von Angular 10 steht bereit. RC.3 bringt ein neues Feature, zwei Performance-Verbesserungen und eine ganze Reihe von Bugfixes mit. Das hinzugekommene Feature gehört zum Ngcc-Compiler. Dort wurde ein neuer EntryPointFinder eingeführt, der mit den Imports eines Programms gestartet werden kann, das in der tsconfig.json spezifiziert wurde. Auch die Verbesserungen an der Performance betreffen Ngcc: Wenn ein Ngcc-Prozess beendet wird, ohne dabei das Lock File zu löschen, wurde bislang über einen recht langen Zeitraum hinweg darauf gewartet, dass der Prozess fortgesetzt wird. Das hat sich nun geändert. Der Code, auf den gewartet werden soll, wird nun aktualisiert und kann prüfen, ob der entsprechende Prozess existiert. Außerdem kann Ngcc nun eine geparsede Version der tsconfig über das Ende eines Runs hinaus im Cache vorhalten, wenn der Dateipfad sich nicht verändert.

Weitere Informationen können wie immer dem Changelog auf GitHub entnommen werden.


Angular 10.0.0-rc.2

Update vom 2. Juni 2020
Auf 0 folgt gleich 2: Der nächste Release Candidate für Angular 10 steht bereit. Versioniert wurde er jedoch nicht mit der Nummer .1, wie es üblich wäre. Ein Fehler beim Veröffentlichen der Version auf npm führte dazu, dass eine neue Versionsnummer vergeben werden musste. Darum heißt der zweite Release Candidate nun Angular 10.0.0-rc.2.

Geändert hat sich im Release nicht viel. Die eine Neuerung, die das Changelog auf GitHub anführt, betrifft erneut den Closure Compiler, der mit RC.0 entfernt worden war. Diese Änderung hatte einen Fehler im Handling von __decorate und __metadata Calls offenbart, der sich unter anderem auf Angular Material auswirkte. Um das Problem zu lösen, wurde die Änderung aus RC.0 teilweise rückgängig gemacht, sodass für Decorators für die Verwendung in den npm-Paketen von Angular nun wieder in Static Fields umgewandelt werden.


Angular 10.0.0-rc.0

Update vom 25. Mai 2020

Bei Angular 10 tut sich was: Der erste Release Candidate ist da! Obwohl die Version wohl insgesamt mit weniger weitreichenden Änderungen auskommen wird als ihr Vorgänge, bringt v10.0.0-rc.0 doch noch einmal einen Breaking Change mit: Die offiziellen npm-Packages von Angular werden keine jsdoc-Kommentare für den Support des Closure Compilers mehr enthalten. Wie den Release Notes zu entnehmen ist, war der Support eh nie über den experimentellen Status hinaus gekommen und funktionierte bereits seit einer Weile nicht mehr korrekt. Mit TypeScript 3.9 könne Closure nun außerdem grundlegend nicht mehr mit dem ausgegebenen Code genutzt werden, sodass der Support beendet werden musste. Wer bisher damit gearbeitet hat, findet in den Release Notes Hinweise dazu, wie die entstehenden Probleme gelöst werden können.

Darüber hinaus bringt der Release Candidate einige Bugfixes mit. Mit dem RC-Release stellt sich auch die Frage, wann Angular 10 denn final erscheinen wird. Obwohl das finale Release-Datum der Version natürlich wie immer ungenannt bleibt, lässt der Release Candidate doch vermuten, dass die neue Version noch im Sommer erscheint. Der Release-Zyklus von Angular hatte sich durch die Verzögerungen in der Entwicklung von v9 deutlich gegenüber dem ursprünglichen Plan nach hinten verschoben. Die vergleichsweise kleine v10-Veröffentlichung könnte somit dazu dienen, wieder in den Rhythmus zu kommen. Da kleinere Major Releases von Angular in der Vergangenheit durchaus bereits mit wenigen RC-Versionen auskamen, wäre sogar eine Veröffentlichung im Juni denkbar, wie bereits Frühjahr von Insidern angenommen worden war.


Angular 10: Die Next-Versionen

Angular 10.0.0-next.9

Update vom 20. Mai 2020

Manche Next-Versionen bringt große Neuerungen mit, manche beheben nur Probleme, die ein vorheriges Release eingeführt hat. So ist es mit Angular 10.0.0-next.9, das nur einen Tag nach Next.8 erschienen ist. Im neusten Next-Build sind nur zwei Bugfixes enthalten. Nachdem mit vNext.6 eine Neuerung an FileSystem ausgerollt wurde, das jetzt Case-Sensitive ist, ist dort nun nachjustiert worden. Die vorgenommene Änderung war zu weit gegangen, wie dem entsprechenden Pull Request zu entnehmen ist. In der Verarbeitung logischer Pfade waren Schwierigkeiten aufgekommen, sodass hier nun ein Bugfix implementiert wurde, der bei Pfaden dafür sorgt, dass die ursprüngliche Version beibehalten wird. Der zweite Bugfix in der Version bezieht sich auf ein Problem, das viel älter zu sein scheint. Bereits 2016 hatte routerLink Support für die Types null und undefined erhalten. Der Type des Parameters war allerdings nicht entsprechend aktualisiert worden. Das hat man jetzt nachgeholt, sodass die damit aufgetretenen Probleme nun behoben sein sollten.

Weitere Informationen können wie immer dem Changelog entnommen werden.


Angular 10.0.0-next.8

Update vom 19. Mai 2020

Wer damit gerechnet hat, Angular 10 mit TypeScript 3.8 verwenden zu können, muss sich noch einmal umstellen. Kurz nach dem Upgrade auf diese Version ist sie schon wieder obsolet. Google zieht mit dem Release von TypeScript 3.9 in der letzten Woche gleich und aktualisiert Angular direkt noch einmal. In Angular 10.0.0-next.8 ist das Update auf TypeScript 3.9 enthalten. Das ist der einzige Breaking Change an der Next-Version. Natürlich gilt mit dem Update nämlich wie immer, dass ältere Versionen der Sprache nicht mehr unterstützt werden.

Ein neues Feature bringt Angular 10.0.0-next.8 außerdem für den Platform-Server mit. Requests vom Server, die keine vollständige URL enthalten, sind bisher fehlgeschlagen, weil der Fallback-Mechanismus fehlte. Dieser wurde nun ergänzt. Wenn möglich, zieht der Server die vollständige URL für Requests nun aus dem document.location-Objekt.

In der vergangenen Woche ist außerdem v10.0.0-next.7 erschienen. Das ModuleWithProviders-Pattern muss nun in jedem Fall mit einem Generic Type Parameter verwendet werden, bislang war das nur mit Ivy der Fall, nicht aber bei Verwendung von View Engine. Wenn Angular 10 mit View Engine verwendet wird und kein Generic für ModuleWithProviders vorhanden ist, kann eine automatische Migration das Generic in vielen Fällen ergänzen. Werden Libraries für die Ausgabe von Generic Types genutzt, kann es jedoch zu Fehlern kommen. Weitere Informationen dazu können im Changelog auf GitHub gefunden werden.


Angular 10.0.0-next.6

Update vom 8. Mai 2020

Angular 10.0.0-next.6 steht zum Test bereit. Das Update bringt erneut neue Features und Performance-Verbesserungen sowie Bugfixes mit. Am wichtigsten dürften aber die Breaking Changes sein, die vor allem für Projekte von Bedeutung sind, die noch mit älteren Sprach- und Toolversionen arbeiten. Angular 10 wird ESM5 und FESM5 nicht mehr standardmäßig mit in den npm-Packages ausliefern. Mit dem Angular CLI kann für das Differential Loading aber trotzdem weiterhin automatisch ein ES5-Package erzeugt werden. Wer jedoch ohne CLI arbeitet und eine ES5-Version des Codes benötigt, muss die Anpassungen in Zukunft manuell vornehmen. Ein umfassender Breaking Change betrifft das change-Event in den Forms. Number Inputs reagieren nicht mehr auf das Event, sodass Tests, die über das change-Event ausgeführt werden, nun auf das input-Event aktualisiert werden müssen. Das betreffe vor allem Anwendungen, die weiterhin einen Support für den IE9 anbieten sollen, sowie Code, der mit einer alten Version von WebDriver arbeiten. Details zu den jeweils notwendigen manuellen Anpassungen können dem Changelog auf GitHub entnommen werden.

Darüber hinaus entfällt der Support für TypeScript 3.6 und 3.7, sodass ab dieser Next-Version v3.8 vorausgesetzt wird. Als neues Feature am Compiler-CLI ist eine neue Fehlermeldung im Release dabei, die undecorated Classes mit Angular-Features meldet. Zur Performance-Verbesserung hat das Angular-Team am Type-Checking gearbeitet, das nun für Templates inkrementell durchgeführt wird. Ivy unterteilt die Templates dafür in mehrere Dateien.

Weitere Informationen sind auf GitHub zu finden.


Angular 10.0.0-next.5

Update vom 6. Mai 2020

Angular 10.0.0-next.5 bringt Breaking Changes für die kommende Major-Version mit. So werden Warnungen über unbekannte Elemente nun als Fehler in console.log aufgezeichnet. Laut Changelog zum Release sei das kein Breaking Change, der zu Problemen mit der Anwendung an sich führen könne. Allerdings könnten Probleme mit Tools auftreten, die dieses Verhalten nicht erwarten. Auch am Router gibt es eine Neuerung im Release, die als Breaking Change geführt wird: Wenn ein Resolver EMPTY ausgibt, wird die Navigation nun abgebrochen. Verändert hat sich außerdem die Verarbeitung von Vary-Headern in Service-Workern. Das betrifft den Abruf von Ressourcen aus dem Cache, wobei die Header jetzt ignoriert werden. Der letzte Breaking Change in vNext.5 betrifft die Change Detection, deren Verhalten an zwei Stellen angepasst wurde.

Zu den neuen Features in vNext.5 gehört, dass Angular Localize nun mehrere Übersetzungs-Dateien pro Locale akzeptiert. Wenn mehr als eine Datei für ein Locale zur Verfügung gestellt wird, werden diese von Angular zusammengeführt. Weitere Informationen zu diesen und allen weiteren Neuerungen am Release können dem Changelog entnommen werden.


Angular 10.0.0-next.4

Update vom 30. April 2020

Angular 10.0.0-next.4 bringt ein neues Feature und eine Reihe von Bugfixes mit. Das Pre-Release bleibt damit kleiner als die vorherigen. Als neues Feature führt das Changelog auf GitHub eine Änderung am Router auf: CanLoad-Guards können nun UrlTrees zurückgeben. Dadurch wird die jeweils aktuell verwendete Navigation abgebrochen und ein Redirect durchgeführt. Unter den Bugfixes findet sich außerdem eine Änderung am Compiler. Dort werden Zeilenenden nun auch für ICU-Erweiterungen normalisiert, also beispielsweise \r\n zu \n geändert. Das Verhalten an sich ist nicht neu, sondern wurde bereits weitreichend angewendet. ICU-Erweiterungen sind bislang aber nicht angepasst worden. Dadurch traten Fehler bei der Verarbeitung von i18n-Messages auf, da deren ID abhängig vom Zeilenende unterschiedlich interpretiert wurde. Weitere Bugfixes wurden am Core, dem Language-Service, Localize und Ngcc vorgenommen.


Angular 10.0.0-next.3

Update vom 23. April 2020

Angular 10.0.0-next.3 bringt einen Breaking Change mit. Die bereits vierte Next-Version für Angular 10 ändert die Formatierung der Angabe von Zeiträumen, die über Mitternacht hinaus reichen. Bisher wurde bei Verwendung der Formatierung b oder B für solche Zeitangaben standardmäßig die Zeitangabe AM verwendet, was für die Zeiten vor Mitternacht einen Fehler darstellte. Die Logik wurde nun aktualisiert und gibt entsprechend an, dass es sich um Zeiten in der Nacht handelt. Wer formatDate(), DatePipe oder b bzw B verwendet, muss seinen Code entsprechend anpassen.

Außerdem bringt die Next-Version wie immer eine Reihe von Bugfixes mit, die im Changelog nachgelesen werden können.


Angular 10.0.0-next.2

Update vom 16. April 2020

In Angular 10.0.0-next.2 geht es um die Performance. Neben einer Reihe von Bugfixes bringt das Pre-Release eine wichtige Neuerung mit, die den abwärtskompatiblen Compiler Ngcc schneller werden lässt. So werden Dependencies nun im Entry-Point-Manifest vorgehalten und von dort ausgelesen, statt sie bei jedem Aufruf erneut zu verarbeiten. Dadurch soll vermieden werden, dass nicht benötigte Dependencies wiederholt verarbeitet werden, da das vor allem bei großen Node-Files lange gedauert habe.

Auch bei den Bugfixes sind in dieser Version einige Änderungen für Ngcc dabei. So wird Ngcc nun verlässlich beendet, wenn ein Fehler auftritt. Zuvor hatte es damit Schwierigkeiten gegeben. Das Team vermutet, dass dies mit dem Handling von Async/Await-Promises zusammenhing.

Wie immer können alle Änderungen im Changelog auf GitHub eingesehen werden.


Angular 10.0.0-next.0 & next.1

Update vom 9. April 2020

Die ersten Next-Versionen von Angular 10 sind da. Mit dem Release von next.0 und next.1 hat das Angular-Team die Ankündigung wahr gemacht, nicht weiter an Minor-Versionen von Angular 9 arbeiten zu wollen. Stattdessen hat nun die Arbeit am kommenden Major Release begonnen. Angular 10.0.0-next.0 bringt eine ganze Reihe von Bugfixes, vier Features und den ersten Breaking Change für v10 mit. Der Breaking Change findet sich im Router und ist vor allem für Entwickler relevant, die eine eigene Router- oder Recognizer-Klasse implementiert haben. Der Type von UrlMatcher wurde dahingehend verändert, dass nun immer auch die Ausgabe des Werts null möglich ist. Von den vier neuen Features im Release entfallen zwei auf den Compiler. Den Metadaten sind dort nun Dependency-Infos und Ng-Content-Selectors hinzugefügt worden. Das zweite neue Feature für den Compiler ist, dass der Value Span von ExpressionBinding jetzt an ParsedProperty übertragen wird. Die anderen beiden Features im Release gehören zum Service Worker und Core. Details dazu können wie immer im Changelog auf GitHub gefunden werden.

Angular 10.0.0-next.1 bringt Neuerungen mit, die nicht direkt im Code stattfinden. Das zeitgleich mit next.0 veröffentlichte Release nimmt Verbesserungen an der API-Dokumentation vor.

Angular 9: Die Minor-Versionen

Angular 9.1 veröffentlicht

Update vom 26. März 2020

Angular 9.1 ist da. Das Minor Release soll das einzige für Angular 9 bleiben: Das Team hinter dem Framework will sich nun unmittelbar der Entwicklung von Version 10 widmen. Nachdem Angular 9 ja mit großer Verspätung gegenüber dem eigentlich geplanten Release Date erschienen ist, blieb unklar, wann mit Angular 10 zu rechnen sein könnte. Bereits vor dem finalen Release von v9 waren Gerüchte aufgekommen, dass die Version sogar übersprungen werden könnte, um im regulären Release-Plan zu bleiben. Somit wäre Angular 10 im Frühjahr erschienen. Tatsächlich ist Angular 9 jetzt aber ja da, sodass diese Theorie vom Tisch ist. Angular 10 könnte jedoch bereits im frühen Sommer fertig werden, wie aus Insiderkreisen zu vernehmen ist. Ein Release-Datum steht jedoch noch nicht fest. Stephen Fluin kündigt im Blogpost zum Release von Angular 9.1 nun aber an, dass ab sofort jede Woche mit einem Pre-Release von Angular 10 gerechnet werden könne. Die Änderungen darin werden allerdings erst einmal klein ausfallen.

Die erste und wohl einzige Minor-Version von Angular 9, v9.1, soll die Build-Zeit von Ngcc verringern. Zu diesem Zweck wird das Compiling von Library-Dependencies nun parallel durchgeführt, statt auf ein sequenzielles Vorgehen zu setzen. Der Support für TypeScript 3.8 macht unter anderem Top-level Await in Angular 9.1 verwendbar, außerdem steht eine neue Option für den Component Generator im CLI zur Verfügung: Mit displayBlock kann die Block-Darstellung für Komponenten nun zum Standard gemacht und über angular.json oder das entsprechende Schematics sogar automatisch aktiviert werden:

ng config schematics.@schematics/angular:component.displayBlock true

Neuerungen gibt es auch für End-to-End-Tests mit Protractor und das Syntax-Highlighting, das in VS Code über die Language Service Extension zur Verfügung steht. Alle Informationen zum Release stehen dieses Mal nicht nur im bekannten Changelog auf GitHub zur Verfügung, sondern werden im Detail im entsprechenden Blogpost vorgestellt.


Angular 9.1.0-rc.0 & rc.1

Update vom 24. März 2020

Die ersten beiden Release Candidates für Angular 9.1 stehen bereit. Damit dürfte das Minor Release bald fertig sein und Angular 9 das erste größere Update erhalten. Die neuen Features sind natürlich bereits aus den Next-Versionen bekannt: Ein Update auf TypeScript 3.8, Verbesserungen am Ngcc und Ivy, sowie der Right-to-Left (RT) Support für Locale-Infos in i18n. Im zweiten Release Candidate ist außerdem ein Workaround für einen Bug in Terser enthalten, der zu fehlschlagenden Production Tests mit dem JIT-Compiler im CLI führte. Für die Localization wurde ein Bug behoben, der ICU betrifft. Expansion Cases dürfen dafür nun mit jedem Zeichen außer } beginnen.

Weitere Informationen können wir immer dem Changelog auf GitHub entnommen werden.


Angular 9.1.0-next.4 & next.5

Update vom 19. März 2020

Die Arbeit an Angular geht trotz Corona-Krise weiter. Mit der in der vergangenen Woche erschienenen Version Next.4 hat Angular 9.1 ein Upgrade auf TypeScript 3.8 erhalten. Außerdem wurde am Directory Traversing in Ngcc gearbeitet. Damit soll der Kompatibilitäts-Compiler nun schneller geworden sein. In Next.5, das gestern veröffentlicht wurde, sind gleich fünf solcher Performance-Verbesserungen für Ngcc enthalten. Vor allem geht es, wie schon in einigen vorherigen Builds, um das Source Map Flattening: SegmentMarkers werden nun verlinkt und ihre Position wird gespeichert, um den Bedarf an Berechnungen zu reduzieren. Außerdem bringt Angular 9.1.0-next.5 einige Neuerungen auf Feature-Ebene mit, die sowohl Bazel als auch Ivy und Ngcc, sowie den Language Service betreffen. Neu am Compiler ist unter anderem die Integration von sourceSpan und keySpan in TemplateBinding. Dadurch soll die Genauigkeit der Autocomplete-Vorschläge des Language Service verbessert werden.

Weitere Informationen zu den Next-Versionen können wie immer im Changelog auf GitHub gefunden werden.


Angular 9.1.0-next.3

Update vom 10. März 2020

Inzwischen stehen vier Next-Versionen von Angular 9.1 bereit, die jeweils einige Neuerungen mitbringen. Es geht natürlich dort weiter, wo Angular 9 aufgehört hatte: Ngcc, der Kompatibilitäts-Compiler wird verbessert. Seit dem zweiten Next-Release werden asynchrone Prozesse in Ngcc pausiert, wenn das Lockfile von einem anderen Prozess verwendet wird. In der nachfolgenden Version, Angular 9.1.0-next.2, wurde außerdem daran gearbeitet, wie Ngcc Source Maps verarbeitet. Source Maps können nun zusammengefasst werden. Ein Fokus liegt im Moment außerdem auf zone.js. Nachdem bereits Next.2 mehrere Neuerungen dafür im Gepäck hatte, bringt auch Nex.t 3 wieder eine Änderung für zone.js mit: Die zone-Configuration ist dem TypeScript-Interface hinzugefügt worden.

Alle Informationen zu den Next-Versionen von Angular 9.1 können dem Changelog auf GitHub entnommen werden.


Angular 9.1.0-next.0

Update vom 14. Februar 2020

Kurz vor dem Valentinstag hat das Angular-Team die erste Test-Version für das erste Minor Release von Angular 9 veröffentlicht. In v9.1.0-next.0 wurden vor allem Bugs behoben, die nach dem Release von Angular 9 gefunden wurden. Auch ein neues Feature ist aber dabei, das den Weg für die zukünftige Entwicklung von Angular ebnen soll. Die Tsc-Compiler-Implementierung im Compiler-CLI wurden nun mit NgTscPlugin als Plug-in vorgenommen. Damit soll in Zukunft die Integration von ts_library möglich werden. Details können wie immer im bekannten Changelog auf GitHub gefunden werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -