¿Cómo elegir entre Hudson y Jenkins? [cerrado]

451

Me llevó una hora más o menos resolver que Hudson se ha bifurcado recientemente (enero / 2011)
No tengo idea de cuán rápido es el cambio de cada rama ahora, pero lo más importante, cuál es la dirección que está tomando cada rama y cuáles son las claves puntos para poder elegir entre qué elegir.

¿Alguien tiene enlaces a la hoja de ruta del producto y las diferencias de características?

Greg Domjan
fuente
44
¿Qué terminaste seleccionando entre Jenkins vs Hudson?
chmullig
109
@Kev: No estoy de acuerdo, que esta pregunta no es constructiva. No es un debate como "x vs. y, cuál preferir", pero se trata de una rama de Hudson, que es una información muy útil.
tanascius
99
Sí, este hilo debe volver a abrirse para obtener respuestas más actualizadas.
djangofan
2
@djangofan Ya había una pregunta de seguimiento un año después en: stackoverflow.com/q/11433083/234938 , y ahora, un año más tarde, la situación sigue siendo la misma.
Christopher Orr
55
Entiendo la naturaleza peligrosa de ese tipo de preguntas, pero me parece que (i) ha aportado información muy interesante, (ii) no ha iniciado ningún tipo de disputa y (iii) es legítimo porque no es fácil elegir sin este tipo de información
lab419

Respuestas:

503

Usa a Jenkins .

Jenkins es la bifurcación reciente de los desarrolladores principales de Hudson. Para entender por qué, necesita conocer la historia del proyecto. Originalmente era de código abierto y era compatible con Sun. Como gran parte de lo que hizo Sun, fue bastante abierto, pero hubo un poco de negligencia benigna. La fuente, los rastreadores, el sitio web, etc. fueron alojados por Sun en su plataforma java.net relativamente cerrada.

Entonces Oracle compró Sun. Por diversas razones, Oracle no ha tenido reparos en aprovechar lo que percibe como sus activos. Esos incluyen cierto control sobre la plataforma logística de Hudson, y particularmente control sobre el nombre de Hudson. Muchos usuarios y colaboradores no se sentían cómodos con eso y decidieron irse.

Así que todo se reduce a lo que ofrece Hudson vs Jenkins. Tanto Hudson como Jenkins de Oracle tienen el código. Hudson tiene el soporte corporativo de Oracle y Sonatype y la marca. Jenkins tiene la mayoría de los desarrolladores principales, la comunidad y (hasta ahora) mucho más trabajo real.

Lectura que he vinculado a publicar hasta la parte superior, a continuación, lee el resto de éstas en cronológico orden . Para el equilibrio se puede leer el Hudson / Oracle opinión sobre ella . Para mí está bastante claro quién está jugando a la defensiva y quién tiene intenciones reales para el proyecto.

chmullig
fuente
10
"la mayoría de las personas detrás de esto": esto parece ser cierto para los fundadores del proyecto, pero debe tenerse en cuenta que Sonotype (Maven inc) se ha comprometido con el lado de la división Hudson, con una serie de cambios arquitectónicos en la tubería. . Será interesante ver si el equipo Jenkins todavía tiene suficiente innovación bajo la manga para retener la
mente
55
@magic: Al menos en base a esta breve comparación , una quincena después de la separación, Jenkins es mucho más activa. En cualquier caso, mientras estoy con Jenkins , es interesante ver qué están haciendo los chicos de Sonatype.
Jonik
14
Aquí hay otra actualización de la persona que escribió la breve comparación de @Jonik. Este es ~ 2 meses después.
chmullig
14
Y ahora, cinco años después, Jenkins está prosperando, y Oracle ha dejado a Hudson en el cementerio de elefantes Eclipse, donde está, pero en nombre abandonado.
Thorbjørn Ravn Andersen
115

Como escribió chmullig , usa Jenkins . Algunos puntos adicionales:

... y un poco de información de fondo:

El creador de Hudson, Kohsuke Kawaguchi , comenzó el proyecto en su tiempo libre, incluso si estaba trabajando para Sun Microsystems y luego pagó por ellos para desarrollarlo aún más. Como @erickson señaló en otra pregunta SO ,

[Hudson / Jenkins] es el producto de un intelecto genio único: Kohsuke Kawaguchi. Debido a eso, es consistente, coherente y sólido como una roca.

Después de la adquisición por parte de Oracle, Kohsuke no se quedó mucho tiempo ( debido a la falta de monitores ...?; -] ), y se fue a trabajar para CloudBees . Lo que comenzó a finales de 2010 como un conflicto sobre las herramientas entre la comunidad de desarrollo y Oracle y terminó en el cambio de nombre / fork / split está bien documentado en los enlaces proporcionados por chmullig. Para mí, todo ese enigma habla, quizás más que cualquier otra cosa, de la incapacidad o falta de voluntad de Oracle para patrocinar un proyecto de código abierto de una manera que mantenga felices a todas las partes (Oracle, desarrolladores, usuarios). No está en su ADN o algo así, como hemos visto en otros casos también.

Dado todo lo anterior, personalmente seguiría a Kohsuke y a otros desarrolladores principales en este asunto, e iría con Jenkins.

Jonik
fuente
90

Solo mi opinión sobre el asunto, tres meses después:

Jenkins ha seguido el camino recorrido por el Hudson original con lanzamientos frecuentes que incluyen muchas actualizaciones menores.

Oracle parece haber delegado en gran medida el trabajo en el camino futuro para Hudson al equipo de Sonatype, que ha realizado algunos cambios significativos, especialmente con respecto a Maven. Lo han trasladado conjuntamente a la fundación Eclipse.

Sugeriría que si te gusta el sonido de:

  • lanzamientos menos frecuentes pero que están más probados para la compatibilidad con versiones anteriores (más de un ciclo de lanzamiento de "estilo empresarial")
  • un producto enfocado principalmente en una fuerte integración de Maven y / o Nexus (es decir, no tiene interés en Gradle y Artifactory, etc.)
  • ofertas de soporte profesional de Sonatype u Oracle en lugar de Cloudbees, etc.
  • no le importa tener una comunidad más pequeña de desarrolladores de complementos, etc.

, entonces sugeriría Hudson.

Por el contrario, si prefieres:

  • actualizaciones más frecuentes, incluso si requieren ajustes un poco más frecuentes y tal vez son un poco más riesgosos en términos de compatibilidad (más de un "último y mejor" ciclo de lanzamiento)
  • un sistema con soporte comunitario más activo para, por ejemplo, otros sistemas de compilación / repositorios de artefactos
  • ofertas de soporte del creador original et al. y / o no tiene interés en el apoyo profesional (por ejemplo, está contento siempre que pueda obtener una solución en el "último y mejor" de la próxima semana)
  • un clásico de las brujas estilo OSS de un ecosistema de desarrollo

entonces sugeriría a Jenkins. (y como señaló un comentarista, Jenkins ahora también tiene versiones "LTS" que se mantienen en una rama más "estable")


El curso conservador sería elegir Hudson ahora y migrar a Jenkins si las funciones imprescindibles no están disponibles. El curso dinámico sería elegir Jenkins ahora y migrar a Hudson si perseguir actualizaciones se vuelve demasiado lento para justificarlo.

Zac Thompson
fuente
22
¡O obtenga lo mejor de ambos mundos y use las nuevas versiones de Soporte a largo plazo (LTS) de Jenkins!
Christopher Orr
48

En la delantera ... Soy un committer de Hudson y autor del libro de Hudson, pero no participé en la división completa de los proyectos.

En cualquier caso, aquí está mi consejo:

Eche un vistazo a ambos y vea qué se adapta mejor a sus necesidades

Hudson completará la migración para convertirse en un proyecto de Eclipse de alto nivel a finales de este año y ha conseguido que un montón de desarrolladores a tiempo completo, QA y otros trabajen en el proyecto. Sigue siendo fuerte y tiene muchos usuarios y, al ser el servidor CI predeterminado en Eclipse, continuará satisfaciendo las necesidades de muchos desarrolladores de Java. Mirando la hoja de ruta y los planes para el futuro, puede ver que después de la integración de Maven 3 lograda con la versión 2.1.0, hay muchas otras características interesantes por delante.

http://www.eclipse.org/hudson

