Views
Navigation
Toolbox
Search
OpenERP Book
Open ERP and Open Object Community Wiki

Community:How To Contribute

From Wiki

Jump to: navigation, search

Contents

How to get the latest trunk source code

Create a directory

mkdir openerp
cd openerp

Get Bazaar version control to pull the source from Launchpad

To install bazaar on any ubuntu distribution, you can use:

apt-get install bzr

To work correctly, bzr version must be at least 1.3. Check it with the command:

bzr --version

If you don't have at least 1.3 version, you can check this url: http://bazaar-vcs.org/Download On debian, in any distribution, the 1.5 version is working, you can get it on this url: http://backports.org/debian/pool/main/b/bzr/bzr_1.5-1~bpo40+1_i386.deb

Get a clone of each repository

bzr clone lp:~openerp/openobject-server/trunk server
bzr clone lp:~openerp/openobject-client/trunk client
bzr clone lp:~openerp/openobject-client-web/trunk client-web
bzr clone lp:~openerp/openobject-addons/trunk addons

If you want to get a clone of the extra-addons repository, you can execute this command

bzr clone lp:~openerp-commiter/openobject-addons/trunk-extra-addons extra-addons

run the setup scripts in the respective directories

python2.4 setup.py build
python2.4 setup.py install

Currently the initialisation procedure of the server parameter --init=all to populate the database seems to be broken in trunk.

It is recommended to create a new database via the gtk-client. Before that the web-client will not work.

Start OpenERP server like this:

$ ./tinyerp-server.py --addons-path=/path/to/my/addons

