La cinquième version de la branche 5.3 a été la bonne. Après 4 release candidates, la communauté FusionForge a publié la version 5.3 de sa forge logicielle. Le terme « forge logicielle » est un chapeau regroupant tous les outils de génie logiciel nécessaires au cycle de vie d'un logiciel. Cela inclut habituellement un gestionnaire de source, un espace de publication de fichiers ainsi qu'un outil de suivi des tâches, des anomalies et des demandes d'évolution.
Sans vouloir revenir sur le long historique de FusionForge, quelques mots de rappel : FusionForge est la reprise du code communautaire GForge, lui-même hérité de Sourceforge. On retrouve parfois dans le code des lignes datant de 1999. Écrit en PHP5, FusionForge met à disposition l'ensemble des fonctions de génie logiciel attendues pour la gestion de projet, le pilotage et les outils techniques modernes. La conception de FusionForge offre une capacité de gérer un très grand nombre de projets. Certaines forges ont plus de 1000 projets et plusieurs milliers d'utilisateurs inscrits.
Quelques exemples d'installation plus ou moins récentes et/ou importantes :
Sommaire
Fonctions majeures
On peut citer comme fonctions majeures :
- gestion multi-projet
Chaque projet dispose de l'ensemble des outils activables en fonction des besoins. Un mécanisme de classement par typologie et de tags permet une recherche au sein des projets existants. Un greffon de hiérarchie permet d'organiser les projets par relation 1-n.
- système de droits basé sur RBAC (gestion de rôles)
Ce mécanisme permet de gérer finement les droits par projet et par outil permettant de rendre privé le projet en entier ou certaines parties uniquement. Il est possible de créer autant de rôles que souhaité ; les rôles étant cumulatifs, il est conseillé de créer des rôles orientés fonctionnels.
- gestion de globalement tous les (D)VCS
De CVS à Bazaar en passant par Subversion, Git ou Mercurial, avec un choix entre des accès en mode SSH ou plain HTTP. Une gestion des droits d'accès par utilisateur. Pour Git, la capacité d'avoir son propre clone personnel d'un projet permettant d'implémenter un workflow de type Gatekeeper.
- gestion simple de documents
Ajout de documents unitairement ou en masse, notification des actions réalisés sur un répertoire ou un fichier, gestion de la hiérarchisation de projets (via le greffon project-hierarchy), gestion d'actions en masse sur les fichiers, notion de corbeille, notion de documents privés et de documents soumis à validation, export au format ZIP, création en ligne de documents texte (intégration CKEditor).
- suivi des demandes
Permettant la création de multi-bugtrackers avec la gestion de workflow en relation avec les droits utilisateurs, l'ajout de champs personnalisés, intégration possible avec la gestion de code source via le greffon scmhook et les hooks commitTracker, construction de feuille de route transverse aux différents bugtrackers créés.
- suivi de l'activité
Chaque projet dispose d'une vue immédiate de l'activité par outil : demande, nouveau document, nouveau commit, … Ce tableau de bord d'activité permet en un rapide coup d'oeil de connaitre le dynamisme d'un projet. Un mécanisme de filtre offre la possibilité de s'intéresser à l'activité dans le temps et de limiter la recherche à un ou plusieurs outils.
- forums
Un système de forums standard est disponible, permettant la création de forums par thème (support, échange entre développeurs ou entre utilisateurs…)
news
Système d'annonces par projet qui peuvent être mises en avant sur la page d'accueil de la forge. Pratique pour annoncer sur la forge la mise à disposition d'une nouvelle version d'un logiciel.mailing-lists
Intégration simple avec Mailman. Création, réinitialisation de mots de passe d'administrateur sont les fonctions élémentaires proposées. Un plugin spécifique mailman est disponible en remplacement de l'intégration de base.
- système de widgets pour des pages projet et utilisateurs personnalisables
Hérité de Codendi, ce système permet de construire la page d'accueil du projet ou sa propre page personnelle en utilisant des widgets classés par type : SCM, Tracker, Monitoring d'éléments (forums, documents), Documents, Administration.
Certains plugins mettent à disposition des widgets complémentaires (On notera le plugin block qui laisse la possibilité d'inclure tout élément html, simplifiant ainsi l'inclusion d'éléments provenant d'autres sites. On pense ici à des boutons sociaux, des widgets type flattr, ohloh…)
La mise en page des widgets est configurable avec des modèles prédéfinis ou un mode 100 % personnalisable.
- des greffons pour enrichir le tout
- wikis dont MediaWiki,
- gestion de captcha,
- bibliothèques de hooks pour git, Subversion, Mercurial,
- gestion de bloc HTML par page ou au sein de widget,
- ajout d'onglets dans les différents menus,
- intégration Jenkins,
- … (et d'autres encore).
La version 5.3 en chiffres
Les chiffres significatifs :
- 17000 commits
- 14 contributeurs
- 32 bugs fermés dont certains vieux de plusieurs années
- 31 patchs fournis par la communauté d'utilisateurs
- 21 demandes de fonctionnalité implémentées
Les nouveautés de la version 5.3
Côté frontend
- gestion documentaire
L'interface de la gestion documentaire avait subi un lourd lifting dans les versions précédentes avec une réécriture quasi complète de l'interface pour mettre en avant des fonctionnalités qui passaient totalement inaperçues.
Les informations du nombre de téléchargements, la taille maximum d'upload autorisée sont affichées. Un reporting du nombre de documents téléchargés est aussi disponible.
Un nouveau widget pour les projets est aussi disponible. Il permet de suivre l'activité sur les 4 dernières semaines en affichant le nombre de nouveaux documents, de documents modifiés et de nouveaux répertoires.
- gestion utilisateurs :
La gestion des clés SSH a été réécrite permettant un meilleur suivi du déploiement des clés SSH.
Les administrateurs peuvent être notifiés lorsqu'un utilisateur a validé la création de son compte.
- suivi d'activité :
De nouveaux items sont affichés dans le tableau de bord de l'activité d'un projet. Ainsi l'activité SCM (commits) est disponible pour les repositories de type GIT et SVN, idem pour les nouveaux répertoires créés dans la gestion documentaire.
- suivi des demandes :
Un système de votes basé sur les rôles (Il faut avoir l'acréditation de vote pour pouvoir voter sur un item des trackers) a été intégré. Il est enfin possible d'organiser sa roadmap en fonction de l'attente fonctionnelle des utilisateurs.
Le widget "MyArtefacts" a été amélioré pour permettre de suivre directement les items que l'utilisateur surveille.
- SCM (Git, Mercurial, Subversion et al.)
Le plugin Git a été enrichi pour permettre le support du protocole http en mode basic. Le support smart http est possible mais les fichiers de configuration fournis par défaut nécessitent une petite adaptation.
La gestion de multiples dépôts pour un projet est aussi disponible pour Git et de nouveaux hooks sont disponibles via le plugin scmhook.
Le plugin Mercurial a vu l'intégration d'un patch important permettant son utilisation en tant que type de repository. Navigation en ligne via hgweb, intégration de hooks via la bibliothèque de hooks du plugin scmhook.
Le plugin Subversion a lui eu le droit à des nouveaux hooks du plugin scmhook.
Côté Dev
- jQuery a été choisi comme framework Javascript standard. L'ancien empilement prototype + scriptaculous + jQuery + javascript spécifique a été nettoyé et réécrit. Résultat : des pages plus légères, moins d'incompatibilité avec les navigateurs. Toutefois, certaines portions de code restent encore en Javascript spécifique.
- tous les graphiques ont été réécrits en utilisant le greffon jQuery jqPlot. La dépendance à l'ancienne bibliothèque jpgraph a été supprimée. Fusionforge dispose enfin d'une bibliothèque moderne et libre pour générer ses graphiques. Cette réécriture a, entre autre, permis l'inclusion d'un meilleur rendu des graphes de type Gantt avec l'affichage des dépendances entre tâches en utilisant le greffon jQueryGantt
- le stockage des fichiers joints à un tracker et les documents est à présent fait sur le système de fichiers et non plus en base. La charge de base de données est réduite drastiquement. Il reste encore les fichiers joints au forum qui seront rapidement migrés de la base de données vers le système de fichiers.
- le code a été nettoyé. Les variables inutilisées ont été chassées à coup de balai. Les erreurs et warnings PHP, les erreurs de syntaxe HTML ont subi la foudre des développeurs.
- d'anciens plugins ont été intégrés dans des structures de plugin plus polyvalentes. Les plugins type svncommitemail, svntracker ont été intégrés au sein du plugin scmhook.
- certains cronjobs ont été revus et améliorés profitant de fonctionnalités spécifiques provenant de la souche Debian. (Gestion des répertoires home projets et utilisateurs, gestion des vhosts par projet)
La communauté et le futur
La version 5.3 laisse apparaître une augmentation des contributeurs à FusionForge. En effet plusieurs personnes ont rejoint l'équipe FusionForge depuis quelques années et le dynamisme de la communauté commence à porter ses fruits. L'intérêt de FusionForge est grandissant. La communauté est de plus en plus sollicitée sur des problématiques de migration du parc d'installations anciennes de GForge que cela soit des versions "gratuites" ou des versions "Advanced Server". Le nombre de téléchargements des sources a été multiplié par 2. C'est sans compter les installations réalisées via les paquets des distributions comme Debian.
D'autres projets libres de Forge ont décidé de rejoindre la communauté FusionForge. C'est le cas de Savane qui fusionne avec FusionForge.
Vous aussi, vous pouvez devenir acteur de la communauté FusionForge. N'hésitez pas à rejoindre le canal IRC (freenode #fusionforge), tester FusionForge, signaler les fonctionnalités qui vous manquent. FusionForge avance grâce à vous.
La communauté se tourne donc vers le futur et travaille d'ores et déjà sur les nouvelles fonctionnalités ainsi que la réécriture de parties importantes du code.
En tant que contributeurs majeurs à cette version, on peut lister dans l'ordre alphabétique :
- Alcatel-Lucent
- INRIA
- Roland Mas (avec notamment le sponsoring de AdaCore)
- tarent solutions GmbH
- TrivialDev
Cette dépêche est le résultat d'un travail collaboratif avec la communauté FusionForge. Merci aux différents contributeurs disponibles sur le canal IRC (freenode #fusionforge) : Beuc, Lo-lan-do, nerville
Aller plus loin
- Annonce officielle (91 clics)
- FusionForge website (514 clics)
- Précédente dépêche: FusionForge 5.1 (30 clics)
- Prédécente dépêche : FusionForge, entretien avec la communauté (24 clics)
- Analyse Ohloh (37 clics)
- Télécharger la version 5.3 (53 clics)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.