Download - Linux Day 2015 Genova

Transcript

SOFTWARE LIBERO SIGNIFICA COLLABORAZIONE GLOBALE L’ESEMPIO DI GITHUB

LINUX DAY 2015 GENOVA 24/10/2015

MARCO PERRANDO

@MARCOPERRANDO [email protected]

CHI SVILUPPA IL SOFTWARE LIBERO?

https://i.ytimg.com/vi/lGABWh3fRfc/maxresdefault.jpg

DIAMO UN PO’ DI NUMERI

VLCFONTE: OPENHUB.NET

Fonte: openhub.net

LIBREOFFICEFONTE: OPENHUB.NET

Fonte: openhub.net

LINUX KERNELFONTE: OPENHUB.NET

Fonte: openhub.net

totali 1anno 30gg LOC

716 94 21 0,6 mln

1429 282 96 7,2 mln

14829 3726 447 18,2 mln

COME SI COLLABORA A UN PROGETTO

COME INVIO UNA CORREZIONE AL SOFTWARE?

???

COME INVIO UNA CORREZIONE AL SOFTWARE?

MANDO L’INTERO CODICE

▸ PRIMO PROBLEMA: magari si tratta di centinaia di MB o anche qualche GB di codice e io ho corretto solo poche linee!

▸ SECONDO PROBLEMA: chi deve integrare modifiche provenienti da molti contributori sarebbe in difficoltà!

IL PROGRAMMA V1.3

HA 2 BUG!

IL PROGRAMMA V1.3

HA 2 BUG!

IL PROGRAMMA V1.3

HA 2 BUG!

SCARICA DA INTERNET

SCARICA DA INTERNET

TROVA IL BUG XIL PROGRAMMA V1.3

HA 2 BUG!

SCARICA DA INTERNET

SCARICA DA INTERNET

TROVA IL BUG X

TROVA IL BUG Y

IL PROGRAMMA V1.3

HA 2 BUG!

SCARICA DA INTERNET

SCARICA DA INTERNET

CORREGGE IL BACO X

INVA CODICE

CORREGGE IL BACO X

INVA CODICE

CORREGGE IL BACO X

CORREGGE IL BACO Y

INVA CODICE

CORREGGE IL BACO X

CORREGGE IL BACO Y

INVA CODICE

INVA CODICE

CORREGGE IL BACO X

CORREGGE IL BACO Y

INVA CODICE

QUESTO CODICE HA ANCORA IL BUG X!

INVIARE SOLO LE ISTRUZIONI SU COME HO MODIFICATO IL CODICE SORGENTE!

http://cdn-1.faidatemania.it/o/orig/come-mettere-la-toppa-ai-jeans_c944c67273cf2ee46a81a2842019fd2e.jpg

RIPARA (FIX) UN “BUG” NEL SOFTWARE

IL SOFTWARE “CRESCE” PATCH DOPO PATCH

È PIÙ DIFFICILE INTEGRARE LE MODIFICHE CHE FARLE!

VERSION CONTROL

GIT

GITHUB

TOP CONTRIBUTORSPROGETTO LIBREOFFICE

Fonte: openhub.net

Fonte: openhub.net

Fonte: openhub.net

Fonte: openhub.net

Fonte: openhub.net

GIT

https://cdn2.vox-cdn.com/thumbor/MdRppF7b3o80Hv6zj0-c7Ok_qPQ=/0x17:640x377/1600x900/cdn0.vox-cdn.com/assets/1019714/linustorvalds.png

https://cdn2.vox-cdn.com/thumbor/MdRppF7b3o80Hv6zj0-c7Ok_qPQ=/0x17:640x377/1600x900/cdn0.vox-cdn.com/assets/1019714/linustorvalds.png

https://cdn2.vox-cdn.com/thumbor/MdRppF7b3o80Hv6zj0-c7Ok_qPQ=/0x17:640x377/1600x900/cdn0.vox-cdn.com/assets/1019714/linustorvalds.png

2005

https://cdn2.vox-cdn.com/thumbor/MdRppF7b3o80Hv6zj0-c7Ok_qPQ=/0x17:640x377/1600x900/cdn0.vox-cdn.com/assets/1019714/linustorvalds.png

GIT

COSA FA GIT?

▸ Ogni volta che inseriamo una patch nel codice, git ne tiene traccia in una cosa chiamata

GIT

COSA FA GIT?

▸ Ogni volta che inseriamo una patch nel codice, git ne tiene traccia in una cosa chiamata

COMMIT

GIT

COS’È UNA COMMIT?

▸ È una patch con un po’ di informazioni aggiuntive

▸ Un messaggio che descrive la patch

▸ L’autore

▸ Il “committer”

▸ Le commit “genitori”

IN QUESTO MODO IL PROGETTO SOFTWARE HA UNA PROPRIA “STORIA”

SOLO 1036 LINEE DI CODICE

GITHUB

http://google-opensource.blogspot.it/2015/03/farewell-to-google-code.html

https://code.google.com/export-to-github/

GITHUB

NON È SOLO GIT

▸ Issue tracker raccoglie segnalazioni e ne traccia il ciclo di vita.

▸ Wiki permette di scrivere delle pagine web di supporto.

VEDIAMO UN PO’ CHI C’È SU GITHUB

LICENZE SU GITHUB

FONTE: GITHUB 9 MARZO 2015

https://github.com/blog/1964-license-usage-on-github-com

UTENTI DI GITHUB

FONTE: GITHUB 17 GENNAIO 2013

PULL REQUEST

1. FORKPULL REQUEST

2. MODIFICO IL CODICEPULL REQUEST

3. MI PREPAROPULL REQUEST

4. FACCIO LA MIA PRPULL REQUEST

CHIUNQUE PUÒ COLLABORARE A UN PROGETTO SU GITHUB!

COSA CI DA ANCORA GITHUB?

GITHUB PAGES

SU COSA POSSIAMO CREARE LE PAGINE DI GITHUB?

▸ i nostri progetti

▸ noi, profilo personale

▸ per la nostra organizzazione

QUINDI COSA ASPETTATE?

ANDATE SUBITO A LAVORARE AD UN REPOSITORY SU GITHUB!

https://theleidener.files.wordpress.com/2015/03/unclesam.png

GRAZIE.https://www.slideshare.net/mperrando/linux-day-2015-genova-54320564

https://creativecommons.org/licenses/by-nc-sa/4.0/

Distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale.