The Angular 2 Router Debacle

For my upcoming Angular 2 Workshop at the DigiComp DevDays I did some research about the sad history of routing in Angular:
Date | Event |
---|---|
April 2014 | The New Router prototype for Angular 1.4 & Angular 2 is created (github) |
December 2014 | Angular 1.4 was announced containing the New Router |
May 2015 | Angular 1.4 is released without the New Router. The router project is rebranded to Component Router and postponed to Angular 1.5. There are already tutorials for the New Router floating on the internet. |
June 2015 | The New Router repository is deprecated. Sources are merged into Angular 2. |
2015 | Beta versions of Angular 2 are released with the Component Router |
February 2016 | Angular 1.5 is released but the Component Router is not part of it |
March 2016 | The Component Router for Angular 1.5 is released (official docs) |
May 2016 | The Component Router for Angular 2 is deprecated. The Release Candidate of Angular 2 contains a new Router 2.0 with major API changes/breaks |
June 2016 | The Router 2.0 is deprecated, Router 3.0 is announced (major API changes) |
June 2016 | Angular 2 RC2 released, still with Router 2.0 |
June 2016 | Component Router for Angular 1.5 is deprecated (official docs) |
This is not meant as a critique for the Angular team. Their goal is to create a great framework and fortunately they are not afraid to do major rework if they think it improves the final product.
But the above chronology shows the state of current open-source/release-early-and-often based development models. According to the angular team “Developers all over the world are building production Angular applications today with RC1.”. Major deprecations are quite painful for those projects …
Of course it is a risky choice for any developers to use a framework that was not yet released as version 1.0. But I would argue, that most developers were not expecting such major deprecations at least after the release candidate.
Beim Arbeiten mit #Rails5 und #Angular2 merkt man, dass unter «Beta» und «Release Candidate» nicht alle das gleiche verstehen.
— Mathis Hofer (@drhupf) May 11, 2016
@jbandi large scale deprecating changes are not consistent with my understanding of 'release candidate' 😠
— Wayne Maurer (@waynemaurer) June 18, 2016
Even more projects are based on AngularJS and I bet some of them started migrating to the Component Router once it was officially released. I think it’s not clear how they should deal with the situation now …