KernelCI è ora un progetto della LinuxFoundation!

KernelCI è un sistema automatico di testing del Kernel Linux open-source e community driven nato nel 2015 per ovviare ad uno dei più grandi problemi relativi allo sviluppo di Linux: la frammentarietà.

Dalle parole di uno dei fondatori del progetto, Kevin Hilman:

“One of the big problems that we have now is we have six or seven different code testing projects that were sending kernel developers and maintainers reports This was getting really annoying so we came together and said, ‘pick one and use it as a framework’ and so we’ve agreed on KernelCI so, we’re all gonna work together, not to duplicate our efforts and results.”

“Uno dei maggiori problemi che è che attualmente sono in corso sei o sette differenti progetti di testing, tutti che mandano report (differenti) agli sviluppatori. Tutto ciò è così fastidioso che ci ha spinto a decidere di ‘sceglierne uno e usarlo come framework’. E così è nato KernelCI, sul quale lavoreremo tutti insieme in modo da evitare di duplicare sforzi o risultati”

Come tutti sappiamo, lo sviluppo del Kernel Linux è portato avanti in maniera collaborativa e viene coordinato tarmite i messaggi sulla mailing list ufficiale. Il metodo è virtuoso ma non ugualmente efficace nella fase di test, che viene eseguita in maniera frammentata e molto spesso solo sulle macchine degli stessi sviluppatori rendendo sostanzialmente impossibile affermare la bontà e soprattutto l’universalità del codice prodotto.

Sono gli stessi sviluppatori a segnalare la fallacia del metodo di test usato.
Russel Currey, sviluppatore:

“[Unlike a project based solely on GitHub or GitLab] where a pull request contains all of the information needed to merge a group of changes; an email […] lacks that context. It is nearly impossible to tell from an email message whether a patch series has been merged, rejected, or superseded. In general, mailing lists simply do not carry the same level of metadata as contemporary project-hosting sites, and that makes the CI [Continuous Integration] problem harder.”

Diversamente da come avviene nei progetti basati solo su GitHub/GitLab, dove le richieste di pull contengono tutte le informazioni necessario per il merge, un messagio mail [della mailing list] non possiede questo genere di informazioni. È quasi impossibile comprendere, in questo modo, se una patch è stata inclusa, respinta o sostituita. Generalmente la mailing list non contiene lo stesso livello di metadati dei portali di sviluppo collaborativo [di nuovo, GitHub/GitLab] e questo rende ancora più complicata la Continuos Integration.

Tesi simile quella di Greg Kroah-Hartman, sviluppatore del branch stabile del kernel:

“Linux runs everywhere and on so many different pieces of hardware and but the testing on that hardware was very minimal. Most people, were just testing on the few things that they cared about. So we want to test it on as much hardware as we could to make sure that we’re actually supporting all the hardware that we claim we’re supporting.”

“Linux ‘gira‘ ovunque e su molti tipi di hardware diverso ma i test su tale hardware sono pochissimi. La maggior parte delle persone testa solo ciò che ritiene opportuno, Quindi vogliamo testarlo su tutto l’hardware possibile per assicurrci di stare effettivamente supportanto tutto l’hardware che sosteniamo essere compatibile”

Ed è proprio qui che entra in gioco KernelCI, la cui missione è tentare di trovare una soluzione a tutto questo, facendo confluire gli sforzi degli sviluppatori in un unico ambiente per aumentare l’efficacia e la stabilità del codice scritto. Con il tempo il progetto è diventato maturo abbastanza da assicurarsi la sponsorship della Linux Foundation, con tutti i privilegi del caso, primo fra tutti la disponibilità dei fondi.

Non possiamo che augurarci come il progetto possa crescere ancora di più e possa facilitare in maniera sempre maggiore il lavoro di tutti coloro che si impegnano nel testare e rendere ancora più stabile, sicuro ed efficiente il nostro sistema operativo preferito!

Tags: , , ,