SlideShare a Scribd company logo
1 of 20
Download to read offline
Contributing to
the Odoo Community Association (OCA)
© Gary Larson
2/20www.camptocamp.com /
Come and talk with us at the OCA Booth
Many thanks to the contributors of the
OCA booth crowd funding campaign
© Gary Larson
3/20www.camptocamp.com /
What is the OCA ?
■ A not for profit organization
■ http://odoo-community.org/
■ Serves as umbrella for 105 github projects
○ https://github.com/OCA/
○ Each hosting several Odoo addons
○ Development shared across 67 teams
4/20www.camptocamp.com /
How can you get involved?
■ Follow us
■ Test and review and use our modules
■ Submit code and documentation
■ Become a member
5/20www.camptocamp.com /
Follow us
■ The web site
■ The blog
https://odoo-community.org/blog/news-1
■ Twitter @OdooCommunity
■ The contributors mailing list
https://odoo-community.org/groups/15
6/20www.camptocamp.com /
Participate
■ Test the modules
○ You can use http://runbot.odoo-community.org/
■ Create a github account, and use it to report issues
■ Test and review pull requests
○ The runbot makes this easy
7/20www.camptocamp.com /
Propose documentation and code
■ You'll need to sign the Contributor License
Agreement (CLA)
■ Make Pull Requests on the projects
○ Watch for the output of the CI tools
○ Wait for reviews, and discuss with the reviewers, improve
your code
■ Try to keep a good submitted PR / reviewed PR ratio
○ Just submitting code and never doing reviews is abusing
the ecosystem
8/20www.camptocamp.com /
The CLA
■ Gives some rights to the association over your
contributions
■ The OCA is committed to open source by its by-laws
○ The association is allowed to relicense your contributions,
but only to an OSI approved license
■ We have some CLA forms on the OCA booth
9/20www.camptocamp.com /
Coding conventions
■ Our coding conventions are documented in
OCA/maintainer-tools
○ In the CONTRIBUTING.md file
○ There's a direct link from the OCA web site
■ Built on Odoo's official recommendations
○ With some added requirements
○ With some relaxed requirements
10/20www.camptocamp.com /
Github cheat sheet: making a PR
$ git clone git@github.com:OCA/hr
$ cd hr
$ git remote add work git@github.com:account/hr
$ git checkout -b 8.0-fix-stuff origin/8.0
# write code and tests, run tests until green
$ git add -p
$ git commit
$ git push work
Then browse to https://github.com/OCA/hr and click
on the submit PR button
11/20www.camptocamp.com /
Our Continuous Integration tools
© Gary Larson
12/20www.camptocamp.com /
Our Continuous Integration tools
■ Each PR is processed by TravisCI
○ Syntactatic / formatting checks with flake8 and pylint
○ Install the addons
○ Run tests using the odoo server facilities
■ For most repositories, PRs are also processed by
the OCA runbot
○ This can be used to test the addons interactively
13/20www.camptocamp.com /
Code Reviews
© Gary Larson
14/20www.camptocamp.com /
Reviewing a PR (1/3)
■ Check travis status
○ If red, figure out why (failure unrelated to the PR, flake8
issue, broken test…)
■ Read the information available to understand what
the PR does
○ Commit message, README file…
○ If not clear ask the submitter for more information
15/20www.camptocamp.com /
Reviewing a PR (2/3)
■ Connect on runbot and try to use the module
○ Comment on usability issues on the PR
○ Include screen shots (easy to do on github)
○ Check for corner cases you can think of
■ If you are able to do this, check the code
○ Watch for untested places in the code
○ Think of other modules you know, and how this one will
interact with them
16/20www.camptocamp.com /
Reviewing a PR (3/3)
■ Check the OCA coding conventions
■ Watch for issues for which we have no checks for
now
○ Programming errors, bad API usage
○ Obscure code
○ Missing translations
○ …
■ When happy, say :+1:
17/20www.camptocamp.com /
Proposing a new project
■ You feel something is missing in the OCA landscape
○ Did you really check everywhere?
○ Ask on the contributors mailing list
○ Ask on Odoo community mailing list too
○ Gather people wanting to work on the topic
○ https://odoo-community.org/page/suggest-a-project
18/20www.camptocamp.com /
Becoming a member
© Gary Larson
19/20www.camptocamp.com /
Becoming a member
■ It is not required to be a member of the association
to be a contributor
■ Still, it is nice to support the association
○ Membership is for individuals only (no for-profit
companies)
○ Your membership fees help cover for the runbot server
costs, code sprint organisation costs…
○ https://odoo-community.org/shop
Contributing to the Odoo Community Association (OCA)

