05 mai 2010

Software factory WishList

Depuis quelques années, je travaille à mettre en place des outils de "forge logicielle", mutualisés ou dédiés à un projet; voici les outils que j'aimerai assembler pour fournir un environnement clé en main sur projet :

  • une machine dédiée (ou une VM) sous Ubuntu, système facile à installer, bien documenté. Le passage sur un Linux permet déjà de tester toutes les problématiques d'encodage de caractères et de séparateurs de fichiers;
  • un SVN, un Git ou Mercurial, selon les goûts; 
  • un Nexus pour la conservation des artefacts et l'économie de bande passante;
  • un serveur Hudson, qui s'installe via un paquet DEB que c'est tellement simple que ça fait pleurer;
  • un build Maven (sans blague ?);
  • idéalement, une conf magique pour que le build n'ait pas accès au Net, par exemple via http.proxyHost. L'idée est d'empêcher le parser XML de récupérer les schémas XSD sur le Net - si, ça arrive !
  • un serveur de démo/test/perfs, sur lequel la dernière version NIGHTLY est déployée automagiquement;
  • un job dédié pour alimenter un Sonar en build nocturne; Je préfère prendre Sonar avec sa conf par défaut puis voir ce qui en émerge et comment ça évolue, pour voir là où l'équipe doit progresser et réduire la gravité des règles qu'elle considère inutiles APRES les avoir violées trop régulièrement (au moins, on s'est posé la question). En général, les indicateurs de complexité s'envolent rapidement ;)
  • un wiki projet, j'aime bien xWiki qui est puissant et colle bien dans cette forge "tout java". Les plugins Eclipse et Office (pas testé) peuvent aussi aider à faire apprécier le principe du Wiki même aux plus classiques d'entre nous;
  • un gestionnaire de tâches/bugs. Sauf à avoir un JIRA en centralisé, il peut être intéressant de le conserver sur la machine projet avec le reste et de gérer les sauvegardes d'ensemble de la forge. Je n'ai pas de préférence faute d'avoir pu tester autre chose que cette bouze de Quality Center;
  • pourquoi pas un serveur iceScrum pour ceux qui pratiquent;
  • un outil de revue de code, dans l'esprit de Crubicle, et dans l'idéal intégré à l'IDE... je n'ai pour l'instant rien trouvé;
  • un environnement de dev prêt à installer. Pour l'instant je fais un gros ZIP d'Eclipse + JDK + Maven + Tomcat + ... mais c'est pas le top, surtout pour gérer les mises à jour.

Je suis sûr qu'il manque plein de briques intéressantes à rajouter à cette wishlist, j'attend vos suggestions ;)

19 commentaires:

Mickael BARON a dit…

Nicolas,

Je me suis toujours demandé pourquoi il n'existait pas de EasyForge au même titre que les distributions EasyPHP, XAMP, ... mais cette fois pour les outils d'intégration continue.

J'imagine bien un gros installeur qui déploie automatiquement tout ça en faisant la différence entre les outils pour le développeur et les outils pour la forge.

Dans ta liste j'ajouterais un LDAP pour la gestion des utilisateurs.

nicolas deloof a dit…

Mon idée serait de prévoir le script install.sh (ou sinon, au moins un image VM) qui apporte tout ça out-of-the-box. Pour l'authentification, en effet un branchement au LDAP de l'entreprise serait une solution sympa... perso jamais testée, mais à ma connaissance supportée par tout les outils cités. Je prend bonne note ;)

Mathieu Ancelin a dit…

Salut Nicolas,

tu en as rêvé, SERLI le fait :)

On travaille depuis quelques mois sur un projet très proche de ce dont tu parles, une VM dédiée avec tous les softs qui vont bien. C'est vraiment pratique comme outil.

nicolas deloof a dit…

Vous n'auriez pas le bon gout de mettre ça en opensource des fois ? :P

Mathieu Ancelin a dit…

