CakePHP n'est pas mort !
Vous n’avez pas pû passer à côté des tweets et articles de blogs à propos des récents mouvements au sein de la communauté CakePHP … si c’est le cas, il est temps de vous rattraper !
En quelques mots, le projet développé en secret et publié sous le nom initial de “Cake3″ (ce qui a été source de mésententes au sein de l’équipe) a donné lieu à un nouveau framework dont le site à ouvert récemment : Lithium. Ce n’est pas à proprement parler un fork de CakePHP au niveau code, vu que tout a été ré-écrit de zéro … mais les contributeurs sont communs ! J’ai pu voir des questions d’utilisateurs ayant peur de la fin de CakePHP, et cela me fait plutôt sourire : un si gros projet ne s’arrêtera pas si facilement surtout vu le nombre d’utilisateurs actuels, la volonté de ceux-ci et les contributeurs qui pensent plus que jamais au futur.
Je vous propose donc un petit résumé des évènements, afin de montrer en quoi cette séparation permettra à CakePHP de repartir de plus belle dans son développement.
Rapide historique
CakePHP a été créé en Mai 2005 par Michal Tatarynowicz qui a rapidement quitté le projet par manque de confiance en celui-ci ! C’est donc Larry Masters, qui était parti dans l’aventure avec Michal qui reprend la direction du projet. Rapidement, il est rejoint par Garrett Woodworth (aka gwoo) et Nate Abele.
En 2008, afin de se consacrer à sa société CakeDC et afin de différencier clairement l’aspect open source / business Larry Masters prend du recul pour ne redevenir “que” contributeur. Nate et Garrett deviennent alors respectivement lead developer et project manager de CakePHP, la version 1.2 du framework est en cours de développement.
Un an plus tard (en Juillet 2009), un projet tenu secret est annoncé lors du 3ème Cakefest : un code expérimental nommé Cake3, réécriture complète du framework afin de tester l’intégration de nouvelles fonctionnalités apportées par PHP5.3. C’est au mois d’Octobre que Garrett annoncera qu’il quitte la fondation, suivi de quelques jours par Nate le lendemain de la ZendCon où il représentait le projet CakePHP. Tous deux annoncent le projet Lithium, dont le site a ouvert le 29 Octobre : http://li3.rad-dev.org/.
C’est donc Larry Masters qui reprend la tête de la fondation et la supervision de la roadmap du projet, comme durant les 3 premières années de CakePHP. De plus il n’y a aucun changement au niveau des versions en cours de développement ! Mark Story continue à faire de magnifiques choses pour la version 1.3 de CakePHP, et Graham Weldon (aka Predominant) reste responsable (avec Larry) du développement de CakePHP2.0 (version full PHP5 du framework).
De nombreux autres contributeurs ont intégré l’équipe au fil des années, et au jour d’aujourd’hui (4 ans plus tard) 30 contributeurs ont défilé au sein de la core team ! Ce n’est donc pas une première dans la vie du projet, ni dans la vie d’un projet open source.
Que s’est-il passé ?
Je ne vais pas entrer dans les détails, mais il faut simplement savoir que le code de Cake3 (Lithium) a initialement été développé par Nate Abele en secret, alors qu’il était lead developer de CakePHP. Il a ensuite ouvert son projet à d’autres membres de la core team, toujours sans en informer le reste de l’équipe. Ce n’est qu’à quelques semaines de Cakefest #3 que toute l’équipe de développement a eu vent de ce projet.
Ensuite, c’est une histoire de communication : le projet a été annoncé (à tort et de manière maladroite) comme le futur de CakePHP, alors que celà n’était vu par l’équipe que comme un projet expérimental. A partir de ce moment, le fork était la meilleure solution pour les deux parties.
Du côté de Lithium, il y avait de grandes espérances sur le framework et des idées en totale rupture avec le framework CakePHP actuel (réécriture totale du code notamment, avec un remaniement de toute l’API, l’organisation des fichiers …). De plus le projet s’adresse principalement aux développeurs “à la pointe de la technologie”, en utilisant au maximum les fonctionnalités apportées par PHP 5.3.
Du côté de CakePHP, ce code s’éloignait trop de la base actuelle et la possibilité de backporter du code de l’un à l’autre diminuait jour après jour. De plus, du très bon travail était déjà en cours sur les versions 1.3 et 2.0 … qui seraient rendues caduques avec ce nouveau code. Enfin, CakePHP a également une très grande communauté d’utilisateurs qui utilisent le framework dans un cadre professionnel, et se doit donc de diminuer au maximum les changements d’API entre chaque nouvelle version.
L’open source est heureusement où ce genre de conflits peuvent se résoudre “simplement” par la création d’un nouveau projet. Ainsi a été lancé Lithium, un nouveau projet qui vivra sa vie et a des contributeurs communs à ceux de CakePHP … mais qui au final n’est qu’un framework supplémentaire très inspiré par Rails
Qu’est-ce que cela change ?
RIEN … ou presque
Suite à cette annonce, de nombreuses personnes (souvent assez éloignées des réalités et trompées par les annonces) ont eu peur de voir la mort du framework qu’ils utilisent depuis plusieurs années. En effet, si l’on ne connait pas très bien le projet l’annonce des départs du “lead developer et project manager” du projet peut faire peur. Je n’irai pas jusqu’à dire que c’est une bonne chose, au contraire le travail réalisé par Nate et Garrett pour CakePHP depuis toutes ces années est tout simplement merveilleux … et c’est dommage de les voir quitter l’aventure. Néanmoins c’est comme je l’ai dit une bonne chose au vu de la tension qui s’était installé au sein de la core team.
Autrement (comme je l’ai expliqué plus haut), les équipes de développement des prochaines versions du projet restent exactement les mêmes ! Ces derniers mois, toutes les personnes qui sont désormais uniquement contributeurs de Lithium avaient arrêté de contribuer aux versions 1.x et 2.0 de CakePHP pour se focaliser sur Cake3. Cette semaine le code de CakePHP 1.3 a été taggué en version alpha et chacun peut voir les avancées qui ont été faites à ce niveau. D’autre part, les développements sur CakePHP 2.0 se sont accélérés depuis quelques semaines et une version de développement devrait être disponible avant la fin de l’année. C’est à mon sens la meilleure preuve de vie qu’un projet peut montrer ! C’est là aussi l’illustration de l’intérêt d’avoir un projet open source soutenu par une entreprise. CakeDC a joué un rôle prépondérant dans la continuation de ce projet au sens où les membres de son équipe sont restés fidèles au plan de développement du framework et plus que jamais investie dans le projet. [Disclaimer : je travaille actuellement pour CakeDC. Néanmoins, cette affirmation se veut objective et la page présentant notre équipe devrait la justifier ]
Malgré une peur initiale lorsque chacun a découvert le départ de Garrett et Nate, la communauté a généralement bien réagi à cette annonce et de nombreuses personnes ont renouvellé leur soutien au framework et leur envie de voir les choses avancer. Le retour de Larry Masters est également un retour au source, et marque une nouvelle ouverture envers la communauté. CakePHP a surtout été rendu populaire grâce à sa communauté, il ne faut pas l’oublier ! Cela sera également l’occasion de donner des rôles plus importants au nombreux développeurs qui contribuent au framework en ouvrant des tickets et en résolvant des bugs sur leurs propres forks (au sein Git du terme) du projet.
Un point que je trouve également positif, et qui terminera mon article, est les discussions que cela a généré. Que cela soit sur le google group anglophone, le forum francais, Twitter, IRC (#cakephp ou #cakephp-fr), de nombreuses discussions entre des membres de la communauté et des utilisateurs ont eu lieu. Cela a été l’occasion de détecter les réelles attentes des utilisateurs vis à vis de CakePHP … je pense que tout ceci a été entendu (j’espère pouvoir aider à faire évoluer les choses également), et que nous verrons bientôt la mise en place d’une bibliothèque de composants (behaviors, plugins, helpers …) digne de ce nom, une avancée dans la traduction du core, une mise à plat des outils proposés … et de nombreuses autres choses !
Source Le blog de Pierre Martin
CakePHP n'est pas mort !
Résumé des récents mouvements au sein de la communauté.
CakePHP n'est pas mort !
Résumé des récents mouvements au sein de la communauté.
Le , par RideKick
Une erreur dans cette actualité ? Signalez-nous-la !