SlideShare a Scribd company logo
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

PDF
Puppet Test Driven Development with Travis CI and Docker
ODP
Goobi viewer: Developing a Complete Solution to Bring Digitised Content IIIF ...
PDF
CHIP: "The World's First $9 Computer"
PDF
TypeScript no Grupo Bandeirantes
ODP
FOSS and Fedora
PDF
Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019
PDF
HackConf2015 - Ruby on Rails: Unexpected journey
PDF
Puppet Test Driven Development with Travis CI and Docker
Goobi viewer: Developing a Complete Solution to Bring Digitised Content IIIF ...
CHIP: "The World's First $9 Computer"
TypeScript no Grupo Bandeirantes
FOSS and Fedora
Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019
HackConf2015 - Ruby on Rails: Unexpected journey

Viewers also liked (20)

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

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

ODP
Contributing within Odoo Community Association Projects
PPTX
WordPress, Open Source and Monetization: The Need to be Truly Open
PDF
How to contribute to OpenStack
PDF
TYPO3 Flow - Web Sockets
PDF
How Brave update works
ODP
Build and Deploy a Python Web App to Amazon in 30 Mins
PDF
Mobile Apps by Pure Go with Reverse Binding
PDF
It is easy contributing to open source - JCON 2020
PPTX
What is the price of open source
PDF
Publishing your open source project
PDF
Open Source in Real Life
PDF
Open Source Secret Sauce - Lugor Sep 2011
PDF
Releaseflow: a healthy build and deploy process
PPTX
Unicon July 2015 IAM Briefing
PDF
Building a slackbot
PDF
Training Webinar: Top front-end techniques for OutSystems
PPTX
Top front-end techniques for OutSystems
PDF
An introduction to_golang.avi
PDF
Its easy! contributing to open source - Devnexus 2020
PDF
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Contributing within Odoo Community Association Projects
WordPress, Open Source and Monetization: The Need to be Truly Open
How to contribute to OpenStack
TYPO3 Flow - Web Sockets
How Brave update works
Build and Deploy a Python Web App to Amazon in 30 Mins
Mobile Apps by Pure Go with Reverse Binding
It is easy contributing to open source - JCON 2020
What is the price of open source
Publishing your open source project
Open Source in Real Life
Open Source Secret Sauce - Lugor Sep 2011
Releaseflow: a healthy build and deploy process
Unicon July 2015 IAM Briefing
Building a slackbot
Training Webinar: Top front-end techniques for OutSystems
Top front-end techniques for OutSystems
An introduction to_golang.avi
Its easy! contributing to open source - Devnexus 2020
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Ad

More from Camptocamp (20)

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

Recently uploaded (20)

PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
STKI Israel Market Study 2025 version august
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Modernising the Digital Integration Hub
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Architecture types and enterprise applications.pdf
DOCX
search engine optimization ppt fir known well about this
O2C Customer Invoices to Receipt V15A.pptx
A novel scalable deep ensemble learning framework for big data classification...
Final SEM Unit 1 for mit wpu at pune .pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
A contest of sentiment analysis: k-nearest neighbor versus neural network
A comparative study of natural language inference in Swahili using monolingua...
Assigned Numbers - 2025 - Bluetooth® Document
STKI Israel Market Study 2025 version august
Benefits of Physical activity for teenagers.pptx
Developing a website for English-speaking practice to English as a foreign la...
Chapter 5: Probability Theory and Statistics
Modernising the Digital Integration Hub
observCloud-Native Containerability and monitoring.pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
NewMind AI Weekly Chronicles – August ’25 Week III
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Hindi spoken digit analysis for native and non-native speakers
Architecture types and enterprise applications.pdf
search engine optimization ppt fir known well about this

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