OCA, da Oggi Contribuisco Anch'io!
Ovvero come contribuire all'OCA sfruttando al meglio github. Scopriremo come orientarsi tra i vari repository e come è strutturato un progetto; come muoversi tra guidelines e convenzioni; analizzeremo i principali strumenti messi a disposizione da github (issues e PRs).
Vedremo gli aspetti social che agevolano la collaborazione con la community e, non ultimo, lo scopo che anima tutto questo.
Presentiamo le principali novità introdotte dalle nuove API V8, costruiremo un nuovo modulo passo dopo passo con l’intento di aiutare chi si affaccia alla programmazione di nuovi moduli su Odoo
- Nicola Malcontenti -
03 Estensione delle proprietà di Odoo per la generazione di preventivi complessiAssociazione Odoo Italia
Come utilizzare i principi dei fogli di calcolo, per generare prezzi o quantità di vendita su un’offerta, tramite l’utilizzo di formule matematiche scritte in python e delle proprietà dei prodotti
- Mario Riva -
Ovvero come contribuire all'OCA sfruttando al meglio github. Scopriremo come orientarsi tra i vari repository e come è strutturato un progetto; come muoversi tra guidelines e convenzioni; analizzeremo i principali strumenti messi a disposizione da github (issues e PRs).
Vedremo gli aspetti social che agevolano la collaborazione con la community e, non ultimo, lo scopo che anima tutto questo
- Alex Comba -
Enterprise Applications - Angular Day 2018Paolo Galfione
Angular 6 introduce il concetto di workspace per la creazione di applicazioni Angular aziendali complesse e articolate. Grazie ad un approccio basato sul pattern mono-repo un workspace può contenere più applicazioni e librerie condivisibili tra le applicazioni stesse. Vedremo come progettare un workspace e sfruttare la potenza dei nuovi @angular-devkit/schematics per automatizzare la generazione di codice applicativo pronto all’uso
I test automatici permettono di limitare i bachi e le regressioni. In realtà,
aiutano anche la comunicazione con colleghi e clienti, la concentrazione, il
design del codice, le consegne.
Presenterò con semplici esempi i sistemi di test che ho usato con odoo, e
alcune idee su come rendere i nostri test più semplici, leggibili, efficaci e
facili da mantenere
- Leonardo Pistone -
Presentiamo le principali novità introdotte dalle nuove API V8, costruiremo un nuovo modulo passo dopo passo con l’intento di aiutare chi si affaccia alla programmazione di nuovi moduli su Odoo
- Nicola Malcontenti -
03 Estensione delle proprietà di Odoo per la generazione di preventivi complessiAssociazione Odoo Italia
Come utilizzare i principi dei fogli di calcolo, per generare prezzi o quantità di vendita su un’offerta, tramite l’utilizzo di formule matematiche scritte in python e delle proprietà dei prodotti
- Mario Riva -
Ovvero come contribuire all'OCA sfruttando al meglio github. Scopriremo come orientarsi tra i vari repository e come è strutturato un progetto; come muoversi tra guidelines e convenzioni; analizzeremo i principali strumenti messi a disposizione da github (issues e PRs).
Vedremo gli aspetti social che agevolano la collaborazione con la community e, non ultimo, lo scopo che anima tutto questo
- Alex Comba -
Enterprise Applications - Angular Day 2018Paolo Galfione
Angular 6 introduce il concetto di workspace per la creazione di applicazioni Angular aziendali complesse e articolate. Grazie ad un approccio basato sul pattern mono-repo un workspace può contenere più applicazioni e librerie condivisibili tra le applicazioni stesse. Vedremo come progettare un workspace e sfruttare la potenza dei nuovi @angular-devkit/schematics per automatizzare la generazione di codice applicativo pronto all’uso
I test automatici permettono di limitare i bachi e le regressioni. In realtà,
aiutano anche la comunicazione con colleghi e clienti, la concentrazione, il
design del codice, le consegne.
Presenterò con semplici esempi i sistemi di test che ho usato con odoo, e
alcune idee su come rendere i nostri test più semplici, leggibili, efficaci e
facili da mantenere
- Leonardo Pistone -
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Codemotion
Un sacco di applicazioni che utilizziamo quotidianamente sono sviluppate in C++. Per esempio, se stai leggendo questo abstract in un browser, allora probabilmente stai usando un software scritto in C++. Nonostante la diffusione di tanti altri eccellenti linguaggi, perché il C++ è ancora così utilizzato? Sapevi che nel 2014 è stato il secondo linguaggio più amato della SO Developer Survey? Cosa offre in più rispetto ad altre tecnologie? Presenterò la mia visione, e anche alcuni “segreti” che rendono il C++ speciale ed evoluto.
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
Il 10 novembre 2015 viene rilasciato TYPO3 CMS 7.6, la nuova versione LTS con supporto fino al 2018. Queste le differenze con la versione 7.5 e fra qualche giorno i documenti con tutte le differenze tra TYPO3 CMS 6.2 LTS e TYPO3 CMS 7 LTS
Slide del decimo Meetup di Milano, che si è tenuto il 26 Gennaio dalle ore 10:30 alle ore 12:00 in formato virtuale.
Abbiamo parlato insieme a Davide Bonaciti di come ha realizzato un caso d'uso di automazione e CI/CD. Stefano Bernardini, Serena Galassi e Lorenzo Ornella, invece, ci parleranno di DataGraph e ci mostreranno una demo di implementazione per realizzare un'asta del fantacalcio 2.0.
La versione 10.1 di TYPO3 è la seconda versione dello sprint per arrivare alla versione LTS (supporto a lungo termine) nel 2020.
La nuova release ingloba più di 240 commit di Git (modifiche del codice sorgente revisionate, testate e approvate) dalla sua versione precedente la 10.0 pubblicata dieci settimane prima.
Sebbene gli utenti di backend non vedranno molti cambiamenti evidenti o nuove funzionalità importanti, TYPO3 versione 10.1 racchiude una serie di miglioramenti nel core.
Un riepilogo con tutte le novità presenti nella nuova sprint release di TYPO3 CMS: Love at first Site.
E' previsto il rilascio della versione 9 LTS per il 2 ottobre 2018
Tightening the screws è lo slogan che caratterizza questo nuovo rilascio di TYPO3 CMS. La versione 8.1 introduce aggiornamenti sull'interfaccia grafica del modulo workspace, la gestione dei database con Doctrine e molti altri miglioramenti.
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023AndreaStagi3
Slide del MeetUp di Angular Roma dove Cristian Borelli e Andrea Stagi ci hanno raccontato le evoluzioni fatte sul Design Kit e Bootstrap Italia: dalle nuove tecnologie ai temi dell'accessibilità. L’occasione è stata utile per presentare i lavori per il nuovo Design Kit Angular che andrà ad arricchire le componenti Bootstrap Italia.
Con Xebialabs affrontiamo il tema della gestione della Toolchain devops e Release/Deploy in modo orchestrato e remotizzato.
XebiaLabs, leader del mercato ARA come riportato da Gartner e
Forrester. Con XebiaLabs gestire i rilasci dal punto di vista di processo e di effettivo deploy delle applicazioni è solo un fatto di configurazione, al resto pensa l’engine di XebiaLabs.
La versione 10.2 di TYPO3 è la terza versione dello sprint per arrivare alla versione LTS (supporto a lungo termine) nel 2020. E’ anche l’ultima versione dello sprint dell’anno.
Molte funzionalità sono state sviluppate durante la TYPO3 Initiative Week (T3INIT19) e TYPO3 v10.2 contiene già alcuni di questi sviluppi.
Questa versione apre la strada ad un ambiente all’avanguardia. TYPO3 v10.2 non supporta solo Symfony versione 5.0, ma è anche la prima versione di TYPO3 che supporta PHP versione 7.4. E’ anche l’ultima versione prima della freeze release di
febbraio 2020.
La nuova sprint release: TYPO3 CMS 8.4
Le principali innovazioni:
- revisione del backend per un utilizzo da tablet e da smartphone
- prosegue la migrazione ad un totale utilizzo di Doctrine per le chiamate al database, manuale compreso
- wizard per semplificare e monitorare gli upgrade di release
- e molte altri miglioramenti descritti in questo documento
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Codemotion
Un sacco di applicazioni che utilizziamo quotidianamente sono sviluppate in C++. Per esempio, se stai leggendo questo abstract in un browser, allora probabilmente stai usando un software scritto in C++. Nonostante la diffusione di tanti altri eccellenti linguaggi, perché il C++ è ancora così utilizzato? Sapevi che nel 2014 è stato il secondo linguaggio più amato della SO Developer Survey? Cosa offre in più rispetto ad altre tecnologie? Presenterò la mia visione, e anche alcuni “segreti” che rendono il C++ speciale ed evoluto.
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
Il 10 novembre 2015 viene rilasciato TYPO3 CMS 7.6, la nuova versione LTS con supporto fino al 2018. Queste le differenze con la versione 7.5 e fra qualche giorno i documenti con tutte le differenze tra TYPO3 CMS 6.2 LTS e TYPO3 CMS 7 LTS
Slide del decimo Meetup di Milano, che si è tenuto il 26 Gennaio dalle ore 10:30 alle ore 12:00 in formato virtuale.
Abbiamo parlato insieme a Davide Bonaciti di come ha realizzato un caso d'uso di automazione e CI/CD. Stefano Bernardini, Serena Galassi e Lorenzo Ornella, invece, ci parleranno di DataGraph e ci mostreranno una demo di implementazione per realizzare un'asta del fantacalcio 2.0.
La versione 10.1 di TYPO3 è la seconda versione dello sprint per arrivare alla versione LTS (supporto a lungo termine) nel 2020.
La nuova release ingloba più di 240 commit di Git (modifiche del codice sorgente revisionate, testate e approvate) dalla sua versione precedente la 10.0 pubblicata dieci settimane prima.
Sebbene gli utenti di backend non vedranno molti cambiamenti evidenti o nuove funzionalità importanti, TYPO3 versione 10.1 racchiude una serie di miglioramenti nel core.
Un riepilogo con tutte le novità presenti nella nuova sprint release di TYPO3 CMS: Love at first Site.
E' previsto il rilascio della versione 9 LTS per il 2 ottobre 2018
Tightening the screws è lo slogan che caratterizza questo nuovo rilascio di TYPO3 CMS. La versione 8.1 introduce aggiornamenti sull'interfaccia grafica del modulo workspace, la gestione dei database con Doctrine e molti altri miglioramenti.
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023AndreaStagi3
Slide del MeetUp di Angular Roma dove Cristian Borelli e Andrea Stagi ci hanno raccontato le evoluzioni fatte sul Design Kit e Bootstrap Italia: dalle nuove tecnologie ai temi dell'accessibilità. L’occasione è stata utile per presentare i lavori per il nuovo Design Kit Angular che andrà ad arricchire le componenti Bootstrap Italia.
Con Xebialabs affrontiamo il tema della gestione della Toolchain devops e Release/Deploy in modo orchestrato e remotizzato.
XebiaLabs, leader del mercato ARA come riportato da Gartner e
Forrester. Con XebiaLabs gestire i rilasci dal punto di vista di processo e di effettivo deploy delle applicazioni è solo un fatto di configurazione, al resto pensa l’engine di XebiaLabs.
La versione 10.2 di TYPO3 è la terza versione dello sprint per arrivare alla versione LTS (supporto a lungo termine) nel 2020. E’ anche l’ultima versione dello sprint dell’anno.
Molte funzionalità sono state sviluppate durante la TYPO3 Initiative Week (T3INIT19) e TYPO3 v10.2 contiene già alcuni di questi sviluppi.
Questa versione apre la strada ad un ambiente all’avanguardia. TYPO3 v10.2 non supporta solo Symfony versione 5.0, ma è anche la prima versione di TYPO3 che supporta PHP versione 7.4. E’ anche l’ultima versione prima della freeze release di
febbraio 2020.
La nuova sprint release: TYPO3 CMS 8.4
Le principali innovazioni:
- revisione del backend per un utilizzo da tablet e da smartphone
- prosegue la migrazione ad un totale utilizzo di Doctrine per le chiamate al database, manuale compreso
- wizard per semplificare e monitorare gli upgrade di release
- e molte altri miglioramenti descritti in questo documento
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
Similar to OCA: da Oggi Contribuisco Anch'io! (20)
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
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
qualcun’altro.
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)