SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Contributing within OCA projects
Alexandre Fayolle
2014-06-04
2/24www.camptocamp.com / 2014-06-04
Introductions
■ Alexandre Fayolle aka @gurneyalex (twitter, GitHub)
aka agurney (irc, Bitbucket)
■ OCA : OpenERP / Odoo Community Association
○ http://odoo-community-association.org/
2014-06-04
3/24www.camptocamp.com / 2014-06-04
OCA goals
■ Help and promote the collaborative software development of Odoo;
■ Encourage the development of Odoo and its features while
coordinating and organizing the collaborative work on the software;
■ Assist the community while defending its interests and the
sustainability of its developments;
■ Promote the use of the Odoo solution;
■ Facilitate synergies, collaborations and fund raising efforts;
■ Actively collaborate on the definition of the road maps of new
versions of the tool and their implementation.
2014-06-04
4/24www.camptocamp.com / 2014-06-04
OCA Projects : addons and teams
■ Projects are organized around special interest teams
■ Currently 48 teams on launchpad
○ Reduction / simplification under discussion as part of
GitHub migration
■ Likely migration plan: use GitHub for v8 and later,
keep launchpad for v7 and earlier
○ Maybe a readonly mirror of v7 branches on GitHub
2014-06-04
5/24www.camptocamp.com / 2014-06-04
OCA Topics (1/2)
■ Addons families:
○ Accounting, Banking, Human Resource, E-commerce,
Finance, Manufacturing, CRM & Sales, Logistics, Purchases,
Product, Projects & Services...
■ Verticalization teams:
○ Hotel, Medical, ISP, Construction...
■ Integration teams:
○ Sage, LIMS...
2014-06-04
6/24www.camptocamp.com / 2014-06-04
OCA Topics (2/2)
■ Server side tools
○ Reporting tools, environment-based configurations...
■ Web client extensions
○ Widgets, default sorting...
■ Community Backports (OCB)
2014-06-04
7/24www.camptocamp.com / 2014-06-04
OCB: Odoo Community Backports
■ Specific version of Odoo where bug fixes pending
merge by the editor tend to get merged faster
■ On Launchpad, 3 projects
○ ocb-server, ocb-addons, ocb-web
○ Support for 6.1 and 7.0
■ On GitHub: not there yet (nothing to backport!)
2014-06-04
8/24www.camptocamp.com / 2014-06-04
Contributing
■ Bug reports
■ Bug fixes
■ New features
■ Reviews of MP (and PR)
○ Code reviews
○ Manual testing
○ Functional reviews
2014-06-04
9/24www.camptocamp.com / 2014-06-04
Launchpad and bzr tips (1/3)
Use bzr init-repo <projectname>
○ Repositories share information between the branches which are
created inside
○ Fast branching
○ Lower disk consumption
○ With a symlink, you can have a poor man's in place branch
switch
○ You can have branches from different (remote) projects in the
same local repository → useful when working on OCB
2014-06-04
10/24www.camptocamp.com / 2014-06-04
Launchpad and bzr tips (2/3)
Never use bound branches
Never use bzr checkout
○ These will push your changes to the source as soon as
you commit
2014-06-04
11/24www.camptocamp.com / 2014-06-04
Launchpad and bzr tips (3/3)
Use bzr commit --fixes lp:bugnumber
○ Automatic linking of branch to bug report when code is
pushed to launchpad
2014-06-04
12/24www.camptocamp.com / 2014-06-04
Workflow: setup environment to work on an
OCA project
export project=account-invoicing
bzr init-repo ${project}
cd ${project}
bzr branch lp:${project}/7.0
2014-06-04
13/24www.camptocamp.com / 2014-06-04
Workflow: proposing a bugfix
Assuming my launchpad account is “afe” and the bug is #123456
export project=account-invoicing
cd ${project}
bzr branch 7.0 7.0-123456-afe
# fix the bug, run tests
bzr commit --fixes lp:123456 
-m “[FIX] explain the fix”
bzr push lp:~afe/${project}/7.0-123456-afe
# open branch in web browser
bzr lp-open lp:~afe/${project}/7.0-123456-afe
# submit MP using the web interface
# describe what the change does please
2014-06-04
14/24www.camptocamp.com / 2014-06-04
2014-06-04
15/24www.camptocamp.com / 2014-06-04
2014-06-04
16/24www.camptocamp.com / 2014-06-04
2014-06-04
17/24www.camptocamp.com / 2014-06-04
Workflow: proposing a fix to OCB
■ OCB MP follow almost the same workflow as OCA Addons
○ Bug report is mandatory
○ Fix must be proposed on both official and OCB branch
○ Technical limitation forces to make 2 separate branches, and 2 separate MP
■ My way:
○ I create 3 repositories: server, addons and web
○ Inside each I branch the official stable branch and the ocb branch
○ I get from lp (or I create) the bugfix branch
○ I create an ocb branch for the fix and cherry pick the fix from the official
branch using bzr merge
2014-06-04
18/24www.camptocamp.com / 2014-06-04
Workflow: OCB work environment setup
bzr init-repo server
cd server
bzr branch lp:openobject-server/7.0
bzr branch lp:ocb-server/7.0 ocb-7.0
# repeat for addons and web
2014-06-04
19/24www.camptocamp.com / 2014-06-04
Workflow: Proposing a fix to OCB
cd server
bzr branch 7.0 7.0-fix_123456-afe
cd 7.0-fix_123456-afe
# fix, commit, TEST, push, propose for merge as before
cd ..
# port the fix to OCB branch
bzr branch ocb-7.0 ocb-7.0-fix_123456-afe
cd ocb-7.0-fix_123456-afe
# cherry pick fix from official branch
bzr merge -r rev1..rev2 ../7.0-fix_123456-afe
bzr commit --author orig_author --fixes lp:123456
# TEST, push, propose for merge as before.
# you should point to official MP in the OCB MP
2014-06-04
20/24www.camptocamp.com / 2014-06-04
Git migration
■ Very new, not everything is decided
○ Stay tuned on the mailing list, read the archives
○ No established ways of working for now with GitHub (reviews,
PR handling...)
○ We will reuse an existing widely used process
■ Be sure to read
○ https://github.com/odoo/odoo/blob/master/doc/git.rst
○ http://ndpsoftware.com/git-cheatsheet.html
2014-06-04
21/24www.camptocamp.com / 2014-06-04
Communication channels
■ Mailing list
○ currently https://launchpad.net/~openerp-community
■ IRC
○ Friday is “MP Day” on #openobject (freenode.net)
■ Twitter
○ @OdooCommunity
2014-06-04
22/24www.camptocamp.com / 2014-06-04
Other OCA related events during community
days
■ The Future of Odoo Community Association
○ June 4, 2014 at 17h
■ General Assembly
○ June 5, 2014 at 17h50
2014-06-04
23/24www.camptocamp.com / 2014-06-04
Time for Q&A!
Contributing within Odoo Community Association Projects

