Jak wybrać między Hudsonem a Jenkins? [Zamknięte]

451

Około godziny zajęło mi opracowanie Hudson, który niedawno się rozgałęził (styczeń / 2011)
Nie mam pojęcia, jak szybka jest zmiana każdej gałęzi, ale co ważniejsze, w jakim kierunku zmierza każda gałąź i jakie są kluczowe punktów, aby można było wybrać, z którym wybrać?

Czy ktoś ma linki do mapy produktów i różnic funkcji?

Greg Domjan
źródło
4
co ostatecznie wybrałeś między Jenkins a Hudson?
chmullig
109
@Kev: Nie zgadzam się, że to pytanie nie jest konstruktywne. Nie jest to debata typu „x kontra y, które wolą”, ale dotyczy oddziału Hudsona, który jest bardzo przydatną informacją.
tanascius
9
Tak, ten wątek należy otworzyć ponownie, aby uzyskać bardziej aktualne odpowiedzi.
djangofan
2
@djangofan Rok później było już pytanie uzupełniające: stackoverflow.com/q/11433083/234938 - a teraz, rok później, sytuacja jest nadal taka sama.
Christopher Orr,
5
Rozumiem niebezpieczną naturę tego rodzaju pytań, ale wydaje mi się, że (i) przyniosło bardzo interesujące informacje, (ii) nie rozpoczęło żadnego sporu i (iii) jest uzasadnione, ponieważ nie jest łatwe wybierać bez tego rodzaju informacji
lab419

Odpowiedzi:

503

Użyj Jenkinsa .

Jenkins jest najnowszym widelcem głównych twórców gry Hudson. Aby zrozumieć dlaczego, musisz poznać historię projektu. To był pierwotnie open source i obsługiwany przez Sun. Podobnie jak większość tego, co zrobił Słońce, było dość otwarte, ale było trochę łagodnego zaniedbania. Źródło, moduły śledzące, strona internetowa itp. Były hostowane przez Sun na ich stosunkowo zamkniętej platformie java.net.

Następnie Oracle kupił Sun. Z różnych powodów Oracle nie wstydzi się wykorzystywać tego, co postrzega jako swoje aktywa. Obejmują one pewną kontrolę nad platformą logistyczną Hudson, a zwłaszcza kontrolę nad nazwą Hudson. Wielu użytkowników i współpracowników nie było z tym dobrze i zdecydowało się odejść.

Wszystko sprowadza się do tego, co oferuje Hudson vs Jenkins. Zarówno Hudson Oracle, jak i Jenkins mają kod. Hudson ma wsparcie korporacyjne Oracle i Sonatype oraz markę. Jenkins ma większość głównych programistów, społeczność i (jak dotąd) znacznie bardziej aktualną pracę.

Czytałem, że pisać I związał się szczyt, a następnie odczytać resztę ich w chronologicznym porządku . Dla równowagi można przeczytać Hudson / Oracle wziąć na nią . Dla mnie jasne jest, kto gra w defensywie i kto ma prawdziwe zamiary w tym projekcie.

chmullig
źródło
10
„większość ludzi za tym stoi” - wydaje się, że tak jest w przypadku założycieli projektu, ale należy zauważyć, że Sonotype (Maven inc) zaangażowało się w stronę podziału Hudson, z szeregiem zmian architektonicznych w przygotowaniu . Ciekawie będzie zobaczyć, czy zespół Jenkins nadal ma wystarczająco dużo innowacji w rękawach, aby utrzymać programistę / użytkownika w
umyśle
5
@magic: Przynajmniej na podstawie tego krótkiego porównania , dwa tygodnie po podziale, Jenkins jest zdecydowanie bardziej aktywny. W każdym razie, kiedy jestem z Jenkinsem , ciekawe jest, co planują faceci Sonatype.
Jonik
14
Oto kolejna aktualizacja autorstwa osoby, która napisała krótkie porównanie @ Jonika. Ten jest ~ 2 miesiące później.
chmullig
14
A teraz pięć lat później Jenkins dobrze się rozwija, a Oracle zrzuciła Hudsona na cmentarz słonia Eclipse, gdzie jest, ale z imienia porzucony.
Thorbjørn Ravn Andersen
115

Jak napisał chmullig , użyj Jenkinsa . Niektóre dodatkowe punkty:

  • W rzeczywistości prawdopodobnie rozwidlenie wykonała Oracle ! I technicznie też tak się stało .

  • Ciekawe jest jednak to, co wychodzi z „Hudsona”. Chociaż „Winston podsumowuje stan i różową przyszłość projektu Hudson” , które opublikowali na (nowej) stronie internetowej Hudson, początkowo wydawało mi się to dziwnym humorem, być może było to celowe przejęcie, a chłopaki z Sonatype mają naprawdę wielkie pomysły ich rękaw. Ta analiza sugerująca celową strategię Oracle / Sonatype polegającą na usunięciu Kohsuke i załogi w celu stworzenia bardziej „przedsiębiorczego” Hudsona jest bardzo interesującą lekturą!

  • W każdym razie to krótkie porównanie dwa tygodnie po podziale - choć nie do końca naukowe - pokazuje, że Jenkins jest zdecydowanie bardziej aktywny w tych dwóch projektach.

