Je privilégierais Trac. J'utilise Trac depuis longtemps, plus de 7 ans maintenant. J'ai également travaillé 3 ans avec Redmine. Les dernières versions que j'ai utilisées en production étaient : Trac 1.0.1 et Redmine 2.2.3. Mais Redmine présente de sérieux inconvénients par rapport à Trac :
-
Installation n'est pas facile :
-
Vous ne pouvez pas utiliser le système de paquets Debian/Ubuntu pour la production.
- Comme la configuration n'est pas séparée du code de l'application, chaque fois que vous recevez des mises à jour du paquet, elles écrasent vos modifications.
- Debian avait 5 failles de sécurité au début de 2013 (janvier), où un peu de toujours non corrigé dans unstable et testing. Bien sûr, les corrections dans Debian stable sont faites, les versions des paquets sont tellement dépassées dans stable, que les versions plus récentes de Redmine ne fonctionneront pas.
- Les dépendances de Redmine sont fixes, donc les nouvelles versions des bibliothèques peuvent ne pas fonctionner. C'est la raison pour laquelle vous devez configurer votre apt-get ou aptitude pour ne pas mettre à jour certaines dépendances.
- Je vous conseille d'installer via
gem
y bundler
. Pourtant, cela a été aussi facile que décrit sur la page d'accueil. Mais ce que je déteste le plus dans ces systèmes de gestion des paquets logiciels, à part la gestion des paquets systèmes, c'est qu'il faut s'occuper des mises à jour et de tous les autres trucs séparément. Certaines personnes suggèrent RVM fournir des environnements ruby virtuels, où vous pouvez avoir plusieurs versions de Rails installées les unes à côté des autres, ce qui n'est pas possible avec apt-get. Je ne me sens pas bien avec ça, mais au moins ça fonctionne.
-
Administration n'est pas facile, pensez à faire une sauvegarde : Dans Trac, cela se fait en une seule fois, dans Redmine, vous devez sauvegarder : la configuration, les fichiers joints et le contenu de la base de données, tous séparément. En outre, il est souvent indiqué que Redmine prend en charge plusieurs projets, il est donc plus facile de configurer un nouveau projet et la configuration n'est pas dupliquée. Voir ci-dessous, il y a un paragraphe supplémentaire sur le support des projets multiples. Enfin, lorsque j'administre un projet Trac, j'aime modifier les fichiers de configuration en texte clair. Dans Trac, il n'y a que un un tel fichier que vous devez regarder : trac.ini
.
-
Configuration est cassé : Par exemple, vous pouvez créer des routes personnalisées dans Redmine, qui affichent la page wiki de départ et non la vue d'ensemble du projet comme première page. Il vous sera recommandé d'éditer les sources de Redmine ! C'est très dangereux car la prochaine mise à jour écrasera votre configuration. Ce type de configuration n'était donc pas vraiment prévu. Mais un bon outil devrait séparer la configuration du code source de l'application.
-
Fonctions wiki manquantes : Certaines fonctionnalités importantes du wiki sont manquantes en raison d'un bug non corrigé lié à une vulnérabilité XSS. (par exemple, voir le balisage du wiki textile). Vous ne pourrez donc pas placer de commentaires à l'intérieur des pages du wiki, rendre les images dans une taille personnalisée,...
-
Protection anti-spam manquante : Oui il existe un plugin reCaptach périmé, mais il ne fonctionne plus. En particulier, le fork protège également les pages de problèmes. Par rapport à Trac qui dispose d'un plugin SpamFilter qui a propriétés fantastiques c'est un échec. Personne ne veut supprimer le spam manuellement.
De nombreux points critiques ont été soulevés au fil du temps et ont fait dire aux gens que Redmine était meilleur. J'en doute :
-
Support multi-projets : Bien sûr, Trac fournit de multiples projets, chacun ayant sa propre configuration, et c'est très utile : Envisagez de faire un projet à source fermée et un autre à source ouverte. Pour le projet closed source, vous cacherez probablement le dépôt, mais pas pour le projet open source, ce qui n'est pas possible avec Redmine. De plus, avec Trac vous pouvez sauvegarder les projets séparément et bien sûr vous pouvez les séparer au cas où l'un de vos 50 projets deviendrait populaire et aurait besoin de son propre serveur ! Redmine ne peut pas faire cela. Récemment, un nouveau plugin est apparu, permettant de gérer plusieurs projets d'utilisateurs dans une seule instance de Trac. http://trac.edgewall.org/wiki/PluginList#MultipleProjects
De plus, il existe un projet utilisant Trac pour construire cette fonctionnalité : Chien de sang
-
Système de contrôle des versions : Je pense que l'installation d'un plugin n'est pas si difficile, et pour presque chaque VCS il y a un plugin pour Trac : Git, Perforce, Mercurial, Darcs, Monotone, Subversion, Bazaar. De plus, je préférerais un petit framework de base avec des plugins plutôt qu'un gros framework avec un support intégré pour Git, Mercurial, etc... Une telle architecture n'est pas modulaire. Donc mettre le support VCS dans les plugins est le moyen de le faire. Pas d'intégrer tout dans le framework.
-
Plugins : Je dirais que Trac et Trac-Hacks ont beaucoup plus de plugins que Redmine, donc l'intégration de Doxygen, Jenkins, Latex, BibTex, etc. ne pose aucun problème !
-
Timing et estimation : Il y a des plugins pour ça dans Trac aussi ! Dans l'ensemble, je ne comprends pas le récent Trac-bashing, il est également écrit dans un langage d'interprétation à la mode (python), il a presque les mêmes fonctionnalités.
Le processus d'installation de Redmine n'est pas facile, mais l'installation de Trac est également devenue plus complexe ces derniers temps, de sorte que la création manuelle de bases de données, etc. ne peut plus être considérée comme un inconvénient.
Enfin, les deux projets utilisent un système de plugins. Le problème que rencontre souvent l'utilisateur de ces plugins est qu'ils peuvent être orphelins et ne pas supporter le framework actuel. Cela m'est arrivé plus d'une douzaine de fois pour Redmine, mais aussi parfois pour Trac. Mais mon impression très subjective est que les plugins cruciaux n'ont jamais été affectés par ce type de problème et que cela s'est produit un peu moins souvent avec Trac.
Enfin, dernier point mais non des moindres, je vais essayer de Phabricator car il offre un flux de travail intégré pour la révision du code.