More Related Content

Viewers also liked

The future of the OCA, Odoo Community Association
The future of the OCA, Odoo Community AssociationThe future of the OCA, Odoo Community Association
The future of the OCA, Odoo Community AssociationMaxime Chambreuil
 
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILPrésentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILMaxime Chambreuil
 
Primera junta de Odoo en Queretaro
Primera junta de Odoo en QueretaroPrimera junta de Odoo en Queretaro
Primera junta de Odoo en QueretaroMaxime Chambreuil
 
How to assess internal risks of a large erp implementation
How to assess internal risks of a large erp implementationHow to assess internal risks of a large erp implementation
How to assess internal risks of a large erp implementationMaxime Chambreuil
 
3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)Camptocamp
 
FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)Camptocamp
 
Contributing within OCA projects
Contributing within OCA projectsContributing within OCA projects
Contributing within OCA projectsCamptocamp
 
Une IDS scalable et résiliente avec geOrchestra & Docker
Une IDS scalable et résiliente avec geOrchestra & DockerUne IDS scalable et résiliente avec geOrchestra & Docker
Une IDS scalable et résiliente avec geOrchestra & DockerCamptocamp
 
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)Camptocamp
 
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestraFOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestraCamptocamp
 
FOSS4G-FR 2014 : OpenLayers 3
FOSS4G-FR 2014 : OpenLayers 3FOSS4G-FR 2014 : OpenLayers 3
FOSS4G-FR 2014 : OpenLayers 3Camptocamp
 
geOrchestra, a free, modular and secure SDI
geOrchestra, a free, modular and secure SDIgeOrchestra, a free, modular and secure SDI
geOrchestra, a free, modular and secure SDICamptocamp
 
Odoo testing on steroids
Odoo testing on steroidsOdoo testing on steroids
Odoo testing on steroidsCamptocamp
 
OpenLayers 3.0
OpenLayers 3.0OpenLayers 3.0
OpenLayers 3.0Camptocamp
 
Présentation GeoMapFish
Présentation GeoMapFishPrésentation GeoMapFish
Présentation GeoMapFishCamptocamp
 
MapFish Print 3
MapFish Print 3MapFish Print 3
MapFish Print 3Camptocamp
 
Odoo verticalization for NGO
Odoo verticalization for NGOOdoo verticalization for NGO
Odoo verticalization for NGOCamptocamp
 
MapFish Print 3 : Printing maps like a boss
MapFish Print 3 : Printing maps like a bossMapFish Print 3 : Printing maps like a boss
MapFish Print 3 : Printing maps like a bossCamptocamp
 
A jobs queue for processing tasks asynchronously
A jobs queue for processing tasks asynchronouslyA jobs queue for processing tasks asynchronously
A jobs queue for processing tasks asynchronouslyCamptocamp
 
Odoo Connector (formerly OpenERP Connector)
Odoo Connector (formerly OpenERP Connector)Odoo Connector (formerly OpenERP Connector)
Odoo Connector (formerly OpenERP Connector)Camptocamp
 

Viewers also liked (20)

The future of the OCA, Odoo Community Association
The future of the OCA, Odoo Community AssociationThe future of the OCA, Odoo Community Association
The future of the OCA, Odoo Community Association
 
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACILPrésentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
Présentation d'Open-Xchange Server 5.0 au CRIM pour la FACIL
 
Primera junta de Odoo en Queretaro
Primera junta de Odoo en QueretaroPrimera junta de Odoo en Queretaro
Primera junta de Odoo en Queretaro
 
How to assess internal risks of a large erp implementation
How to assess internal risks of a large erp implementationHow to assess internal risks of a large erp implementation
How to assess internal risks of a large erp implementation
 
3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)
 
FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)
 
Contributing within OCA projects
Contributing within OCA projectsContributing within OCA projects
Contributing within OCA projects
 
Une IDS scalable et résiliente avec geOrchestra & Docker
Une IDS scalable et résiliente avec geOrchestra & DockerUne IDS scalable et résiliente avec geOrchestra & Docker
Une IDS scalable et résiliente avec geOrchestra & Docker
 
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
 
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestraFOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
FOSS4G-FR 2014 : votre IDS à la carte avec geOrchestra
 
FOSS4G-FR 2014 : OpenLayers 3
FOSS4G-FR 2014 : OpenLayers 3FOSS4G-FR 2014 : OpenLayers 3
FOSS4G-FR 2014 : OpenLayers 3
 
