Une nouvelle mise à jour de Backbone.js, l'un des frameworks front-end les plus utilisés de la communauté JavaScript, est sorti la semaine dernière. Bien que cela ne corresponde pas à une modification significative du numéro de version, les rapports de certains utilisateurs indiquent que certains changements peuvent entraîner une incompatibilité avec des applications de la version 1.0.
Quoi de nouveau dans la version 1.1.0 ?
Cette récente mise à jour est sortie le 10 octobre et ne comprend aucune nouvelle fonctionnalité. Cette mise à jour est plutôt axée sur ce que le créateur de Backbone.js, Jeremy Ashkenas, décrit comme "6 mois d'importants travaux de rationalisation interne". Pourtant, en dehors des améliorations du code sous-jacent, Backbone.js 1.1.0 inclut bel et bien des changements au niveau de l'API, détaillés dans le journal de modification, tels que :
- Les valeurs de retour des méthodes "set" "add", "remove" et "reset" de Backbone Collection retournent maintenant le modèle modifié ou la liste des modèles.
- Backbone Views n'attache plus automatiquement les options passées au constructeur à this.options.
- Tous les évènements "invalides" passent maintenant des arguments cohérents, qui sont : le modèle en question, l'objet de l'erreur et les options.
- L'identifiant de votre modèle ne peut plus être modifié pendant le parsing, le idAttribute est censé être utilisé à la place.
Le reste des modifications est décrit comme "des réglages, des optimisations et des corrections de bugs sur des fonctionnalités de la version 1.0 de Backbone, dont la surcharge des URLs, la mutation des options, les opérations en masse, les slash en bout de chaine, les fuites du listener dans certains cas particuliers, le parsing du modèle imbriqué" et quelques autres.
Rapports d'incompatibilité
Bien que la majorité des commentaires concernant la nouvelle version aient été jusque-là positifs, il y a eu quelques réactions négatives. D'après des commentaires sur Twitter, certains utilisateurs semblent avoir été pris de court par des incompatibilités entre cette version mineure et la version majeure 1.0, causées par certaines des modifications de l'API détaillées ci-dessus. Chris Wren se pose la question :
"Donc Backbone ne suit pas un versioning sémantique ? Je pensais que des modifications avec rupture de compatibilité signifiaient une version 2.0.”
Des critiques similaires sont apparues dans d'autres commentaires. Les plaintes sur l’incompatibilité du noyau semblent tourner autour des changements des Backbone Views, comme l'illustre le tweet de Christian Hammond :
"Backbone.js 1.1.0 apporte quelques changements très profonds à la construction des vues pour le parsing des options. D'importants changements incompatibles. Je ne comprends pas.”
Évidemment, il est supposé que la majorité des utilisateurs devra faire des tests avant de faire la mise à jour, mais il est important de garder à l'esprit la nature de ces changements de manière à être au courant des incompatibilités potentielles.