... i trochę podstawowych informacji:

Twórca Hudsona, Kohsuke Kawaguchi , rozpoczął projekt w wolnym czasie, nawet jeśli pracował dla Sun Microsystems, a później opłacił go za dalszy rozwój. Jak zauważył @erickson w innym pytaniu SO ,

[Hudson / Jenkins] jest produktem jednego genialnego intelektu - Kohsuke Kawaguchi. Z tego powodu jest spójny, spójny i solidny jak skała.

Po przejęciu przez Oracle Kohsuke nie kręcił się długo (z powodu braku monitorów ...?; -] ) i zaczął pracować dla CloudBees . To, co zaczęło się pod koniec 2010 roku jako konflikt między narzędziami między społecznością deweloperów a Oracle, a zakończyło się na zmianę nazwy / fork / split, jest dobrze udokumentowane w podanych linkach chmullig. Dla mnie ta cała zagadka mówi, być może bardziej niż cokolwiek innego, o całkowitej niezdolności lub niechęci Oracle do sponsorowania projektu typu open source w sposób, który zadowoli wszystkie strony (Oracle, programiści, użytkownicy). Nie ma ich w DNA ani czymś takim, jak widzieliśmy w innych przypadkach .

Biorąc powyższe pod uwagę, osobiście podążę za Kohsuke i innymi głównymi programistami w tej kwestii i pójdę z Jenkins.

Jonik
źródło
90

Tylko moje zdanie na ten temat, trzy miesiące później:

Jenkins kontynuował ścieżkę dobrze zdeptaną przez oryginalnego Hudsona, z częstymi wydaniami, w tym wieloma drobnymi aktualizacjami.

Wydaje się, że Oracle w dużej mierze przekazało prace nad przyszłą ścieżką dla Hudsona zespołowi Sonatype, który dokonał pewnych znaczących zmian, szczególnie w odniesieniu do Maven. Wspólnie przenieśli go do fundacji Eclipse.

Sugerowałbym, że jeśli lubisz dźwięk:

  • rzadsze wersje, ale te, które są bardziej przetestowane pod kątem zgodności z poprzednimi wersjami (bardziej cykl wydań „w stylu korporacyjnym”)
  • produkt skoncentrowany przede wszystkim na silnej integracji Maven i / lub Nexus (tzn. nie interesujesz się Gradle i Artifactory itp.)
  • oferty profesjonalnej pomocy technicznej od Sonatype, a może Oracle zamiast Cloudbees itp
  • nie masz nic przeciwko posiadaniu mniejszej społeczności programistów wtyczek itp.

, wtedy zasugerowałbym Hudsona.

I odwrotnie, jeśli wolisz:

  • częstsze aktualizacje, nawet jeśli wymagają nieco częstszych poprawek i są być może nieco bardziej ryzykowne pod względem zgodności (bardziej „najnowszy i największy” cykl wydawniczy)
  • system z bardziej aktywnym wsparciem społeczności dla np. innych systemów kompilacji / repozytoriów artefaktów
  • oferty wsparcia od oryginalnego twórcy i in. i / lub nie jesteś zainteresowany profesjonalnym wsparciem (np. jesteś szczęśliwy, dopóki możesz uzyskać poprawkę w „najnowszym i najlepszym” w przyszłym tygodniu)
  • klasyczny wiedźminowy napar czarownic z ekosystemu rozwojowego

wtedy zasugerowałbym Jenkinsa. (i jak zauważył komentator, Jenkins ma teraz również wersje „LTS”, które są utrzymywane w bardziej „stabilnej” gałęzi)


Konserwatywnym kursem byłoby wybranie Hudsona teraz i migracja do Jenkins, jeśli niezbędne funkcje są niedostępne. Kurs dynamiczny polegałby na tym, aby teraz wybrać Jenkinsa i przeprowadzić migrację do Hudson, jeśli ściganie aktualizacji staje się zbyt czasochłonne, aby uzasadnić.

Zac Thompson
źródło
22
Lub skorzystaj z obu możliwości i skorzystaj z nowych wersji Jenkins Long-Term Support (LTS)!
Christopher Orr,
48

Z góry .. Jestem komisarzem Hudson i autorem książki Hudson, ale nie byłem zaangażowany w cały podział projektów.

W każdym razie oto moja rada:

Sprawdź oba i zobacz, co lepiej odpowiada Twoim potrzebom.

Hudson dokończy migrację, aby stać się projektami Eclipse na najwyższym poziomie pod koniec tego roku i zebrał całą grupę pełnoetatowych programistów, QA i innych pracujących nad projektem. Wciąż ma się dobrze i ma wielu użytkowników, a ponieważ jest domyślnym serwerem CI w Eclipse, nadal będzie spełniał potrzeby wielu programistów Java. Patrząc na mapę drogową i plany na przyszłość, można zauważyć, że po integracji Maven 3 z wydaniem 2.1.0 czeka na nas cała masa innych interesujących funkcji.