The `bin/addons` will be considered as default addons directory which can be overriden by the `/path/to/my/addons/'. That is if an addon exists in `bin/addons` as well as `/path/to/my/addons` (custom path) the later one will be given preference over the `bin/addons` (default path).

Get involved - Develop

Quick Summary

This is the official and proposed way to contribute on OpenERP and OpenObject.

To download the latest sources and create your own local branches of OpenERP, do this:

 bzr branch lp:openerp
 cd openerp
 ./bzr_set.py

This will download all the component of openerp (server, client, addons) and create links of modules in addons in your server so that you can use it directly. You can change the bzr_set.py file to select what you want to download exactly. Now, you can edit the code and commit in your local branch.

 EDIT addons/account/account.py
 cd addons
 bzr ci -m "Testing Modifications"

Once your code is good enough and follow guidelines , you can push your branch in launchpad. You may have to create an account on launchpad first, register your public key, and subscribe to the openerp-community team. Then, you can push your branch. Suppose you want to push your addons:

 cd addons
 bzr push lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME
 bzr bind lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME

After having done that, your branch is public on Launchpad, in the OpenObject project , and commiters can work on it, review it and propose for integration in the official branch. The last line allows you to rebind your branch to the one which is on launchpad, after having done this, your commit will be applied on launchpad directly (unless you use --local):

 bzr pull    # Get modifications on your branch from others
 EDIT STUFF
 bzr ci    # commit your changes on your public branch

If your changes fixe a public bug on launchpad, you can use this to mark the bug as fixed by your branch:

 bzr ci --fixes=lp:453123   # Where 453123 is a bug ID

Once your branch is mature, mark it as mature in the web interface of launchpad and request for merging in the official release. Your branch will be reviewed by a commiter and then the quality team to be merged in the official release.

Introduction

Here you will found informations about the organisation of the community in OpenERP project. It include a description of the different tools used, the role of the differents actors, and the different process for improvement management.

The whole organisation is managed through our launchpad projects: http://launchpad.net Our projects on launchpad are currently organised like this:

People

Who are the different actors in the community of OpenERP.

Contributors

Contributors are people who wants to help the project getting better, add functionnality and improve stability. Everyone can contribute on the project with his own knowledge by reporting bugs, purposing smart improvment and posting patch.

The community team is available on launchpad: https://launchpad.net/~openerp-community

Member of the quality and commiter team are automatically members of the community.

Official Commiters

Official commiters are people allowed to commit in the community repository. Those people are approved as commiters by the community once they've done enought good patch and/or contributions in the project.

Their allow to :

  • Purpose and post their own patch on bugs report.
  • Review patches from contributors, comments and / or improve them.
  • Commit well done patch or contribution in the community repository.
  • Write a news on the Planet TinyERP RSS

The commiter team is available on launchpad: https://launchpad.net/~openerp-commiter

Quality Team

Quality team are people from Tiny sprl responsible for the quality of the Official repository. They assume the stability and coherence of the Official version by review the community patch and commit.

They're in charge to merge the commit from Community repository to Official repository. "Extra_addons" and "Others" repository are not part of their responsability.

If a commit isn't good enough, they must remove it from Community repository and report it in the bug tracker. In other case, they will apply the purposed commit in the Official version. Like this, everyone will stay aware about what is or isn't accepted.

The quality team is available on launchpad: https://launchpad.net/~openerp

Tools

Bazaar

The new development process use Bazaar via launchpad.net instead of Subversion, Bazaar offer a flexibility with this distributed model. You can see our branches on https://code.launchpad.net/~openerp.

Explanation of directories: Two teams have been created on launchpad:

  • OpenERP quality teams --> they can commit on:
    • lp:~openerp/openobject-addons/4.2
    • lp:~openerp/openobject-addons/trunk
    • lp:~openerp/openobject-addons/4.2-extra-addons
    • lp:~openerp/openobject-addons/trunk-extra-addons
    • lp:~openerp/openobject-bi/trunk-addons
    • lp:~openerp/openobject-bi/trunk-cli
    • lp:~openerp/openobject-bi/trunk-client-web
    • lp:~openerp/openobject-client/4.2
    • lp:~openerp/openobject-client/trunk
    • lp:~openerp/openobject-client-web/4.2
    • lp:~openerp/openobject-client-web/trunk
    • lp:~openerp/openobject-server/4.2
    • lp:~openerp/openobject-server/trunk
  • 0penERP-commiter --> they can commit on:
    • lp:~openerp/openobject-addons/4.2-extra-addons
    • lp:~openerp/openobject-addons/trunk-extra-addons

In this group, we include some of our partners who will be selected on a meritocracy basis by the quality team.

  • Contributors --> they can commit on:
    • lp:~openerp-community
  • How can I be included in OpenERP-commiter team ?

Any contributor who is interested to become a commiter must show his interest on working for openerp project and his ability to do it in a proper way as the selection for this group is based on meritocracy. It can be by proposing bug fixes, features requested on our bug tracker system (see below: bug tracker). You can even suggest additional modules and/or functionalities on our bug tracker system (see below).

  • How can I suggest some additionals modules or functionalities ?

To create some additionals modules and/or functionnalities and include them in the project, this is the way to do:

  1. open a branch in launchpad
  2. report and suggest your work via your new branch to our bug tracker system (see below on bug tracker, there are two way : bugs report for bug and blueprint for idea / functionnality)
  3. wait for approval by our quality team

Or the quality team approved your work and merge it into the official branch (like explained below on bug tracker), or they refused it and ask you to improve your work before merging it in our official branch.

F.A.Q on bazaar

How to install bazaar ?

To install bazaar on any ubuntu distribution, you can use:

apt-get install bzr.

To work correctly, bzr version must be at least 1.3. Check it with the command:

bzr --version.

If you don't have at least 1.3 version, you can check this url: http://bazaar-vcs.org/Download On debian, in any distribution, the 1.5 version is working, you can get it on this url: http://backports.org/debian/pool/main/b/bzr/bzr_1.5-1~bpo40+1_i386.deb

How to create a login on launchpad ?

Before you can commit on launchpad, you need to create a login.

Go to: https://launchpad.net --> log in / register on top right.

You enter your e-mail address and you wait for an e-mail which will guide you trough the process needed to create your login.

This login is only needed if you intend to commit on bazaar on openerp-commiter or on your own branch.

How to commit ?

Once your login is created, you need to create some ssh keys and insert them on your login page (see create ssh keys on the left). These ssh keys are needed to commit.

I advice you to follow these instructions to complete the creation of your ssh keys: https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair

How to use Bazaar ?

There are two ways to work on bzr. Either, you make a checkout, either you create a local branch.

Checkout method:

bzr co lp:~openerp/openobject-addons/trunk -- to make a checkout
bzr up                                     -- to make an update
bzr ci                                     -- to commit

Creating a branch:

bzr branch lp:~<url> <local dir>             -- to create a branch locally
bzr pull                                     -- to update the branch
bzr push lp:~<url>                           -- to include your changes in the remote branch

In any cases, when you experience some problems, you can do:

bzr help or bzr help command (e.g.: bzr help branch)

Some problems

Checkout does not work, I have this message error:

bzr lp:~<url> 
bzr: ERROR: Repository KnitPackRepository is not compatible with repository RemoteRepository

There are two ways to correct it.

  1. Instead of using bzr co lp:~<url>, use bzr co bzr+ssh://<yourlaunchpad login>@bazaar.launchpad.net/~<url>
  2. you can check this url: https://bugs.launchpad.net/bzr/+bug/205579. Generally, you do:
bzr branch lp:~<url> 
bzr reconfigure --checkout

Bug Tracker

We use launchpad on the openobject project to track all bugs and features request related to openerp and openobject. the bug tracker is available here:

Every contributor can report bug and propose bugfixes for the bugs. The status of the bug is set according to the correction.


When a particular branch fixes the bug, a commiter (member of the [ https://launchpad.net/~openerp-commiter | Commiter Team ]) can set the status to "Fix Commited". Only commiters have the right to change the status to "Fix Committed.", after they validated the proposed patch or branch that fixes the bug.

The [ https://launchpad.net/~openerp | Quality Team ] have a look every day to bugs in the status "Fix Commited". They check the quality of the code and merge in the official branch if it's ok. To limit the work of the quality team, it's important that only commiters can set the bug in the status "Fix Commited". Once quality team finish merging, they change the status to "Fix Released".

Mailing Lists

Partners

This is the partner communication canal. It is used for request about skills or contributions on project, share development, announcing IRC meeting, .... It is also the communication canal between Tiny and their partners.

Developper - Forums

This forum is used for comitters to ask for more help about a bug resolution. An automatic message is sent to the according mailing list when you click on a button featured in the bug tracker. It functions both ways, so every post on the mailing list will also appear in the forum.

User - Forum

This forum is used to request help on general topics and is more useful for users. It could be functional question, configuration problem and so on. Every request posted on this forum will appear in the according mailing-list. It functions both ways, so every post on the mailing list will also appear in the forum.

Wiki

All documentations about OpenERP and OpenObject are maintained in the official wiki.

To keep you aware about what is improved on this wiki, use this RSS feed :

Processes

Commit Your Work

If you want to contribute on OpenERP or OpenObject, here is the proposed method:

  • You create a branch on launchpad on the project that interest you. It's important that you create your branch on launchpad and not on your local system so that we can easily merge, share code between projects and centralize futur developments.
  • You develop your own features or bugfixes in your own branch on launchpad. Don't forget to set the status of your branch (new, experimental, development, mature, ...) so that contributors knows what they can use or not.
  • Once your code is good enough, you propose your branch for merging
  • Your work will be evaluated by one responsible of the commiters team.
    • If they accept your branch for integration in the official version, they will submit to the quality team that will review and merge in the official branch.
    • If the commiter team refuses your branch, they will explain why so that you can review your code to better fits guidelines (problem for futur migrations, ...)

The extra-addons branch, that stores all extra modules, is directly accessible to all commiters. If you are a commiter, you can work directly on this branch and commit your own work. This branch do not require a validation of the quality team. You should put there your special modules for your own customers.

If you want to propose or develop new modules, we suggest you to create your own branch in the | openobject-addons project and develop within your branch. You can fill in a bug to request that your modules are integrated in one of the two branches:

  • extra-addons : if your module touches a few companies
  • addons : if your module will be usefull for most of the companies

We invite all our partners and contributors to work in that way so that we can easily integrate and share the work done between the different projects.

Check the use case on how to contribute here

How to help in translation

See the dedicated section to translations on this wiki .

Where to add and propose module

In our launchpad projects.

How is the stable version generated ?

See the Releasing Process in the wiki.

How to contribute to Planet TinyERP RSS

Only commiters can write in the planet, others can announce on the forum. If you are a member of the commiter team:

  • Create your personnal blog
  • Send an email to nva AT tinyerp.com with your name, photo and address of your blog.
Personal tools
© 2001-TODAY Tiny sprl. All rights reserved.
OpenERP and OpenObject are trademarks of the Tiny company.
They both are released under GPL V2.0.