geOrchestra, a free, modular and secure SDI
geOrchestra, a free, modular and secure SDIgeOrchestra, a free, modular and secure SDI
geOrchestra, a free, modular and secure SDI
 
Odoo testing on steroids
Odoo testing on steroidsOdoo testing on steroids
Odoo testing on steroids
 
OpenLayers 3.0
OpenLayers 3.0OpenLayers 3.0
OpenLayers 3.0
 
Présentation GeoMapFish
Présentation GeoMapFishPrésentation GeoMapFish
Présentation GeoMapFish
 
MapFish Print 3
MapFish Print 3MapFish Print 3
MapFish Print 3
 
Odoo verticalization for NGO
Odoo verticalization for NGOOdoo verticalization for NGO
Odoo verticalization for NGO
 
MapFish Print 3 : Printing maps like a boss
MapFish Print 3 : Printing maps like a bossMapFish Print 3 : Printing maps like a boss
MapFish Print 3 : Printing maps like a boss
 
A jobs queue for processing tasks asynchronously
A jobs queue for processing tasks asynchronouslyA jobs queue for processing tasks asynchronously
A jobs queue for processing tasks asynchronously
 
Odoo Connector (formerly OpenERP Connector)
Odoo Connector (formerly OpenERP Connector)Odoo Connector (formerly OpenERP Connector)
Odoo Connector (formerly OpenERP Connector)
 

Similar to Contributing to the Odoo Community Association (OCA)

Contributing within Odoo Community Association Projects
Contributing within Odoo Community Association ProjectsContributing within Odoo Community Association Projects
Contributing within Odoo Community Association Projectsafayolle
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStackOpsta
 
TYPO3 Flow - Web Sockets
TYPO3 Flow - Web SocketsTYPO3 Flow - Web Sockets
TYPO3 Flow - Web SocketsChanthorn Ngeth
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update worksIgalia
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsJeff Hull
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020César Hernández
 
What is the price of open source
What is the price of open sourceWhat is the price of open source
What is the price of open sourceJachym Cepicky
 
Publishing your open source project
Publishing your open source projectPublishing your open source project
Publishing your open source projectRishi Pithadiya
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Ted Husted
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
Unicon July 2015 IAM Briefing
Unicon July 2015 IAM BriefingUnicon July 2015 IAM Briefing
Unicon July 2015 IAM BriefingJohn Gasper
 
Building a slackbot
Building a slackbotBuilding a slackbot
Building a slackbotDan Moore
 
Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystemsOutSystems
 
Top front-end techniques for OutSystems
Top front-end techniques for OutSystemsTop front-end techniques for OutSystems
Top front-end techniques for OutSystemsRuben Goncalves
 
An introduction to_golang.avi
An introduction to_golang.aviAn introduction to_golang.avi
An introduction to_golang.aviSeongJae Park
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020César Hernández
 
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdfFlux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdfWeaveworks
 
Data processing qgis3_foss4g-eu_2017
Data processing qgis3_foss4g-eu_2017Data processing qgis3_foss4g-eu_2017
Data processing qgis3_foss4g-eu_2017Camptocamp
 

Similar to Contributing to the Odoo Community Association (OCA) (20)

Contributing within Odoo Community Association Projects
Contributing within Odoo Community Association ProjectsContributing within Odoo Community Association Projects
Contributing within Odoo Community Association Projects
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStack
 
TYPO3 Flow - Web Sockets
TYPO3 Flow - Web SocketsTYPO3 Flow - Web Sockets
TYPO3 Flow - Web Sockets
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update works
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
What is the price of open source
What is the price of open sourceWhat is the price of open source
What is the price of open source
 
Publishing your open source project
Publishing your open source projectPublishing your open source project
Publishing your open source project
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Unicon July 2015 IAM Briefing
Unicon July 2015 IAM BriefingUnicon July 2015 IAM Briefing
Unicon July 2015 IAM Briefing
 
Building a slackbot
Building a slackbotBuilding a slackbot
Building a slackbot
 
Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystems
 
Top front-end techniques for OutSystems
Top front-end techniques for OutSystemsTop front-end techniques for OutSystems
Top front-end techniques for OutSystems
 
An introduction to_golang.avi
An introduction to_golang.aviAn introduction to_golang.avi
An introduction to_golang.avi
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdfFlux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdf
 
Data processing qgis3_foss4g-eu_2017
Data processing qgis3_foss4g-eu_2017Data processing qgis3_foss4g-eu_2017
Data processing qgis3_foss4g-eu_2017
 

More from Camptocamp

