Jenkins: il fork da Hudson e la nascita del CI/CD open source moderno

Il fork di Jenkins da Hudson (gennaio-febbraio 2011) dopo la disputa sul marchio tra Oracle e la community: Kohsuke Kawaguchi rimane con Jenkins sotto licenza MIT, Hudson passa a Eclipse Foundation. Una lezione di governance open source.

Open SourceWebR&D JenkinsHudsonCI/CDKohsuke KawaguchiForkGovernanceOpen SourceFull-Stack

Un CI server nato in Sun

Hudson — continuous integration server scritto in Java — è stato creato da Kohsuke Kawaguchi presso Sun Microsystems a partire dal 2005 come strumento personale, progressivamente adottato dalla comunità Java fino a diventare il CI server open source più usato al mondo alla fine degli anni 2000. Plugin architecture, build distribuito (master/agent), interfaccia web semplice, support massiccio a linguaggi e strumenti di build: Hudson è la scelta standard in migliaia di progetti, dal singolo sviluppatore a progetti enterprise con migliaia di job.

La disputa Oracle

Nel gennaio 2010 Oracle acquisisce Sun Microsystems. Nell’autunno 2010 emerge una disputa tra Oracle e la community di Hudson su:

  • Controllo del marchio Hudson — Oracle lo registra e lo rivendica
  • Governance del progetto — Oracle propone di passare Hudson a un’infrastruttura Oracle controllata; la community preferisce governance più aperta
  • Policy di contribuzione — tensioni su chi può effettuare release

Il fork

A gennaio 2011 la community Hudson vota in maggioranza schiacciante (oltre il 90%) per forkare il progetto sotto nuovo nome. Il nuovo nome scelto è Jenkins. Kohsuke Kawaguchi — autore originale, che aveva intanto lasciato Oracle — si sposta con Jenkins insieme alla maggioranza della community e dei committer.

Il primo rilascio di Jenkins (1.396, rinominato da Hudson 1.395) esce l’11 febbraio 2011. Licenza MIT.

Hudson rimane a Oracle, che lo cede all’Eclipse Foundation. Pur continuando lo sviluppo, Hudson perde rapidamente rilevanza: nel 2016 la Eclipse Foundation archivierà ufficialmente il progetto.

Jenkins, al contrario, cresce:

  • Plugin — oltre 1000 già nel primo anno, ecosistema tra i più ricchi dell’open source
  • Adozione industriale — Netflix, Twitter, LinkedIn, Yahoo, Amazon (con configurazioni di scala enterprise)
  • Jenkins Pipeline (2016) — DSL Groovy per CD as code
  • Blue Ocean UI (2017) — riscrittura GUI
  • Jenkins X (2018) — evoluzione Kubernetes-native

La governance post-fork

Jenkins adotta governance esplicita: Jenkins Project Board, processi di decisione pubblici, CLA (Contributor License Agreement), infrastruttura ospitata da Software in the Public Interest. Nel 2019 il progetto entrerà formalmente nella Continuous Delivery Foundation (Linux Foundation).

Il fork Hudson/Jenkins diventa caso di studio nella letteratura open source per:

  • Dinamiche di controllo tra sponsor corporate e community
  • Importanza di trademark e governance indipendente
  • Meccanismi di risoluzione quando la fiducia si rompe
  • Dimostrazione empirica che una community attiva può prevalere su un vendor che possiede solo il nome

Il valore tecnico di Jenkins

Indipendentemente dalla storia, Jenkins risolve concretamente:

  • Build automatico ad ogni commit
  • Testing continuo con report integrati (JUnit, TestNG, coverage)
  • Build distribuito — master coordina, agents eseguono in parallelo
  • Integrazione con oltre 1000 strumenti — Git, Maven, Gradle, Ant, Docker, Kubernetes, cloud providers, notifiche Slack/email, deployment tools
  • Pipelines as codeJenkinsfile versionato in Git accanto al codice

Nel contesto italiano

Al 2011 Jenkins/Hudson è già ampiamente diffuso nei team di sviluppo Java italiani. Il fork non causa frammentazione notevole: la maggior parte delle installazioni migra a Jenkins entro pochi mesi, seguendo il percorso della community e dei plugin (che si spostano rapidamente sulla nuova piattaforma).

L’eredità del fork è una lezione: la sostenibilità dell’open source dipende dal controllo del nome e della governance, non solo dalla licenza del codice. Questo principio influenzerà le scelte di molti progetti successivi (OpenStack, Apache CloudStack dopo CloudStack originale, MariaDB dopo MySQL/Oracle).


Riferimenti: Jenkins 1.396 (11 febbraio 2011), fork da Hudson 1.395. Kohsuke Kawaguchi. Licenza MIT. Disputa sul marchio Oracle vs. community, gennaio 2011. Eclipse Foundation (Hudson post-fork). Continuous Delivery Foundation (Linux Foundation) dal 2019.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi