I. Le planning

L'équipe de Zend utilise le service AgileZen comme planning de développement. AgileZen est un outil de gestion de projet en ligne, disponible à l'URL suivante : www.agilezen.comwww.agilezen.com. Si vous désirez suivre le projet sur l'outil, il est nécessaire de demander à être invité sur le projet depuis cette URL : framework.zend.com/zf2/board/inviteframework.zend.com/zf2/board/invite. Cependant, l'équipe offre la possibilité de visualiser le planning depuis une page construite avec l'API du service qui est disponible à l'adresse framework.zend.com/zf2/boardframework.zend.com/zf2/board. Sur cette page vous retrouverez les tâches en cours, ce qu'il reste à faire et ce qui est fait. C'est une version rapide et peut-être un peu moins visuelle que celle proposée par AgileZen, que l'on peut voir en capture d'écran ci-dessous :

Image non disponible

Chaque colonne représente un état de tâche en cours. Cela permet de voir l'avancée de la version en cours du framework. Cette capture d'écran a été faite juste avant la sortie de la bêta 4, on remarque qu'il reste peu de choses avant la finalisation de cette version, et l'on remarque aussi le tag « 2.0.0beta5 » qui nous indique l'existence d'une bêta 5.

Il est aussi possible d'obtenir plus d'informations sur une tâche précise en cliquant sur celle-ci :

Image non disponible

La liste des actions associées à la tâche à effectuer permet de connaître en détail ce qui va être fait et ce qu'il reste à faire. Le développeur indique parfois des commentaires liés à la tâche en cours afin de fournir plus d'informations à d'éventuels contributeurs.

Lorsqu'une tâche est terminée, celle-ci glisse dans la colonne « Complete » et est ensuite fusionnée avec le code du framework dans la branche de développement en cours. Il est alors possible d'avoir accès immédiatement à la fonctionnalité.

II. La gestion des versions

Le gestionnaire de versions utilisé par l'équipe de développement est Git. Le code est disponible sur Github à l'adresse suivante : github.com/zendframework/zf2github.com/zendframework/zf2. Sur ce dépôt vous retrouverez la dernière version du framework ainsi que la branche de développement mise à jour en continu. Vous y retrouverez aussi les tests unitaires et la documentation du framework.

Sur ce dépôt, vous pouvez aussi voir les demandes d'ajout de code faites par les développeurs de Zend comme celles faites par n'importe quel développeur souhaitant contribuer au framework. Ces demandes d'ajout sont appelées « Pull Requests » (PR) et sont visualisables dans l'onglet du même nom :github.com/zendframework/zf2/pullsgithub.com/zendframework/zf2/pulls. C'est par les « Pulls Resquests » que passera chaque code qui sera ajouté au framework.

L'onglet «Graphs» permet d'avoir des statistiques sur l'activité du dépôt ou encore des statistiques sur les développeurs du framework. Vous pouvez par exemple retrouver l'activité en fonction du nombre de commits effectués (github.com/zendframework/zf2/graphs/commit-activitygithub.com/zendframework/zf2/graphs/commit-activity), les statistiques de contribution des développeurs (github.com/zendframework/zf2/graphs/contributorsgithub.com/zendframework/zf2/graphs/contributors), ou encore la liste des contributions d'un développeur, par exemple pour mon profil : github.com/zendframework/zf2/commits?author=blanchonvincentgithub.com/zendframework/zf2/commits?author=blanchonvincent.

Généralement, les «Pull Requests» sont divisés en trois catégories :

• les bugfixs, ou corrections de bogues ;

• les features ou ajout de fonctionnalités ;

• la modification de documentation ou de règles de codage.

Pour les deux premiers éléments, il est impératif d'ouvrir un ticket sur le gestionnaire de bogue du framework avant de proposer une « Pull Request ».

III. Le bug tracker

Le gestionnaire de bogues, ou bug tracker, est disponible à l'adresse framework.zend.com/issuesframework.zend.com/issues. Une fois inscrit, nous avons alors accès à l'ensemble des tickets ouverts pour le framework :