Weitere ähnliche Inhalte

Ähnlich wie Contributing within Odoo Community Association Projects

Hands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShiftHands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShiftAmazon Web Services
 
CHIP: "The World's First $9 Computer"
CHIP: "The World's First $9 Computer"CHIP: "The World's First $9 Computer"
CHIP: "The World's First $9 Computer"Drew Fustini
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixC4Media
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentNETWAYS
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine ProjectDaniel Lima
 
Project libre1.5 - Lesson 2 - Installation requirements
Project libre1.5 - Lesson 2 - Installation requirementsProject libre1.5 - Lesson 2 - Installation requirements
Project libre1.5 - Lesson 2 - Installation requirementsHezequias Vasconcelos
 
Neural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkNeural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkKobe Yu
 
What is new in visual studio "14"
What is new in visual studio "14"What is new in visual studio "14"
What is new in visual studio "14"Praveen Nair
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesDrew Hansen
 
S1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarS1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarJCK
 
LCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLinaro
 
Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPagesTeamstudio
 
Munich MulesSoft Meetup - Germany 08 Feb 2023
Munich MulesSoft Meetup - Germany 08 Feb 2023Munich MulesSoft Meetup - Germany 08 Feb 2023
Munich MulesSoft Meetup - Germany 08 Feb 2023MulesoftMunichMeetup
 
BKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopBKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopLinaro
 
ODPi (Open Data Platform Initiative) - Linaro Connect
ODPi (Open Data Platform Initiative) - Linaro ConnectODPi (Open Data Platform Initiative) - Linaro Connect
ODPi (Open Data Platform Initiative) - Linaro ConnectGanesh Raju
 
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
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...Krishna-Kumar
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts Knut Relbe-Moe [MVP, MCT]
 