Bien évidemment, et peut-être même mieux ;)

Pierre a dit…

Bonjour Nicolas,

je me penche sur la question depuis quelques temps :
- pour le bugtracker mantis peut être pas mal
- pour le coté collaboratif, Alfresco s'install assez bien sur Ubuntu et il apporte le coté GED et wiki (même si xWiki est un bon outil)
- avec en plus un outil type testlink
- et le top du top ... le SSO (j'ai essayé de déployer une fois openSSO pour tester sans succès ... il doit y avoir des outils plus simple ...)

Je suis depuis peu abonné a tes flux RSS ... blog très intéressant.

Pierre

nicolas deloof a dit…

@Pierre : Merci !
@Mathieu : tu en a dit trop et pas assez, je veux savoir !
pour ma part c'est ici : http://code.google.com/p/platina mais c'est encore un espace vierge ;)

Mathieu Ancelin a dit…

you've got a mail ;)

Mickael BARON a dit…

A SERLI ... toujours une longueur d'avance ;-)

Le top serait que cela soit aussi facile à configurer que ninite.com et aussi facile à déployer que BitNami.org

syllant a dit…

L'intégration de Crucible dans Eclipse et IDEA est encore assez laborieuse.

Il existe aussi le plugin Jupiter pour Eclipse (j'accroche pas mais en même temps j'accroche pas à Eclipse) et reVu pour IntellijIDEA (dont je suis le coupable), tous deux ne nécessitant pas de serveur.

nicolas deloof a dit…

J'ai essayé Jupiter sans être convaincu. Laborieux et pas immédiat à exploiter par les développeurs.

Quand est-ce que tu nous fait un portage de ReVu sous Eclipse ? :D

Benoît a dit…

Une version portable est encore mieux qu'une version avec install.sh.

Si en plus l'aspect données/workspaces est indépendante de la partie soft, on peut mettre la partie soft sur DropBox et la réutilisée sur différents ordi :-)

Thomas a dit…

Pour la gestion des demandes, wiki, espace projet, redmine est un très bon candidat.

Pour les campagnes de test : testlink ?

Chez nous on utilise 80% des outils que tu cites couplés à l'annuaire d'entreprise.

Réflexion sur les choses établies a dit…

On mettra Jira à la poubelle, c'est pour les riches. On choisira Redmine qui fournit le périmètre de Jira, du Wiki et de Mantis. C'est OpenSource est très puissant.

IceScrum c'est encore pas mal buggé et pas de plug pour le SVN, Hudson, etc. Comme c'est la cas sur Redmine, dailleurs ou pourra faire du Scrum avec Redmine, il existe pas mal de plugin : Kanban, burdows, backlog, etc.

Ma petite contribution.

Mickael BARON a dit…

Sonar n'a pas un module pour faire de la revue de code ?

Mathieu Ancelin a dit…

En effet Redmine est vraiment bien et puissant.

De plus il existe un plugin de revue de code prévu pour Redmine.

Mickael BARON a dit…

J'utilise également Redmine au boulot et c'est vrai qu'il est très agréable à utiliser (merci à SERLI pour l'information)

Par contre, j'ai juste une crainte sur l'évolution de cet outil. Il y a essentiellement une personne qui contribue au projet et on en est toujours à la version 0.9...

Jaime a dit…

Bonjour a tous, et etant quelqu'un qui utilise beaucoup linux pour le soft factory, j'utilise suivant webmin comme console de pilotage ... le principe est tres simple. il existe un catalogue des applications et avec un simple click elle est deployé sur ta sandbox et dispo sur webmin, le gros efforts est de recrire les interfaces de config a la webmin .... donc pas besoin de connaitre le fichier de conf a toucher ...tous est centralise dans webmin ... je vous conseil de y regarder ... il peut etre utile pour prendre des idees ....

desole por les fautes ... je suis hispanophone :)

Jaime a dit…

ici je vous laisse le lien vers webmin.

http://www.webmin.com/