Image non disponible

Lorsque l'on souhaite ouvrir un ticket, il est seulement nécessaire de décrire le bogue ou la fonctionnalité ainsi que de choisir sur quel composant ce ticket sera relié. Le fait de relier un ticket à un composant permet d'affecter directement le ticket au développeur concerné et responsable du composant :

Image non disponible

Lorsque l'on écrit le ticket, si l'on souhaite proposer soi-même le correctif il est nécessaire de l'indiquer dans le ticket afin que le travail ne soit pas fait deux fois. Le développeur responsable du composant affectera le ticket à son créateur et sera en attente de la « Pull Request ».

IV. Corriger un bogue ou proposer une amélioration

Afin de proposer une correction de bogue ou une nouvelle fonctionnalité, il est important d'ouvrir un ticket afin d'en avertir la communauté car ce bogue peut déjà être en cours de correction ou la fonctionnalité en cours d'implémentation par un autre développeur. Une fois cette étape faite, nous pouvons passer à la modification du code.

La première étape est de se créer un compte sur Github. En effet, sans compte, il ne va pas être possible de proposer ses modifications aux développeurs. Lorsque l'on possède son compte, il faut ensuite « forker » le projet de Zend Framework 2 depuis le bouton « fork » de la page du projet . Une fois le projet « forké », il faut récupérer le code sur son environnement de travail local. En fonction de votre poste de travail (Windows, Mac ou Linux) vous suivrez les instructions de Github. Notez qu'il existe un excellent logiciel pour Mac afin d'interagir avec celui-ci.

Lorsque le code du framework est sur notre machine locale, il est nécessaire de tirer une nouvelle branche afin d'y apporter les modifications que l'on souhaite ajouter. L'ajout d'une branche permettra de conserver la branche « master » à jour avec l'évolution du code du framework. Lorsque la branche est créée, nous allons pouvoir lui apporter toutes les modifications que l'on souhaite faire. Une fois celles-ci effectuées, il est indispensable de mettre à jour les tests unitaires liés à notre modification. Si les tests unitaires n'ont pas été modifiés en conséquence, vos modifications seront refusées par l'équipe de développement.

Lorsque les modifications sont faites et que les tests unitaires sont à jour, il est alors temps de pousser notre code sur notre dépôt github. La nouvelle branche va alors être créée, et il est possible d'en faire une « Pull Request » depuis le bouton «Pull Request». Une fois notre requête validée, nous pouvons la visualiser dans la liste des « Pull Requests » en attente d'ajout au framework : https://github.com/zendframework/zf2/pulls.

V. Récapitulatif des étapes

Voici le récapitulatif des étapes à mener avant de pouvoir contribuer au framework :

• créer un compte Github ;

• créer un compte sur le bug tracker ;

• ouvrir un ticket sur le bug tracker ;

• « forker » le projet Zend Framework 2 ;

• créer une branche pour sa modification ;

• faire ses modifications et mettre les tests unitaires à jour ;

• pousser son code local sur sa nouvelle branche ;

• faire une demande de « Pull Request » ;

• attendre et répondre aux commentaires éventuels sur sa « Pull Request » ;

• fermer le ticket une fois la « Pull Request » fusionnée dans le framework.

Vous avez maintenant toutes les cartes en main pour contribuer au framework.

VI. Ressources

Cet article est tiré en partie du livre "Au cœur de Zend Framework 2"livre "Au cœur de Zend Framework 2" disponible au début du quatrième trimestre de l'année 2012.

Retrouvez mes modules ou autres fonctionnalités, créés pour le Zend Framework 2, sur mon compte github disponible à l'adresse https://github.com/blanchonvincent.

Retrouvez aussi la liste des tutoriels du Zend Framework 2 sur mon domaine developpez.com : blanchon-vincent.developpez.comblanchon-vincent.developpez.com.