Jenkins, por otro lado, se ha ganado muchos usuarios originales de Hudson y tiene una gran comunidad de usuarios a través de múltiples tecnologías y también tiene un montón de desarrolladores trabajando en ello.

En esta etapa, ambos servidores CI son excelentes herramientas para usar y, dependiendo de sus necesidades en términos de tecnología para integrarse con uno u otro, podría ser mejor. Ambos productos están disponibles como código abierto y puede obtener soporte comercial de varias compañías para ambos.

En cualquier caso ... si aún no está utilizando un servidor CI ... comience ahora con cualquiera de ellos y verá grandes beneficios.

Actualización de enero de 2013: después de un largo proceso de limpieza de IP y nuevas mejoras, Hudson 3.0 ya está disponible la primera versión aprobada por la fundación Eclipse.

Manfred Moser
fuente
38

Jenkins es el nuevo Hudson. Realmente es más como un cambio de nombre, no un tenedor, ya que toda la comunidad de desarrollo se mudó a Jenkins. (Oracle se queda sentado en una esquina sosteniendo su vieja pelota "Hudson", pero ahora es solo un proyecto sin alma).

Cf Etéreo -> WireShark

Nathan Kidd
fuente
¿Qué tengo que hacer con mi servidor Hudson Build en ejecución? Supongo que no se actualizará automáticamente a la nueva bifurcación / rama / cambio de nombre de Jenkins. ¿Tengo que configurar el servidor de compilación desde cero?
Michael Küller
44
Puede "actualizar" a Jenkins tal como solía actualizar de una versión de Hudson a otra.
nrobey
Actualmente estoy ejecutando Hudson 1.395. Actualmente no muestra mis actualizaciones disponibles. ¿La actualización que hace que el nombre cambie aparecerá más adelante?
Michael Küller
3
No, Hudson (Oracle) [1] nunca dará una actualización a Jenkins; Si Oracle estuviera dispuesto a trabajar con la comunidad, no habría habido una división en primer lugar. [1] A menos que los cerdos vuelen, el Sr. Ellison se convierte en su amable vecino amigable, etc.
Nathan Kidd
8
Vea aquí: wiki.jenkins-ci.org/display/JENKINS/… para saber cómo agregar Jenkins al centro de actualización de Hudson.
Simon D
27

Tengo dos puntos para agregar. Uno, Hudson / Jenkins tiene que ver con los complementos. Los desarrolladores de complementos se han mudado a Jenkins y nosotros también, los usuarios. Dos, no soy personalmente un gran admirador de los productos de Oracle. De hecho, los evito como la peste. Por el dinero gastado en licencias y hardware para una solución de Oracle, puede contratar el doble del personal de ingeniería y aún queda algo para comprar cerveza todos los viernes :)

Tim Fulmer
fuente
1
Debido a todos los complementos, un Jenkins puede ser bastante diferente del otro, y también diferente de la próxima vez que lo instales.
bbaassssiiee
4

Para aquellos que han mencionado una reconciliación como un futuro potencial para Hudson y Jenkins, con el hecho de que Jenkins se unirá a SPI , es poco probable que en este punto se reconcilien.

Chad Wilson
fuente
4

Desde el sitio web de Jenkins, http://jenkins-ci.org , lo siguiente lo resume.

En pocas palabras, Jenkins CI es el principal servidor de integración continua de código abierto. Construido con Java, proporciona más de 300 complementos para apoyar la creación y prueba de prácticamente cualquier proyecto.

Oracle ahora posee la marca registrada Hudson, pero la ha licenciado bajo el Eclipse EPL . Jenkins está en la licencia MIT . Tanto Hudson como Jenkins son de código abierto. Basado en la combinación de para quién trabaja y la preferencia personal por el código abierto, la decisión es sencilla en mi humilde opinión.

Espero que esto haya sido útil.

Thirumalaa srinivas
fuente
3
Hudson es un proyecto Eclipse de alto nivel ahora.
Manfred Moser
14
Oracle ahora posee Hudson y Jenkins es de código abierto. Ambos tienen licencia MIT . Describir uno como de código abierto y el otro como distinto de código abierto es engañoso. Son software libre.
pb2q
1
Oracle aparentemente posee el nombre Hudson (como marca registrada).
Thorbjørn Ravn Andersen