Ähnlich wie Contributing within Odoo Community Association Projects (20)

Hands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShiftHands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShift
 
CHIP: "The World's First $9 Computer"
CHIP: "The World's First $9 Computer"CHIP: "The World's First $9 Computer"
CHIP: "The World's First $9 Computer"
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser Environment
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine Project
 
Project libre1.5 - Lesson 2 - Installation requirements
Project libre1.5 - Lesson 2 - Installation requirementsProject libre1.5 - Lesson 2 - Installation requirements
Project libre1.5 - Lesson 2 - Installation requirements
 
Neural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkNeural Network File Format for Inference Framework
Neural Network File Format for Inference Framework
 
What is new in visual studio "14"
What is new in visual studio "14"What is new in visual studio "14"
What is new in visual studio "14"
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
 
S1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarS1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco Webinar
 
Hot deploy
Hot deployHot deploy
Hot deploy
 
LCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLCU14 303- Toolchain Collaboration
LCU14 303- Toolchain Collaboration
 
Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPages
 
Munich MulesSoft Meetup - Germany 08 Feb 2023
Munich MulesSoft Meetup - Germany 08 Feb 2023Munich MulesSoft Meetup - Germany 08 Feb 2023
Munich MulesSoft Meetup - Germany 08 Feb 2023
 
Armbian linux
Armbian linuxArmbian linux
Armbian linux
 
BKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopBKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing Hadoop
 
ODPi (Open Data Platform Initiative) - Linaro Connect
ODPi (Open Data Platform Initiative) - Linaro ConnectODPi (Open Data Platform Initiative) - Linaro Connect
ODPi (Open Data Platform Initiative) - Linaro Connect
 
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
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
 

Kürzlich hochgeladen

Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기Chiwon Song
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9Jürgen Gutsch
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 

Kürzlich hochgeladen (20)

Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
Sustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire ThornewillSustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire Thornewill
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 