ERP et customisation : comment éviter l’usine à gaz ?
ERP et customisation : comment éviter l’usine à gaz ?ERP et customisation : comment éviter l’usine à gaz ?
ERP et customisation : comment éviter l’usine à gaz ?Camptocamp
 
10 points-clés incontournables pour réussir votre projet ERP
10 points-clés incontournables pour réussir votre projet ERP10 points-clés incontournables pour réussir votre projet ERP
10 points-clés incontournables pour réussir votre projet ERPCamptocamp
 
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...Camptocamp
 
Geo mapfish 2_foss4g-eu_2017
Geo mapfish 2_foss4g-eu_2017Geo mapfish 2_foss4g-eu_2017
Geo mapfish 2_foss4g-eu_2017Camptocamp
 
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017Camptocamp
 
AGIT 2017: GeoMapFish_2.2, the open source WebGIS
AGIT 2017: GeoMapFish_2.2, the open source WebGISAGIT 2017: GeoMapFish_2.2, the open source WebGIS
AGIT 2017: GeoMapFish_2.2, the open source WebGISCamptocamp
 
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map EngineAGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map EngineCamptocamp
 
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDIAGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDICamptocamp
 
[Geocom2017] geOrchestra and ngeo
[Geocom2017] geOrchestra and ngeo[Geocom2017] geOrchestra and ngeo
[Geocom2017] geOrchestra and ngeoCamptocamp
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoringCamptocamp
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISCamptocamp
 
NGEO – OpenLayers meets Angular
NGEO – OpenLayers meets AngularNGEO – OpenLayers meets Angular
NGEO – OpenLayers meets AngularCamptocamp
 
OpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerOpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerCamptocamp
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status ReportCamptocamp
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISCamptocamp
 
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...Camptocamp
 
Cesium : Virtueller 3D Globus im Web
Cesium : Virtueller 3D Globus im WebCesium : Virtueller 3D Globus im Web
Cesium : Virtueller 3D Globus im WebCamptocamp
 
Mapfish print-v3
Mapfish print-v3Mapfish print-v3
Mapfish print-v3Camptocamp
 

More from Camptocamp (19)

ERP et customisation : comment éviter l’usine à gaz ?
ERP et customisation : comment éviter l’usine à gaz ?ERP et customisation : comment éviter l’usine à gaz ?
ERP et customisation : comment éviter l’usine à gaz ?
 
10 points-clés incontournables pour réussir votre projet ERP
10 points-clés incontournables pour réussir votre projet ERP10 points-clés incontournables pour réussir votre projet ERP
10 points-clés incontournables pour réussir votre projet ERP
 
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...
 
Geo mapfish 2_foss4g-eu_2017
Geo mapfish 2_foss4g-eu_2017Geo mapfish 2_foss4g-eu_2017
Geo mapfish 2_foss4g-eu_2017
 
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
Ge orchestra open_source_inspire_sdi-project_status_foss4g-eu_2017
 
AGIT 2017: GeoMapFish_2.2, the open source WebGIS
AGIT 2017: GeoMapFish_2.2, the open source WebGISAGIT 2017: GeoMapFish_2.2, the open source WebGIS
AGIT 2017: GeoMapFish_2.2, the open source WebGIS
 
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map EngineAGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
AGIT 2017: Cesium 1.35, WebGL Virtual Globe and Map Engine
 
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDIAGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
AGIT 2017: geOrchestra 16.12, the open source INSPIRE SDI
 
[Geocom2017] geOrchestra and ngeo
[Geocom2017] geOrchestra and ngeo[Geocom2017] geOrchestra and ngeo
[Geocom2017] geOrchestra and ngeo
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGIS
 
NGEO – OpenLayers meets Angular
NGEO – OpenLayers meets AngularNGEO – OpenLayers meets Angular
NGEO – OpenLayers meets Angular
 
OpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure CompilerOpenLayers 3 & Google Closure Compiler
OpenLayers 3 & Google Closure Compiler
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGIS
 
OpenLayers 3
OpenLayers 3OpenLayers 3
OpenLayers 3
 
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...
Pourquoi intégrer Odoo, l'ERP de dernière génération full web, au sein de son...
 
Cesium : Virtueller 3D Globus im Web
Cesium : Virtueller 3D Globus im WebCesium : Virtueller 3D Globus im Web
Cesium : Virtueller 3D Globus im Web
 
Mapfish print-v3
Mapfish print-v3Mapfish print-v3
Mapfish print-v3
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Contributing to the Odoo Community Association (OCA)

  • 1. Contributing to the Odoo Community Association (OCA) © Gary Larson
  • 2. 2/20www.camptocamp.com / Come and talk with us at the OCA Booth Many thanks to the contributors of the OCA booth crowd funding campaign © Gary Larson
  • 3. 3/20www.camptocamp.com / What is the OCA ? ■ A not for profit organization ■ http://odoo-community.org/ ■ Serves as umbrella for 105 github projects ○ https://github.com/OCA/ ○ Each hosting several Odoo addons ○ Development shared across 67 teams
  • 4. 4/20www.camptocamp.com / How can you get involved? ■ Follow us ■ Test and review and use our modules ■ Submit code and documentation ■ Become a member
  • 5. 5/20www.camptocamp.com / Follow us ■ The web site ■ The blog https://odoo-community.org/blog/news-1 ■ Twitter @OdooCommunity ■ The contributors mailing list https://odoo-community.org/groups/15
  • 6. 6/20www.camptocamp.com / Participate ■ Test the modules ○ You can use http://runbot.odoo-community.org/ ■ Create a github account, and use it to report issues ■ Test and review pull requests ○ The runbot makes this easy
  • 7. 7/20www.camptocamp.com / Propose documentation and code ■ You'll need to sign the Contributor License Agreement (CLA) ■ Make Pull Requests on the projects ○ Watch for the output of the CI tools ○ Wait for reviews, and discuss with the reviewers, improve your code ■ Try to keep a good submitted PR / reviewed PR ratio ○ Just submitting code and never doing reviews is abusing the ecosystem
  • 8. 8/20www.camptocamp.com / The CLA ■ Gives some rights to the association over your contributions ■ The OCA is committed to open source by its by-laws ○ The association is allowed to relicense your contributions, but only to an OSI approved license ■ We have some CLA forms on the OCA booth
  • 9. 9/20www.camptocamp.com / Coding conventions ■ Our coding conventions are documented in OCA/maintainer-tools ○ In the CONTRIBUTING.md file ○ There's a direct link from the OCA web site ■ Built on Odoo's official recommendations ○ With some added requirements ○ With some relaxed requirements
  • 10. 10/20www.camptocamp.com / Github cheat sheet: making a PR $ git clone git@github.com:OCA/hr $ cd hr $ git remote add work git@github.com:account/hr $ git checkout -b 8.0-fix-stuff origin/8.0 # write code and tests, run tests until green $ git add -p $ git commit $ git push work Then browse to https://github.com/OCA/hr and click on the submit PR button
  • 11. 11/20www.camptocamp.com / Our Continuous Integration tools © Gary Larson
  • 12. 12/20www.camptocamp.com / Our Continuous Integration tools ■ Each PR is processed by TravisCI ○ Syntactatic / formatting checks with flake8 and pylint ○ Install the addons ○ Run tests using the odoo server facilities ■ For most repositories, PRs are also processed by the OCA runbot ○ This can be used to test the addons interactively
  • 14. 14/20www.camptocamp.com / Reviewing a PR (1/3) ■ Check travis status ○ If red, figure out why (failure unrelated to the PR, flake8 issue, broken test…) ■ Read the information available to understand what the PR does ○ Commit message, README file… ○ If not clear ask the submitter for more information
  • 15. 15/20www.camptocamp.com / Reviewing a PR (2/3) ■ Connect on runbot and try to use the module ○ Comment on usability issues on the PR ○ Include screen shots (easy to do on github) ○ Check for corner cases you can think of ■ If you are able to do this, check the code ○ Watch for untested places in the code ○ Think of other modules you know, and how this one will interact with them
  • 16. 16/20www.camptocamp.com / Reviewing a PR (3/3) ■ Check the OCA coding conventions ■ Watch for issues for which we have no checks for now ○ Programming errors, bad API usage ○ Obscure code ○ Missing translations ○ … ■ When happy, say :+1:
  • 17. 17/20www.camptocamp.com / Proposing a new project ■ You feel something is missing in the OCA landscape ○ Did you really check everywhere? ○ Ask on the contributors mailing list ○ Ask on Odoo community mailing list too ○ Gather people wanting to work on the topic ○ https://odoo-community.org/page/suggest-a-project
  • 18. 18/20www.camptocamp.com / Becoming a member © Gary Larson
  • 19. 19/20www.camptocamp.com / Becoming a member ■ It is not required to be a member of the association to be a contributor ■ Still, it is nice to support the association ○ Membership is for individuals only (no for-profit companies) ○ Your membership fees help cover for the runbot server costs, code sprint organisation costs… ○ https://odoo-community.org/shop