449 votes

Comment choisir entre Hudson et Jenkins ?

Il m'a fallu environ une heure pour trouver Hudson ne s'est développé que récemment (Jan/2011).
Je n'ai aucune idée de la rapidité de l'évolution de chaque branche, mais plus important encore, quelle est la direction prise par chaque branche et quels sont les points clés qui permettraient de faire un choix entre les deux branches ?

Quelqu'un a-t-il des liens vers la feuille de route du produit et les différences de fonctionnalités ?

501voto

chmullig Points 6181

Utilice Jenkins .

Jenkins est le fourchette récente par les principaux développeurs de Hudson. Pour comprendre pourquoi, il faut connaître l'histoire du projet. À l'origine, il s'agissait d'un projet open source soutenu par Sun. Comme la plupart des activités de Sun, il était assez ouvert, mais il y a eu un peu de négligence bénigne. Les sources, les traqueurs, le site web, etc. étaient hébergés par Sun sur leur plateforme java.net relativement fermée.

Puis Oracle a racheté Sun. Pour diverses raisons, Oracle n'a pas hésité à exploiter ce qu'il considère comme ses actifs. Il s'agit notamment d'un certain contrôle sur la plateforme logistique de Hudson, et en particulier sur le nom Hudson. De nombreux utilisateurs et contributeurs n'étaient pas à l'aise avec cela et ont décidé de partir.

La question est donc de savoir ce qu'offre Hudson par rapport à Jenkins. Hudson et Jenkins d'Oracle ont tous deux le code. Hudson bénéficie du support d'Oracle et de Sonatype ainsi que de la marque. Jenkins a la plupart des développeurs de base, la communauté et (jusqu'à présent) beaucoup plus de travail réel.

Lisez le billet que j'ai mis en lien en haut, puis lire le reste de la ces par ordre chronologique commande . Pour plus d'informations, vous pouvez consulter le document Hudson/Oracle le point de vue sur le sujet . Il est assez clair pour moi qui joue la défensive et qui a de réelles intentions pour le projet.

115voto

Jonik Points 18905

En tant que chmullig a écrit , utiliser Jenkins . Quelques points supplémentaires :

...et un peu d'histoire :

Le créateur de Hudson, Kohsuke Kawaguchi Il a commencé le projet sur son temps libre, même s'il travaillait pour Sun Microsystems, qui l'a ensuite payé pour le développer. En tant que @erickson a répondu à une autre question de l'OS ,

[Hudson/Jenkins] est le p Kohsuke Kawaguchi. En raison de de cela, il est constant, cohérent, et solide comme le roc.

Après l'acquisition par Oracle, Kohsuke n'a pas traîné longtemps ( en raison de manque de moniteurs ... ? ;-] ), et a travaillé pour CloudBees . Ce qui a commencé fin 2010 comme un conflit sur les outils entre la communauté des développeurs et Oracle et qui s'est terminé par le renommage/fork/split est bien documenté dans les liens fournis par chmullig. Pour moi, toute cette énigme témoigne, peut-être plus que toute autre chose, de l'incapacité totale ou du refus d'Oracle de sponsoriser un projet open-source de manière à ce que toutes les parties (Oracle, développeurs, utilisateurs) soient satisfaites. Ce n'est pas dans leur ADN ou quelque chose comme ça, comme nous l'avons vu dans le cas de autres cas aussi.

Compte tenu de tout ce qui précède, je suivrais personnellement Kohsuke et d'autres développeurs de base dans ce domaine, et j'opterais pour Jenkins.

90voto

Zac Thompson Points 7754

Ce n'est que mon avis sur la question, trois mois plus tard :

Jenkins a poursuivi le chemin tracé par Hudson, avec des versions fréquentes et de nombreuses mises à jour mineures.

Oracle semble avoir largement délégué le travail sur l'avenir de Hudson à l'équipe de Sonatype, qui a effectué quelques changements significatifs, en particulier en ce qui concerne Maven. Ils l'ont conjointement déplacé vers la fondation Eclipse.

