[ninux-dev] Netdiff: badge & controlli automatizzati - IMPORTANTE

nemesis nemesis at ninux.org
Tue Nov 11 17:11:33 CET 2014


 Premessa:
 ignorate quelle prime quattro mail che sono arrivate da coveralls.io, 
 erano dei test. Ma fate attenzione se arrivassero altre mail.
 Potrebbe arrivare qualche altra email di test da travis-ci.org.

 Notate i badge aggiunti sul README:
 https://github.com/ninuxorg/netdiff/blob/master/README.rst

 Ora vi spiego cosa sono in ordine da sinistra verso destra.

 *Primo badge: Travis CI*

 https://travis-ci.org/ninuxorg/netdiff
 Come funziona (per chi non lo sa):
 Ogni volta che viene fatto un commit travis fa partire una procedura 
 chiamata "build".
 La build è definita qui:
 https://github.com/ninuxorg/netdiff/blob/master/.travis.yml
 La build può essere marcata come "passed" se tutto è andato bene o 
 "failed" se ci sono stati problemi.
 Le build vengono fatte anche quando si inviano delle pull request sul 
 branch master, gli status delle build vengono mostrati sulla pull 
 request.

 La configurazione dovrebbe essere abbastanza chiara:
  * *language*: indica che il linguaggio è python
  * *python*: indica le versioni di python testate: 2.7 e 3.4
  * *branches*: indica che la build viene eseguita solo per i commit che 
 vengono fatti sul branch master
  * *install*: indica quali sono i comandi per installare l'occorrente 
 per fare la build
  * *script*: indica il comando per far partire i test, è lo stesso che 
 sta nel README
  * *after_success*: indica i comandi da eseguire quando la build è 
 successful, nel nostro caso viene eseguito il comando "coveralls" 
 installato prima con "pip install coverage coveralls", il comando si 
 occupa di mandare il coverage report al servizio coveralls.io che spiego 
 più avanti
  * *notifications*: indica dove mandare le notifiche, fino ad oggi non 
 ho mai usato questa sezione perchè di solito le notifiche me le becco 
 solo io che ho l'account github linkato a travis, ma ora sto cercando di 
 fare in modo che le notifiche arrivino anche qui, quindi ho messo 
 temporaneamente "always" per fare arrivare le notifiche ad ogni commit, 
 ma l'obiettivo è fare in modo che vengano mandate notifiche solo quando 
 la build cambia stato

 *Secondo badge: Coveralls*

 Quando vengono eseguite le build è possibile calcolare la percentuale 
 del codice testato dalla test suite. Avere una percentuale sopra il 90% 
 è una buona pratica che fa dormire sonni tranquilli. Non è una sicurezza 
 completa che non ci siano bug, ma è un indice significativo.

 Coveralls è semplicemente una bella interfaccina che fa una versione 
 HTML del comando: nosetests --with-coverage --cover-package=netdiff
 E offre qualche altra funzionalità in più come le notifiche quando la 
 percentuale di coverage cambia sensibilmente.

 Il coverage viene ricalcolato solo sulle build che passano.
 Il coverage viene calcolato anche sulle pull request, ad esempio qui 
 c'è un info interessante sulla PR di leonardo:
 https://coveralls.io/files/349872331
 Noterete delle righe con sfondo rosso, quelle sono le righe che non 
 vengono eseguite durante la build.

 *Terzo badge: Landscape*

 Questo è un tool abbastanza nuovo, permette di fare analisi automatica 
 del codice con strumenti tipo pylint e simili.
 Anche questo non da una garanzia assoluta che il codice sia stato 
 scritto da mostri della programmazione, però individua problemi con 3 
 livelli di gravità:
  * code errors
  * code smells
  * style warnings

 Per esempio, nel primo commit c'era 1 solo problema individuato:
 https://landscape.io/github/ninuxorg/netdiff/1/modules/netdiff/olsr1.py
 Old-style class defined.

 Se non è chiaro perchè una cosa è un problema basta googlare.

 *Quarto badge: requires.io*

 Requires.io fa monitoring dei requirements indicati in:
 https://github.com/ninuxorg/netdiff/blob/master/requirements.txt

 Ci sono tre possibili stati:
 * uptodate
 * outofdate
 * insecure

 Nel requirements.txt vanno indicati tutte le dipendenze per far 
 funzionare il pacchetto, nel nostro caso al momento solo networkx, ma 
 sicuramente aggiungeremo qualcos altro (tipo matplotlib se vogliamo che 
 la funzionalità aggiunta da leonardo funzioni).

 Anche requires.io manda delle email ma al momento posso configurare una 
 sola mail per tutti i repository che monitorizzo, non credo si possano 
 specificare mail diverse per repo diversi.

 *Quinto badge: pypi version*

 Indica la versione dell'ultimo rilascio effettuato su pypi (Python 
 Package Index).
 Questa è la versione che verrà installata quando si farà: "pip install 
 netdiff"
 Al momento la versione registrata è 0.1alpha ed è solo un placeholder.

 *Sesto badge: pypi downloads"

 Indica i downloads della libreria effettuati attraverso pypi.
 Al momento sono 0 ovviamente.

 Nemesis




More information about the ninux-dev mailing list