際際滷

際際滷Share a Scribd company logo
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: da Oggi Contribuisco Anch'io!
Alex Comba
Agile Business Group
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: Odoo Community Association
The Odoo Community Association, or OCA, is a nonprofit
organization whose mission is to support the
collaborative development of Odoo features and
promote its widespread use.
http://odoo-community.org/
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: organizzazione (1/3)
 Teams

Community Backport Team ( OCB) Odoo additional and early bugfixes

Business Topics Teams (18) Accounting, Sales, Logistics, 

Localization Teams (16) By country

Vertical Interest Teams (8) Hotel, Construction, Medical, ...

Connector Teams (7) Integrate Odoo with Magento, Sage, LIMS, ...

Community Maintainers Tools Team
http://odoo-community.org/page/List
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: organizzazione (2/3)
Ogni team pu嘆 essere composto da uno o pi湛 progetti.
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: organizzazione (3/3)
Ad ogni progetto corrisponde un repo su github.com/OCA
Agile Business Group - www.agilebg.com - info@agilebg.com
Struttura di un repo su github/OCA
Per ogni branch: [moduli] + .gitignore + .travis.yml + README.md
Agile Business Group - www.agilebg.com - info@agilebg.com
QA: Quality Assurance (1/3)
Per assicurare la qualit del codice rilasciato, OCA si avvale di alcuni
tools QA:
 https://travis-ci.org/
 https://coveralls.io/
Travis CI rileva automaticamente quando un nuovo commit viene
pushato sul repository, e ogni volta che questo accade, si occupa di
creare una nuova build del progetto, eseguire i test e segnalarne il
risultato positivo con una luce verde o negativo con una luce rossa.
Coveralls determina quale percentuale del codice del progetto viene
effettivamente coperta dai test.
Agile Business Group - www.agilebg.com - info@agilebg.com
QA: Quality Assurance (2/3)
All'interno del progetto OCA/maintainer-quality-tools (MQT) sono
contenuti gli strumenti QA utilizzati durante le build su Travis CI.
 sample_files/.travis.yml (file template di configurazione di Travis CI
per ciascun progetto OCA)
 travis/travis_run_tests

travis/test_flake8

travis/cfg/travis_run_flake8.cfg

travis/cfg/travis_run_flake8__init__.cfg

travis/test_pylint

travis/cfg/travis_run_pylint.cfg

travis/test_server
Agile Business Group - www.agilebg.com - info@agilebg.com
QA: Quality Assurance (3/3)
travis_run_tests exited with 0 > LUCE VERDE!!!
Agile Business Group - www.agilebg.com - info@agilebg.com
README.md progetto
OCA/maintainer-quality-tools/blob/master/README.md
Agile Business Group - www.agilebg.com - info@agilebg.com
README modulo (1/2)
A partire da ec0b770[1] la chiave 'description' pu嘆 essere impostata
anche in ['README.rst', 'README.md', 'README.txt']
reST e markdown rendono la visualizzazione della descrizione del
modulo pi湛 accattivante
Al suo interno si possono aggiungere le sezioni:
 Authors
 Contributors
In github, le issues, i commenti, e le descrizioni delle PR utilizzano un
dialetto di markdown[2]
[1] https://github.com/odoo/odoo/commit/ec0b770ed3c4f4fbdf0f24930aaa05bcc5cb0b53
[2] https://help.github.com/articles/github-flavored-markdown/
Agile Business Group - www.agilebg.com - info@agilebg.com
README modulo (2/2)
Maggior visibilit per Authors e Contributors
Agile Business Group - www.agilebg.com - info@agilebg.com
Come contribuire su github
I principali strumenti messi a disposizione da github per contribuire
sono:
 Pull Request (PR)
 Issue