Je suggère que si vous aimez le son de :

  • des versions moins fréquentes mais plus lourdement testées pour assurer la rétrocompatibilité (un cycle de versions plus proche de celui d'une entreprise).
  • un produit axé principalement sur une forte intégration de Maven et/ou Nexus (c'est-à-dire que vous n'avez aucun intérêt pour Gradle et Artifactory, etc.)
  • les offres d'assistance professionnelle de Sonatype ou peut-être d'Oracle, de préférence à Cloudbees, etc.
  • cela ne vous dérange pas d'avoir une plus petite communauté de développeurs de plugins, etc.

Je vous conseille alors de vous tourner vers Hudson.

Inversement, si vous préférez :

  • des mises à jour plus fréquentes, même si elles nécessitent des ajustements un peu plus fréquents et sont peut-être un peu plus risquées en termes de compatibilité (il s'agit davantage d'un cycle de mise à jour "latest and greatest")
  • un système bénéficiant d'un soutien plus actif de la part de la communauté, par exemple pour d'autres systèmes de construction / dépôts d'artefacts
  • les offres de soutien du créateur original et autres et/ou vous n'avez aucun intérêt pour le soutien professionnel (par exemple, vous êtes heureux tant que vous pouvez obtenir un correctif dans le "dernier et meilleur" de la semaine prochaine)
  • un écosystème de développement de type OSS classique et sorcier

alors je suggérerais Jenkins. (et comme l'a fait remarquer un commentateur, Jenkins a maintenant aussi des versions "LTS" qui sont maintenues sur une branche plus "stable").


La solution la plus prudente serait de choisir Hudson maintenant et de migrer vers Jenkins si les fonctionnalités indispensables ne sont pas disponibles. La voie dynamique consisterait à choisir Jenkins maintenant et à migrer vers Hudson si la chasse aux mises à jour devient trop longue pour être justifiée.

48voto

Manfred Moser Points 13454

Je suis un committer de Hudson et l'auteur du livre Hudson, mais je n'ai pas été impliqué dans la scission des projets.

En tout état de cause, voici mon conseil :

Consultez les deux et voyez ce qui correspond le mieux à vos besoins.

Hudson va achever la migration pour devenir un projet Eclipse de haut niveau dans le courant de l'année et a fait travailler toute une série de développeurs à temps plein, d'assurance qualité et d'autres personnes sur le projet. Il est toujours aussi fort et a beaucoup d'utilisateurs et, étant le serveur CI par défaut d'Eclipse, il continuera à répondre aux besoins de nombreux développeurs Java. En regardant la feuille de route et les plans pour l'avenir, vous pouvez voir qu'après l'intégration de Maven 3 réalisée avec la version 2.1.0, un grand nombre d'autres fonctionnalités intéressantes sont à venir.

http://www.eclipse.org/hudson

Jenkins, quant à lui, a conquis de nombreux utilisateurs d'Hudson et dispose d'une large communauté d'utilisateurs dans de multiples technologies, ainsi que d'un grand nombre de développeurs qui travaillent dessus.

À ce stade, les deux serveurs CI sont d'excellents outils à utiliser et, en fonction de vos besoins en termes de technologie, il serait préférable d'intégrer l'un ou l'autre. Les deux produits sont disponibles en tant qu'open source et vous pouvez obtenir un support commercial de la part de différentes entreprises pour les deux.

Quoi qu'il en soit, si vous n'utilisez pas encore de serveur CI, commencez dès maintenant à utiliser l'un ou l'autre et vous en tirerez d'énormes avantages.

Mise à jour janvier 2013 : Après un long processus de nettoyage de la propriété intellectuelle et d'améliorations supplémentaires, Hudson 3.0 est maintenant disponible en tant que première version approuvée par la fondation Eclipse.

38voto

Nathan Kidd Points 1792

Jenkins est le nouveau Hudson. Il s'agit plus d'un renommage que d'un fork, puisque toute la communauté des développeurs est passée à Jenkins. (Oracle reste assis dans un coin en tenant sa vieille boule "Hudson", mais ce n'est plus qu'un projet sans âme).

C.f. Ethereal -> WireShark

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X