Cartouche | |
---|---|
ZEP | 40 |
Titre | Organisons les ZEP |
Révision | 1 |
Date de création | 4 janvier 2016 |
Dernière révision | 4 janvier 2016 |
Type | Feature |
Statut | Rédaction |
Introduction
Cette ZEP est volontairement détaillée sur le plan technique afin de faciliter sa réalisation. Son objectif est d'être réalisée en peu de temps.
Informations préliminaires
Aujourd'hui Zeste de Savoir possède plus de 35 ZEP dont la majorité est en rédaction. Le système fait ses preuves et met presque tout le monde d'accord. Son système de rédaction repose sur le forum ce qui est sa plus grande force mais également sa principale faiblesse.
L'objectif de cette ZEP est de proposer un système de gestion des ZEP toujours aussi simple, plus efficace et d'y apporter quelques nouvelles fonctionnalités pour faciliter la vie des développeurs.
Comment ça se passe chez les autres ?
Chez Python (PEP) tout fonctionne par mail. C'est un peu lourd mais ça à l'air de très bien fonctionner.
Chez Django (DEP) ils utilisent GitHub ce qui présente l'avantage d'avoir des diff, de pouvoir faire des PR et d'avoir une visualisation assez simple. C'est quand même moins user-frienly.
Et chez nous ?
Notre plus grande force est la suivante : notre système est intégré au site et n'importe étant capable de poster un message peut faire une proposition. Pas besoin d'envoyer un mail ou de faire une PR.
En revanche, plusieurs problèmes sont à relever, le premier étant le manque de visibilité. Aujourd'hui le filtrage avec le tag « zep » est devenu bien trop complexe. Une liste assez détaillée a vu le jour pour palier à ce problème mais il est nécessaire de la maintenir à la main. Il est donc nécessaire de trouver une solution pour avoir une vraie liste des ZEP à jour sans l'intervention d'une personne. Le forum montre également sa limite avec le système de tags qui n'est pas toujours correctement suivit.
Le second problème est l'oubli de certaines ZEP. Reléguées au fond du forum, elles finissent par être oubliées et délaissées par les développeurs malgré leur potentiel.
Enfin, le dernier problème relevé est le fait que la cartouche d'une ZEP est trop souvent inexacte. Il y a plusieurs statuts faux voir qui n'existent pas vraiment. Une uniformisation est nécessaire.
Proposition
Un système dédié … mais sans grands changements
Depuis la ZEP-12 il y a eu une uniformisation des contenus sur Zeste de Savoir, profitons en ! Le nouveau système est donc fondé sur les contenus afin d'éviter de réinventer la roue. Il possède simplement des champs et des fonctionnalités supplémentaires. Tous les membres peuvent proposer une ZEP.
Le tout est développé dans un module hors ZdS afin de ne pas alourdir le code actuel. Ce module peut être ajouté à ZdS en l'ajoutant simplement dans le settings.py
. Le choix du module permet de le rendre optionnel pour d'éventuels forks.
Avantages
Les avantages sont multiples. Le premier est une meilleure visualisation globale de l'état des ZEP. Ensuite, il est facile de voir les modifications apportées à une ZEP grâce aux diff. Enfin en peut citer la possibilité de faire des brouillons et d'avoir des ZEP avec plusieurs auteurs.
Les champs supplémentaires
Les champs supplémentaires sont les suivants :
- numéro : entier, numéro de la ZEP auto-incrémenté à chaque ZEP publiée (non stockée
- révision : entier, auto-incrémenté à chaque modification (hors modification mineure)
- type : chaine de caractères, « Process » ou « Feature »
- statut : chaine de caractères, « Rédaction », « Validation », « Acceptée », « Active » ou « Refusée » ; le changement de statut ne peut être effectué que par certaines personnes (voir la partie « Évolution du statut »)
- développement : chaine de caractère, optionnelle, URL vers une branche ou une PR si le développement est commencé
- votes : M2M, voir « Système de vote » ci dessous
- ZEP parente : ForeignKey vers une ZEP, permet d'avoir une certaine relation entre les ZEP (exemple : API)
Système de vote
Aujourd'hui il est un peu compliqué de faire passer une ZEP du statut de « En validation » à « Validée ». Un système de vote assez simple permet de faire bouger les choses. Le vote est lancé une fois que le statut est « En validation ».
Chaque développeur (membre du groupe dédié) peut voter. Si le vote est négatif il doit nécessairement être accompagné d'une justification afin que l'auteur puisse retravailler dessus.
Chaque mise à jour de la ZEP (hors modification mineure, n'impactant pas le numéro de version) remet de compteur à zéro.
Le système de vote sera normalement introduit dans la ZEP-13.
Évolution du statut
Le statut n'est pas souvent mis à jour c'est pourquoi il est plus simple de le mettre à jour avec ce système. En revanche, chaque évolution du statut n'est pas faisable par tout le monde. Explications avec les différents statuts :
- -> Rédaction : tout le monde
- Rédaction -> Validation : auteur ou développeur
- Validation -> Acceptée : responsable développeur
- Acceptée -> Active : développeur
- -> Refusée : responsable développeur
Affichage
La page principale regrouperai les ZEP sous le même format que la liste des ZEP.
Historique
Révision 1
Le 4 janvier 2016 par par gustavi
- Création