Una PR 竪 il modo per comunicare che abbiamo apportato delle
modifiche che vorremmo venissero incluse nel progetto. La tipologia
utilizzata per OCA 竪 il fork and pull.
Le Issues vengono utilizzate per segnalare task , bug o feature di un
progetto. Queste andrebbero sempre controllate ed utilizzate,
soprattutto quando ci prepariamo ad inviare una PR. Potrebbe infatti
darsi che il bug che stiamo correggendo sia noto e gi segnalato da
qualcunaltro.
Agile Business Group - www.agilebg.com - info@agilebg.com
hub: come sfruttare al meglio github
https://hub.github.com/
Per estendere git con i comandi di hub 竪 sufficiente aggiungere a .bashrc o
.bash_profile:
eval "$(hub alias -s)"
Agile Business Group - www.agilebg.com - info@agilebg.com
Workflow per PR fork and pull (1/3)
Supponiamo di aver scovato un bug in un modulo di OCA/l10n-italy
branch 8.0 e di voler proporre la sua fix.
$ git clone OCA/l10n-italy
$ cd l10n-italy
$ git browse -- issues (apre https://github.com/OCA/l10n-italy/issues)
$ git checkout -b 8.0-fix-issue1
( scrivo le modifiche...)
$ git add -p
$ git commit -m "Close issue #1"
https://help.github.com/articles/closing-issues-via-commit-messages/
Un messaggio di commit scritto bene rende il processo di review pi湛 veloce.
Agile Business Group - www.agilebg.com - info@agilebg.com
Workflow per PR fork and pull (2/3)
Non potendo scrivere direttamente sul progetto, devo crearne una
copia, ovvero un fork.
$ git fork
 (fork su github: tafaRU/l10n-italy)
 (git remote add tafaRU git@github.com:tafaRU/l10n-italy.git)
$ git push tafaRU
In alternativa:
$ git pull-request
(apre il text editor per modificare il titolo, aprire il link della PR appena creata e modificare descrizione)
Agile Business Group - www.agilebg.com - info@agilebg.com
Workflow per PR fork and pull (3/3)
Ora che la PR 竪 stata aperta inizia il processo di review, una vera 竪
propria conversazione in stile social in cui potremmo discutere insieme
ai vari reviewer. Dovremmo essere pronti a sostenere discussioni,
applicare ulteriori fix o ad accettare un eventuale rifiuto.
L'accettazione della PR e quindi il suo merge dipende esclusivamente da
due fattori:
 > 2

[1] http://odoo-community.org/page/how-to ( con 3 approve, merge quasi immediato)
[1][2]
[2] emojis - :+1:
Agile Business Group - www.agilebg.com - info@agilebg.com
Come muoversi tra i vari branches
Vediamo cosa dovreste fare per contribuire allo sviluppo di 8.0-fix-issue1:
$ git remote add -p tafaRU
# controllo i remotes
$ git remote -v
$ git fetch tafaRU - $ git fetch all
$ git checkout 8.0-fix-issue1
$ git checkout -b 8.0-imp-issue1
# aggiungo le modifiche e le committo
$ git push your_account
# faccio PR con base tafaRU/l10n-italy e branch 8.0-fix-issue1
Agile Business Group - www.agilebg.com - info@agilebg.com
Rebase una PR
Una delle richieste pi湛 ricorrenti durante una PR:
Questo ha come risultato:
 integrare nel vostro branch le modifiche approdate sul
branch principale
 rilanciare la build di Travis CI
A partire dal vostro branch 8.0-fix-issue1:
$ git rebase origin/8.0 ( opzione -i per pulire commit)
$ git push -f (riscrivo la history!!!)
https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
Agile Business Group - www.agilebg.com - info@agilebg.com
Convenzioni e linee guida
Quelle presenti sono ancora incomplete o poco aggiornate:
http://odoo-community.org/page/how-to
Quello che fa fede al momento sono i tools presenti nell' MQT repo, per
tale motivo vi consiglio di impostare il watching[1], per essere notificati
su tutte le nuove PR e nuove issue.
Ad es. https://github.com/OCA/maintainer-quality-tools/issues/46
[1] https://help.github.com/articles/watching-repositories/
Agile Business Group - www.agilebg.com - info@agilebg.com
Come contribuire: review di PR
 Review di PR

Code review

Manual testing

Functional review
Ogni venerd狸 si tiene l'OCA Review Day:
 https://waffle.io/oca/maintainers-tools
 https://github.com/pulls?user=OCA
Agile Business Group - www.agilebg.com - info@agilebg.com
Canali di comunicazione
 Mailing lists

https://www.odoo.com/page/odoo-community
 IRC (freenode.net)

#openobject

https://botbot.me/freenode/openobject/

#oca (discutere le PR e vedere aggiornamenti PR)
 Twitter

@OdooCommunity

@OCA_Bot (merge di PR)
Agile Business Group - www.agilebg.com - info@agilebg.com
OCA: Ovvero, Con un'Aforisma
"Given enough eyeballs, all bugs are shallow"
Eric Steven Raymond(The Cathedral and the Bazaar)
Agile Business Group - www.agilebg.com - info@agilebg.com
GRAZIE!
 GitHub: github.com/tafaRU
 Twitter: @tafaRU
 IRC: tafaRU
 LinkedIn: it.linkedin.com/in/tafaru
 Gmail: alex.comba@agilebg.com

More Related Content

05 OCA, da Oggi Contribuisco Anch'io!

  • 1. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: da Oggi Contribuisco Anch'io! Alex Comba Agile Business Group
  • 2. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: Odoo Community Association The Odoo Community Association, or OCA, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. http://odoo-community.org/
  • 3. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: organizzazione (1/3) Teams Community Backport Team ( OCB) Odoo additional and early bugfixes Business Topics Teams (18) Accounting, Sales, Logistics, Localization Teams (16) By country Vertical Interest Teams (8) Hotel, Construction, Medical, ... Connector Teams (7) Integrate Odoo with Magento, Sage, LIMS, ... Community Maintainers Tools Team http://odoo-community.org/page/List
  • 4. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: organizzazione (2/3) Ogni team pu嘆 essere composto da uno o pi湛 progetti.
  • 5. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: organizzazione (3/3) Ad ogni progetto corrisponde un repo su github.com/OCA
  • 6. Agile Business Group - www.agilebg.com - info@agilebg.com Struttura di un repo su github/OCA Per ogni branch: [moduli] + .gitignore + .travis.yml + README.md
  • 7. Agile Business Group - www.agilebg.com - info@agilebg.com QA: Quality Assurance (1/3) Per assicurare la qualit del codice rilasciato, OCA si avvale di alcuni tools QA: https://travis-ci.org/ https://coveralls.io/ Travis CI rileva automaticamente quando un nuovo commit viene pushato sul repository, e ogni volta che questo accade, si occupa di creare una nuova build del progetto, eseguire i test e segnalarne il risultato positivo con una luce verde o negativo con una luce rossa. Coveralls determina quale percentuale del codice del progetto viene effettivamente coperta dai test.
  • 8. Agile Business Group - www.agilebg.com - info@agilebg.com QA: Quality Assurance (2/3) All'interno del progetto OCA/maintainer-quality-tools (MQT) sono contenuti gli strumenti QA utilizzati durante le build su Travis CI. sample_files/.travis.yml (file template di configurazione di Travis CI per ciascun progetto OCA) travis/travis_run_tests travis/test_flake8 travis/cfg/travis_run_flake8.cfg travis/cfg/travis_run_flake8__init__.cfg travis/test_pylint travis/cfg/travis_run_pylint.cfg travis/test_server
  • 9. Agile Business Group - www.agilebg.com - info@agilebg.com QA: Quality Assurance (3/3) travis_run_tests exited with 0 > LUCE VERDE!!!
  • 10. Agile Business Group - www.agilebg.com - info@agilebg.com README.md progetto OCA/maintainer-quality-tools/blob/master/README.md
  • 11. Agile Business Group - www.agilebg.com - info@agilebg.com README modulo (1/2) A partire da ec0b770[1] la chiave 'description' pu嘆 essere impostata anche in ['README.rst', 'README.md', 'README.txt'] reST e markdown rendono la visualizzazione della descrizione del modulo pi湛 accattivante Al suo interno si possono aggiungere le sezioni: Authors Contributors In github, le issues, i commenti, e le descrizioni delle PR utilizzano un dialetto di markdown[2] [1] https://github.com/odoo/odoo/commit/ec0b770ed3c4f4fbdf0f24930aaa05bcc5cb0b53 [2] https://help.github.com/articles/github-flavored-markdown/
  • 12. Agile Business Group - www.agilebg.com - info@agilebg.com README modulo (2/2) Maggior visibilit per Authors e Contributors
  • 13. Agile Business Group - www.agilebg.com - info@agilebg.com Come contribuire su github I principali strumenti messi a disposizione da github per contribuire sono: Pull Request (PR) Issue Una PR 竪 il modo per comunicare che abbiamo apportato delle modifiche che vorremmo venissero incluse nel progetto. La tipologia utilizzata per OCA 竪 il fork and pull. Le Issues vengono utilizzate per segnalare task , bug o feature di un progetto. Queste andrebbero sempre controllate ed utilizzate, soprattutto quando ci prepariamo ad inviare una PR. Potrebbe infatti darsi che il bug che stiamo correggendo sia noto e gi segnalato da qualcunaltro.
  • 14. Agile Business Group - www.agilebg.com - info@agilebg.com hub: come sfruttare al meglio github https://hub.github.com/ Per estendere git con i comandi di hub 竪 sufficiente aggiungere a .bashrc o .bash_profile: eval "$(hub alias -s)"
  • 15. Agile Business Group - www.agilebg.com - info@agilebg.com Workflow per PR fork and pull (1/3) Supponiamo di aver scovato un bug in un modulo di OCA/l10n-italy branch 8.0 e di voler proporre la sua fix. $ git clone OCA/l10n-italy $ cd l10n-italy $ git browse -- issues (apre https://github.com/OCA/l10n-italy/issues) $ git checkout -b 8.0-fix-issue1 ( scrivo le modifiche...) $ git add -p $ git commit -m "Close issue #1" https://help.github.com/articles/closing-issues-via-commit-messages/ Un messaggio di commit scritto bene rende il processo di review pi湛 veloce.
  • 16. Agile Business Group - www.agilebg.com - info@agilebg.com Workflow per PR fork and pull (2/3) Non potendo scrivere direttamente sul progetto, devo crearne una copia, ovvero un fork. $ git fork (fork su github: tafaRU/l10n-italy) (git remote add tafaRU git@github.com:tafaRU/l10n-italy.git) $ git push tafaRU In alternativa: $ git pull-request (apre il text editor per modificare il titolo, aprire il link della PR appena creata e modificare descrizione)
  • 17. Agile Business Group - www.agilebg.com - info@agilebg.com Workflow per PR fork and pull (3/3) Ora che la PR 竪 stata aperta inizia il processo di review, una vera 竪 propria conversazione in stile social in cui potremmo discutere insieme ai vari reviewer. Dovremmo essere pronti a sostenere discussioni, applicare ulteriori fix o ad accettare un eventuale rifiuto. L'accettazione della PR e quindi il suo merge dipende esclusivamente da due fattori: > 2 [1] http://odoo-community.org/page/how-to ( con 3 approve, merge quasi immediato) [1][2] [2] emojis - :+1:
  • 18. Agile Business Group - www.agilebg.com - info@agilebg.com Come muoversi tra i vari branches Vediamo cosa dovreste fare per contribuire allo sviluppo di 8.0-fix-issue1: $ git remote add -p tafaRU # controllo i remotes $ git remote -v $ git fetch tafaRU - $ git fetch all $ git checkout 8.0-fix-issue1 $ git checkout -b 8.0-imp-issue1 # aggiungo le modifiche e le committo $ git push your_account # faccio PR con base tafaRU/l10n-italy e branch 8.0-fix-issue1
  • 19. Agile Business Group - www.agilebg.com - info@agilebg.com Rebase una PR Una delle richieste pi湛 ricorrenti durante una PR: Questo ha come risultato: integrare nel vostro branch le modifiche approdate sul branch principale rilanciare la build di Travis CI A partire dal vostro branch 8.0-fix-issue1: $ git rebase origin/8.0 ( opzione -i per pulire commit) $ git push -f (riscrivo la history!!!) https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
  • 20. Agile Business Group - www.agilebg.com - info@agilebg.com Convenzioni e linee guida Quelle presenti sono ancora incomplete o poco aggiornate: http://odoo-community.org/page/how-to Quello che fa fede al momento sono i tools presenti nell' MQT repo, per tale motivo vi consiglio di impostare il watching[1], per essere notificati su tutte le nuove PR e nuove issue. Ad es. https://github.com/OCA/maintainer-quality-tools/issues/46 [1] https://help.github.com/articles/watching-repositories/
  • 21. Agile Business Group - www.agilebg.com - info@agilebg.com Come contribuire: review di PR Review di PR Code review Manual testing Functional review Ogni venerd狸 si tiene l'OCA Review Day: https://waffle.io/oca/maintainers-tools https://github.com/pulls?user=OCA
  • 22. Agile Business Group - www.agilebg.com - info@agilebg.com Canali di comunicazione Mailing lists https://www.odoo.com/page/odoo-community IRC (freenode.net) #openobject https://botbot.me/freenode/openobject/ #oca (discutere le PR e vedere aggiornamenti PR) Twitter @OdooCommunity @OCA_Bot (merge di PR)
  • 23. Agile Business Group - www.agilebg.com - info@agilebg.com OCA: Ovvero, Con un'Aforisma "Given enough eyeballs, all bugs are shallow" Eric Steven Raymond(The Cathedral and the Bazaar)
  • 24. Agile Business Group - www.agilebg.com - info@agilebg.com GRAZIE! GitHub: github.com/tafaRU Twitter: @tafaRU IRC: tafaRU LinkedIn: it.linkedin.com/in/tafaru Gmail: alex.comba@agilebg.com