http://www.eclipse.org/hudson

Z drugiej strony Jenkins zdobył wielu oryginalnych użytkowników Hudson i ma dużą społeczność użytkowników w wielu technologiach, a także pracuje nad tym cała grupa programistów.

Na tym etapie oba serwery CI są świetnymi narzędziami do użycia, a w zależności od potrzeb pod względem technologii integracja z jednym lub drugim może być lepsza. Oba produkty są dostępne jako oprogramowanie typu open source, a dla obu możesz uzyskać wsparcie handlowe od różnych firm.

W każdym razie ... jeśli jeszcze nie korzystasz z serwera CI ... zacznij teraz od jednego z nich, a zobaczysz ogromne korzyści.

Aktualizacja styczeń 2013: po długim procesie czyszczenia IP i dalszych udoskonaleniach Hudson 3.0 jako pierwsza zatwierdzona wersja Eclipse Foundation jest już dostępna.

Manfred Moser
źródło
38

Jenkins jest nowym Hudsonem. To naprawdę jest bardziej jak zmiana nazwy, a nie rozwidlenie, ponieważ cała społeczność programistów przeniosła się do Jenkins. (Oracle zostaje w kącie, trzymając swoją starą piłkę „Hudson”, ale teraz jest to projekt bez duszy).

Cf Ethereal -> WireShark

Nathan Kidd
źródło
Co mam zrobić z działającym serwerem Hudson Build? Chyba nie zostanie automatycznie zaktualizowany do nowego rozwidlenia / gałęzi / zmiany nazwy Jenkins. Czy muszę skonfigurować serwer kompilacji od zera?
Michael Küller
4
Możesz „uaktualnić” do Jenkinsa tak samo, jak przy aktualizacji z jednej wersji Hudsona do innej.
nrobey
Obecnie korzystam z Hudson 1.395. Obecnie nie pokazuje moich dostępnych aktualizacji. Czy aktualizacja, która powoduje zmianę nazwy, pojawi się później?
Michael Küller,
3
Nie, Hudson (Oracle) [1] nigdy nie dostarczy aktualizacji Jenkinsowi; gdyby Oracle był skłonny współpracować ze społecznością, nie byłoby podziału. [1] Z wyjątkiem latających świń, Ellison zostaje twoim przyjaznym przyjaznym sąsiadem itp.
Nathan Kidd
8
Zobacz tutaj: wiki.jenkins-ci.org/display/JENKINS/…, aby dowiedzieć się, jak dodać Jenkinsa do centrum aktualizacji Hudsona.
Simon D
27

Mam dwa punkty do dodania. Po pierwsze, w Hudson / Jenkins chodzi o wtyczki. Programiści wtyczek przenieśli się do Jenkins, podobnie jak my, użytkownicy. Po drugie, osobiście nie jestem wielkim fanem produktów Oracle. W rzeczywistości unikam ich jak zarazy. Za pieniądze wydane na licencje i sprzęt dla rozwiązania Oracle możesz wynająć dwa razy kadrę inżynieryjną, a nadal masz trochę do kupienia piwa w każdy piątek :)

Tim Fulmer
źródło
1
Ze względu na wszystkie wtyczki jeden Jenkins może być zupełnie inny od drugiego, a także inny niż przy następnej instalacji.
bbaassssiiee
4

Dla tych, którzy wymienili pojednanie jako potencjalną przyszłość dla Hudsona i Jenkinsa, a fakt, że Jenkins dołączy do SPI , jest mało prawdopodobne, aby w tym momencie się pogodzili.

Chad Wilson
źródło
4

Na stronie internetowej Jenkins, http://jenkins-ci.org , podsumowano to poniżej.

Krótko mówiąc, Jenkins CI jest wiodącym serwerem ciągłej integracji open source. Zbudowany w Javie, zapewnia ponad 300 wtyczek do obsługi budowania i testowania praktycznie każdego projektu.

Oracle jest teraz właścicielem znaku towarowego Hudson, ale uzyskał licencję na podstawie Eclipse EPL . Jenkins jest na licencji MIT . Zarówno Hudson, jak i Jenkins są oprogramowaniem typu open source. Na podstawie połączenia tego, dla kogo pracujesz i osobistych preferencji dla oprogramowania typu open source, decyzja jest prosta.

Mam nadzieję, że to było pomocne.

thirumalaa srinivas
źródło
3
Hudson jest teraz projektem Eclipse na najwyższym poziomie.
Manfred Moser
14
Oracle jest teraz właścicielem Hudson, a Jenkins jest oprogramowaniem typu open source. Oba są na licencji MIT . Określanie jednego jako open-source, a drugiego jako innego niż open-source jest mylące. Są wolnym oprogramowaniem.
pb2q
1
Najwyraźniej Oracle ma nazwę Hudson (jako znak towarowy).
Thorbjørn Ravn Andersen