Contributing within Odoo Community Association Projects

  • 1. Contributing within OCA projects Alexandre Fayolle
  • 2. 2014-06-04 2/24www.camptocamp.com / 2014-06-04 Introductions ■ Alexandre Fayolle aka @gurneyalex (twitter, GitHub) aka agurney (irc, Bitbucket) ■ OCA : OpenERP / Odoo Community Association ○ http://odoo-community-association.org/
  • 3. 2014-06-04 3/24www.camptocamp.com / 2014-06-04 OCA goals ■ Help and promote the collaborative software development of Odoo; ■ Encourage the development of Odoo and its features while coordinating and organizing the collaborative work on the software; ■ Assist the community while defending its interests and the sustainability of its developments; ■ Promote the use of the Odoo solution; ■ Facilitate synergies, collaborations and fund raising efforts; ■ Actively collaborate on the definition of the road maps of new versions of the tool and their implementation.
  • 4. 2014-06-04 4/24www.camptocamp.com / 2014-06-04 OCA Projects : addons and teams ■ Projects are organized around special interest teams ■ Currently 48 teams on launchpad ○ Reduction / simplification under discussion as part of GitHub migration ■ Likely migration plan: use GitHub for v8 and later, keep launchpad for v7 and earlier ○ Maybe a readonly mirror of v7 branches on GitHub
  • 5. 2014-06-04 5/24www.camptocamp.com / 2014-06-04 OCA Topics (1/2) ■ Addons families: ○ Accounting, Banking, Human Resource, E-commerce, Finance, Manufacturing, CRM & Sales, Logistics, Purchases, Product, Projects & Services... ■ Verticalization teams: ○ Hotel, Medical, ISP, Construction... ■ Integration teams: ○ Sage, LIMS...
  • 6. 2014-06-04 6/24www.camptocamp.com / 2014-06-04 OCA Topics (2/2) ■ Server side tools ○ Reporting tools, environment-based configurations... ■ Web client extensions ○ Widgets, default sorting... ■ Community Backports (OCB)
  • 7. 2014-06-04 7/24www.camptocamp.com / 2014-06-04 OCB: Odoo Community Backports ■ Specific version of Odoo where bug fixes pending merge by the editor tend to get merged faster ■ On Launchpad, 3 projects ○ ocb-server, ocb-addons, ocb-web ○ Support for 6.1 and 7.0 ■ On GitHub: not there yet (nothing to backport!)
  • 8. 2014-06-04 8/24www.camptocamp.com / 2014-06-04 Contributing ■ Bug reports ■ Bug fixes ■ New features ■ Reviews of MP (and PR) ○ Code reviews ○ Manual testing ○ Functional reviews
  • 9. 2014-06-04 9/24www.camptocamp.com / 2014-06-04 Launchpad and bzr tips (1/3) Use bzr init-repo <projectname> ○ Repositories share information between the branches which are created inside ○ Fast branching ○ Lower disk consumption ○ With a symlink, you can have a poor man's in place branch switch ○ You can have branches from different (remote) projects in the same local repository → useful when working on OCB
  • 10. 2014-06-04 10/24www.camptocamp.com / 2014-06-04 Launchpad and bzr tips (2/3) Never use bound branches Never use bzr checkout ○ These will push your changes to the source as soon as you commit
  • 11. 2014-06-04 11/24www.camptocamp.com / 2014-06-04 Launchpad and bzr tips (3/3) Use bzr commit --fixes lp:bugnumber ○ Automatic linking of branch to bug report when code is pushed to launchpad
  • 12. 2014-06-04 12/24www.camptocamp.com / 2014-06-04 Workflow: setup environment to work on an OCA project export project=account-invoicing bzr init-repo ${project} cd ${project} bzr branch lp:${project}/7.0
  • 13. 2014-06-04 13/24www.camptocamp.com / 2014-06-04 Workflow: proposing a bugfix Assuming my launchpad account is “afe” and the bug is #123456 export project=account-invoicing cd ${project} bzr branch 7.0 7.0-123456-afe # fix the bug, run tests bzr commit --fixes lp:123456 -m “[FIX] explain the fix” bzr push lp:~afe/${project}/7.0-123456-afe # open branch in web browser bzr lp-open lp:~afe/${project}/7.0-123456-afe # submit MP using the web interface # describe what the change does please
  • 17. 2014-06-04 17/24www.camptocamp.com / 2014-06-04 Workflow: proposing a fix to OCB ■ OCB MP follow almost the same workflow as OCA Addons ○ Bug report is mandatory ○ Fix must be proposed on both official and OCB branch ○ Technical limitation forces to make 2 separate branches, and 2 separate MP ■ My way: ○ I create 3 repositories: server, addons and web ○ Inside each I branch the official stable branch and the ocb branch ○ I get from lp (or I create) the bugfix branch ○ I create an ocb branch for the fix and cherry pick the fix from the official branch using bzr merge
  • 18. 2014-06-04 18/24www.camptocamp.com / 2014-06-04 Workflow: OCB work environment setup bzr init-repo server cd server bzr branch lp:openobject-server/7.0 bzr branch lp:ocb-server/7.0 ocb-7.0 # repeat for addons and web
  • 19. 2014-06-04 19/24www.camptocamp.com / 2014-06-04 Workflow: Proposing a fix to OCB cd server bzr branch 7.0 7.0-fix_123456-afe cd 7.0-fix_123456-afe # fix, commit, TEST, push, propose for merge as before cd .. # port the fix to OCB branch bzr branch ocb-7.0 ocb-7.0-fix_123456-afe cd ocb-7.0-fix_123456-afe # cherry pick fix from official branch bzr merge -r rev1..rev2 ../7.0-fix_123456-afe bzr commit --author orig_author --fixes lp:123456 # TEST, push, propose for merge as before. # you should point to official MP in the OCB MP
  • 20. 2014-06-04 20/24www.camptocamp.com / 2014-06-04 Git migration ■ Very new, not everything is decided ○ Stay tuned on the mailing list, read the archives ○ No established ways of working for now with GitHub (reviews, PR handling...) ○ We will reuse an existing widely used process ■ Be sure to read ○ https://github.com/odoo/odoo/blob/master/doc/git.rst ○ http://ndpsoftware.com/git-cheatsheet.html
  • 21. 2014-06-04 21/24www.camptocamp.com / 2014-06-04 Communication channels ■ Mailing list ○ currently https://launchpad.net/~openerp-community ■ IRC ○ Friday is “MP Day” on #openobject (freenode.net) ■ Twitter ○ @OdooCommunity
  • 22. 2014-06-04 22/24www.camptocamp.com / 2014-06-04 Other OCA related events during community days ■ The Future of Odoo Community Association ○ June 4, 2014 at 17h ■ General Assembly ○ June 5, 2014 at 17h50