2
.. i18n: .. _bazaar-link:
4
.. i18n: Bazaar, the version control system
5
.. i18n: ----------------------------------
9
Bazaar, the version control system
10
----------------------------------
13
.. i18n: single: Bazaar
14
.. i18n: single: version control system
19
single: version control system
22
.. i18n: The new development process uses Bazaar via launchpad.net instead of Subversion.
23
.. i18n: Bazaar offers a flexibility with this distributed model. You can see our
24
.. i18n: branches on https://code.launchpad.net/~openerp.
26
The new development process uses Bazaar via launchpad.net instead of Subversion.
27
Bazaar offers a flexibility with this distributed model. You can see our
28
branches on https://code.launchpad.net/~openerp.
30
.. i18n: .. describe:: Explanation of directories:
32
.. describe:: Explanation of directories:
34
.. i18n: Two teams have been created on launchpad:
36
Two teams have been created on launchpad:
38
.. i18n: * OpenERP quality teams --> they can commit on:
40
.. i18n: - lp:~openerp/openobject-addons/4.2
41
.. i18n: - lp:~openerp/openobject-addons/trunk
42
.. i18n: - lp:~openerp/openobject-addons/4.2-extra-addons
43
.. i18n: - lp:~openerp/openobject-addons/trunk-extra-addons
44
.. i18n: - lp:~openerp/openobject-bi/trunk-addons
45
.. i18n: - lp:~openerp/openobject-bi/trunk-cli
46
.. i18n: - lp:~openerp/openobject-bi/trunk-client-web
47
.. i18n: - lp:~openerp/openobject-client/4.2
48
.. i18n: - lp:~openerp/openobject-client/trunk
49
.. i18n: - lp:~openerp/openobject-client-web/4.2
50
.. i18n: - lp:~openerp/openobject-client-web/trunk
51
.. i18n: - lp:~openerp/openobject-server/4.2
52
.. i18n: - lp:~openerp/openobject-server/trunk
54
.. i18n: * 0penERP-commiter --> they can commit on:
56
.. i18n: - lp:~openerp/openobject-addons/4.2-extra-addons
57
.. i18n: - lp:~openerp/openobject-addons/trunk-extra-addons
59
* OpenERP quality teams --> they can commit on:
61
- lp:~openerp/openobject-addons/4.2
62
- lp:~openerp/openobject-addons/trunk
63
- lp:~openerp/openobject-addons/4.2-extra-addons
64
- lp:~openerp/openobject-addons/trunk-extra-addons
65
- lp:~openerp/openobject-bi/trunk-addons
66
- lp:~openerp/openobject-bi/trunk-cli
67
- lp:~openerp/openobject-bi/trunk-client-web
68
- lp:~openerp/openobject-client/4.2
69
- lp:~openerp/openobject-client/trunk
70
- lp:~openerp/openobject-client-web/4.2
71
- lp:~openerp/openobject-client-web/trunk
72
- lp:~openerp/openobject-server/4.2
73
- lp:~openerp/openobject-server/trunk
75
* 0penERP-commiter --> they can commit on:
77
- lp:~openerp/openobject-addons/4.2-extra-addons
78
- lp:~openerp/openobject-addons/trunk-extra-addons
80
.. i18n: In this group, we include some of our partners who will be selected on a meritocracy basis by the quality team.
82
In this group, we include some of our partners who will be selected on a meritocracy basis by the quality team.
84
.. i18n: * Contributors --> they can commit on:
86
.. i18n: - lp:~openerp-community
88
* Contributors --> they can commit on:
90
- lp:~openerp-community
92
.. i18n: .. describe:: How can I be included in OpenERP-commiter team ?
94
.. describe:: How can I be included in OpenERP-commiter team ?
96
.. i18n: Any contributor who is interested to become a commiter must show his interest
97
.. i18n: on working for openerp project and his ability to do it in a proper way as the
98
.. i18n: selection for this group is based on meritocracy. It can be by proposing bug
99
.. i18n: fixes, features requested on our :ref:`bug tracker <bug-tracker-link>` system.
100
.. i18n: You can even suggest additional modules and/or functionalities on our :ref:`bug
101
.. i18n: tracker <bug-tracker-link>` system.
103
Any contributor who is interested to become a commiter must show his interest
104
on working for openerp project and his ability to do it in a proper way as the
105
selection for this group is based on meritocracy. It can be by proposing bug
106
fixes, features requested on our :ref:`bug tracker <bug-tracker-link>` system.
107
You can even suggest additional modules and/or functionalities on our :ref:`bug
108
tracker <bug-tracker-link>` system.
110
.. i18n: .. describe:: How can I suggest some additionals modules or functionalities ?
112
.. describe:: How can I suggest some additionals modules or functionalities ?
114
.. i18n: To create some additionals modules and/or functionnalities and include them in
115
.. i18n: the project, this is the way to do:
117
To create some additionals modules and/or functionnalities and include them in
118
the project, this is the way to do:
120
.. i18n: #. open a branch in launchpad
121
.. i18n: #. report and suggest your work via your new branch to our :ref:`bug tracker
122
.. i18n: <bug-tracker-link>` system (there are two way : bugs report for bug and
123
.. i18n: blueprint for idea / functionnality)
124
.. i18n: #. wait for approval by our quality team
126
#. open a branch in launchpad
127
#. report and suggest your work via your new branch to our :ref:`bug tracker
128
<bug-tracker-link>` system (there are two way : bugs report for bug and
129
blueprint for idea / functionnality)
130
#. wait for approval by our quality team
132
.. i18n: Or the quality team approved your work and merge it into the official branch
133
.. i18n: (like explained in the :ref:`bug tracker <bug-tracker-link>` section), or they
134
.. i18n: refused it and ask you to improve your work before merging it in our official
137
Or the quality team approved your work and merge it into the official branch
138
(like explained in the :ref:`bug tracker <bug-tracker-link>` section), or they
139
refused it and ask you to improve your work before merging it in our official
142
.. i18n: Installing Bazaar
143
.. i18n: +++++++++++++++++
149
.. i18n: single: Bazaar; installation
150
.. i18n: single: Installation; Bazaar
154
single: Bazaar; installation
155
single: Installation; Bazaar
158
.. i18n: Get Bazaar version control to pull the source from Launchpad.
160
Get Bazaar version control to pull the source from Launchpad.
162
.. i18n: To install bazaar on any ubuntu distribution, you can edit /etc/apt/sources.list by
164
To install bazaar on any ubuntu distribution, you can edit /etc/apt/sources.list by
168
.. i18n: sudo gedit /etc/apt/sources.list
172
sudo gedit /etc/apt/sources.list
174
.. i18n: and put these lines in it:
176
and put these lines in it:
180
.. i18n: deb http://ppa.launchpad.net/bzr/ubuntu intrepid main
181
.. i18n: deb-src http://ppa.launchpad.net/bzr/ubuntu intrepid main
185
deb http://ppa.launchpad.net/bzr/ubuntu intrepid main
186
deb-src http://ppa.launchpad.net/bzr/ubuntu intrepid main
188
.. i18n: Then, do the following
190
Then, do the following
194
.. i18n: sudo apt-get install bzr
198
sudo apt-get install bzr
200
.. i18n: To work correctly, bzr version must be at least 1.3. Check it with the command:
202
To work correctly, bzr version must be at least 1.3. Check it with the command:
206
.. i18n: bzr --version
212
.. i18n: If you don't have at least 1.3 version, you can check this url: http://bazaar-vcs.org/Download
213
.. i18n: 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
215
If you don't have at least 1.3 version, you can check this url: http://bazaar-vcs.org/Download
216
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
218
.. i18n: If you experience problems with Bazaar, please read the :ref:`bazaar-faq-link` before asking any questions.
220
If you experience problems with Bazaar, please read the :ref:`bazaar-faq-link` before asking any questions.
222
.. i18n: Quick Summary
223
.. i18n: +++++++++++++
229
.. i18n: single: Bazaar; summary
233
single: Bazaar; summary
236
.. i18n: This is the official and proposed way to contribute on OpenERP and OpenObject.
238
This is the official and proposed way to contribute on OpenERP and OpenObject.
240
.. i18n: To download the latest sources and create your own local branches of OpenERP, do this::
242
.. i18n: bzr branch lp:openerp
244
.. i18n: ./bzr_set.py
246
To download the latest sources and create your own local branches of OpenERP, do this::
248
bzr branch lp:openerp
252
.. i18n: 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.::
254
.. i18n: EDIT addons/account/account.py
256
.. i18n: bzr ci -m "Testing Modifications"
258
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.::
260
EDIT addons/account/account.py
262
bzr ci -m "Testing Modifications"
264
.. i18n: Once your code is good enough and follow the :ref:`coding-guidelines-link`, you
265
.. i18n: can push your branch in launchpad. You may have to create an account on
266
.. i18n: launchpad first, register your public key, and subscribe to the `openerp-community <https://launchpad.net/~openerp-community>`_ team. Then, you
267
.. i18n: can push your branch. Suppose you want to push your addons::
270
.. i18n: bzr push lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME
271
.. i18n: bzr bind lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME
273
Once your code is good enough and follow the :ref:`coding-guidelines-link`, you
274
can push your branch in launchpad. You may have to create an account on
275
launchpad first, register your public key, and subscribe to the `openerp-community <https://launchpad.net/~openerp-community>`_ team. Then, you
276
can push your branch. Suppose you want to push your addons::
279
bzr push lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME
280
bzr bind lp:~openerp-community/openobject-addons/YOURLOGIN_YOURBRANCHNAME
282
.. i18n: After having done that, your branch is public on Launchpad, in the `OpenObject
283
.. i18n: project <https://code.launchpad.net/openobject>`_, and commiters can work on
284
.. i18n: it, review it and propose for integration in the official branch. The last line
285
.. i18n: allows you to rebind your branch to the one which is on launchpad, after having
286
.. i18n: done this, your commit will be applied on launchpad directly (unless you use ``--local``)::
288
.. i18n: bzr pull # Get modifications on your branch from others
290
.. i18n: bzr ci # commit your changes on your public branch
292
After having done that, your branch is public on Launchpad, in the `OpenObject
293
project <https://code.launchpad.net/openobject>`_, and commiters can work on
294
it, review it and propose for integration in the official branch. The last line
295
allows you to rebind your branch to the one which is on launchpad, after having
296
done this, your commit will be applied on launchpad directly (unless you use ``--local``)::
298
bzr pull # Get modifications on your branch from others
300
bzr ci # commit your changes on your public branch
302
.. i18n: If your changes fixe a public bug on launchpad, you can use this to mark the bug as fixed by your branch::
304
.. i18n: bzr ci --fixes=lp:453123 # Where 453123 is a bug ID
306
If your changes fixe a public bug on launchpad, you can use this to mark the bug as fixed by your branch::
308
bzr ci --fixes=lp:453123 # Where 453123 is a bug ID
310
.. i18n: Once your branch is mature, mark it as mature in the web interface of launchpad
311
.. i18n: and request for merging in the official release. Your branch will be reviewed
312
.. i18n: by a commiter and then the quality team to be merged in the official release.
314
Once your branch is mature, mark it as mature in the web interface of launchpad
315
and request for merging in the official release. Your branch will be reviewed
316
by a commiter and then the quality team to be merged in the official release.
318
.. i18n: .. _how-to-get-the-latest-trunk-source-code-link:
320
.. i18n: How to get the latest trunk source code
321
.. i18n: +++++++++++++++++++++++++++++++++++++++
323
.. _how-to-get-the-latest-trunk-source-code-link:
325
How to get the latest trunk source code
326
+++++++++++++++++++++++++++++++++++++++
328
.. i18n: Get a clone of each repository::
330
.. i18n: bzr clone lp:~openerp/openobject-server/trunk server
331
.. i18n: bzr clone lp:~openerp/openobject-client/trunk client
332
.. i18n: bzr clone lp:~openerp/openobject-client-web/trunk client-web
333
.. i18n: bzr clone lp:~openerp/openobject-addons/trunk addons
335
Get a clone of each repository::
337
bzr clone lp:~openerp/openobject-server/trunk server
338
bzr clone lp:~openerp/openobject-client/trunk client
339
bzr clone lp:~openerp/openobject-client-web/trunk client-web
340
bzr clone lp:~openerp/openobject-addons/trunk addons
342
.. i18n: If you want to get a clone of the extra-addons repository, you can execute this command::
344
.. i18n: bzr clone lp:~openerp-commiter/openobject-addons/trunk-extra-addons extra-addons
346
If you want to get a clone of the extra-addons repository, you can execute this command::
348
bzr clone lp:~openerp-commiter/openobject-addons/trunk-extra-addons extra-addons
350
.. i18n: run the setup scripts in the respective directories::
352
.. i18n: python2.4 setup.py build
353
.. i18n: python2.4 setup.py install
355
run the setup scripts in the respective directories::
357
python2.4 setup.py build
358
python2.4 setup.py install
360
.. i18n: Currently the initialisation procedure of the server parameter --init=all to
361
.. i18n: populate the database seems to be broken in trunk.
363
Currently the initialisation procedure of the server parameter --init=all to
364
populate the database seems to be broken in trunk.
366
.. i18n: It is recommended to create a new database via the gtk-client. Before that the web-client will not work.
368
It is recommended to create a new database via the gtk-client. Before that the web-client will not work.
370
.. i18n: Start OpenERP server like this: ::
372
.. i18n: ./openerp-server.py --addons-path=/path/to/my/addons
374
Start OpenERP server like this: ::
376
./openerp-server.py --addons-path=/path/to/my/addons
378
.. i18n: The ``bin/addons`` will be considered as default addons directory which can be
379
.. i18n: overriden by the ``/path/to/my/addons/``. That is if an addon exists in
380
.. i18n: ``bin/addons`` as well as ``/path/to/my/addons`` (custom path) the later one will
381
.. i18n: be given preference over the ``bin/addons`` (default path).
383
The ``bin/addons`` will be considered as default addons directory which can be
384
overriden by the ``/path/to/my/addons/``. That is if an addon exists in
385
``bin/addons`` as well as ``/path/to/my/addons`` (custom path) the later one will
386
be given preference over the ``bin/addons`` (default path).
388
.. i18n: How to commit Your Work
389
.. i18n: +++++++++++++++++++++++
391
How to commit Your Work
392
+++++++++++++++++++++++
394
.. i18n: If you want to contribute on OpenERP or OpenObject, here is the proposed method:
396
If you want to contribute on OpenERP or OpenObject, here is the proposed method:
398
.. i18n: * You create a branch on launchpad on the project that interest you. It's
399
.. i18n: important that you create your branch on launchpad and not on your local
400
.. i18n: system so that we can easily merge, share code between projects and
401
.. i18n: centralize futur developments.
402
.. i18n: * You develop your own features or bugfixes
403
.. i18n: in your own branch on launchpad. Don't forget to set the status of your
404
.. i18n: branch (new, experimental, development, mature, ...) so that contributors
405
.. i18n: knows what they can use or not.
406
.. i18n: * Once your code is good enough, you propose your branch for merging
407
.. i18n: * Your work will be evaluated by one responsible of the commiters team.
409
.. i18n: - If they accept your branch for integration in the official version, they
410
.. i18n: will submit to the quality team that will review and merge in the official
412
.. i18n: - If the commiter team refuses your branch, they will explain why
413
.. i18n: so that you can review your code to better fits guidelines (problem for
414
.. i18n: futur migrations, ...)
416
* You create a branch on launchpad on the project that interest you. It's
417
important that you create your branch on launchpad and not on your local
418
system so that we can easily merge, share code between projects and
419
centralize futur developments.
420
* You develop your own features or bugfixes
421
in your own branch on launchpad. Don't forget to set the status of your
422
branch (new, experimental, development, mature, ...) so that contributors
423
knows what they can use or not.
424
* Once your code is good enough, you propose your branch for merging
425
* Your work will be evaluated by one responsible of the commiters team.
427
- If they accept your branch for integration in the official version, they
428
will submit to the quality team that will review and merge in the official
430
- If the commiter team refuses your branch, they will explain why
431
so that you can review your code to better fits guidelines (problem for
432
futur migrations, ...)
434
.. i18n: The `extra-addons branch <https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-extra-addons>`_,
435
.. i18n: that stores all extra modules, is directly accessible to all commiters. If you
436
.. i18n: are a commiter, you can work directly on this branch and commit your own work.
437
.. i18n: This branch do not require a validation of the quality team. You should put
438
.. i18n: there your special modules for your own customers.
440
The `extra-addons branch <https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-extra-addons>`_,
441
that stores all extra modules, is directly accessible to all commiters. If you
442
are a commiter, you can work directly on this branch and commit your own work.
443
This branch do not require a validation of the quality team. You should put
444
there your special modules for your own customers.
446
.. i18n: If you want to propose or develop new modules, we suggest you to create your
447
.. i18n: own branch in the `openobject-addons project <https://launchpad.net/openobject-addons>`_
448
.. i18n: and develop within your branch. You can fill in a bug to request that
449
.. i18n: your modules are integrated in one of the two branches:
451
If you want to propose or develop new modules, we suggest you to create your
452
own branch in the `openobject-addons project <https://launchpad.net/openobject-addons>`_
453
and develop within your branch. You can fill in a bug to request that
454
your modules are integrated in one of the two branches:
456
.. i18n: * `extra-addons branch <https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-extra-addons>`_ : if your module touches a few companies
457
.. i18n: * `addons <https://code.launchpad.net/~openerp/openobject-addons/trunk>`_ : if your module will be usefull for most of the companies
459
* `extra-addons branch <https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-extra-addons>`_ : if your module touches a few companies
460
* `addons <https://code.launchpad.net/~openerp/openobject-addons/trunk>`_ : if your module will be usefull for most of the companies
462
.. i18n: We invite all our partners and contributors to work in that way so that we can
463
.. i18n: easily integrate and share the work done between the different projects.
465
We invite all our partners and contributors to work in that way so that we can
466
easily integrate and share the work done between the different projects.
468
.. i18n: Use Case Developpers
469
.. i18n: ++++++++++++++++++++
474
.. i18n: This page present the approach your should follow on how to contribute in
475
.. i18n: OpenObject. Suppose you want to develop new features in the addons or simply
476
.. i18n: correct some bugfixes.
478
This page present the approach your should follow on how to contribute in
479
OpenObject. Suppose you want to develop new features in the addons or simply
480
correct some bugfixes.
482
.. i18n: If you have the right to modify directly the branch you plan to change, you can
483
.. i18n: do it directly. For example, a quality team member doing a bugfix can do it
484
.. i18n: directly on the main branch. Or commiters can work directly on the
485
.. i18n: extra-addons. If you don't have the right to modify the branch you plan to
486
.. i18n: change or if you want to branch because you are starting big developments
487
.. i18n: that may break the code, the first thing to do is to branch the repository
488
.. i18n: you plan to modify::
490
.. i18n: bzr branch lp:openobject-addons lp:~openerp-commiter/openobject-addons/trunk-new-reporting
492
If you have the right to modify directly the branch you plan to change, you can
493
do it directly. For example, a quality team member doing a bugfix can do it
494
directly on the main branch. Or commiters can work directly on the
495
extra-addons. If you don't have the right to modify the branch you plan to
496
change or if you want to branch because you are starting big developments
497
that may break the code, the first thing to do is to branch the repository
500
bzr branch lp:openobject-addons lp:~openerp-commiter/openobject-addons/trunk-new-reporting
502
.. i18n: In that case, the branch created will be for the openerp-commiter team. If you
503
.. i18n: are not a commiter, you can create the branch for the community team
504
.. i18n: openerp-community or just for youself, depending if you accept people to
505
.. i18n: directly commit on your branch or not. For all Tiny employees, we propose to
506
.. i18n: create all branches for the team openerp-commiter. An OpenERP service company
507
.. i18n: may create a team for their company and create branches at the name of their
508
.. i18n: team. This will allow them to avoid others people that will change their
509
.. i18n: customer branch.
511
In that case, the branch created will be for the openerp-commiter team. If you
512
are not a commiter, you can create the branch for the community team
513
openerp-community or just for youself, depending if you accept people to
514
directly commit on your branch or not. For all Tiny employees, we propose to
515
create all branches for the team openerp-commiter. An OpenERP service company
516
may create a team for their company and create branches at the name of their
517
team. This will allow them to avoid others people that will change their
520
.. i18n: Once the branch is created, you must checkout a local copy to work on::
522
.. i18n: bzr co lp:~openerp-commiter/openobject-addons/trunk-new-reporting
524
Once the branch is created, you must checkout a local copy to work on::
526
bzr co lp:~openerp-commiter/openobject-addons/trunk-new-reporting
528
.. i18n: This will download the branch on your local computer. You can then start
529
.. i18n: developing on it. From time to time, you should commit the work done::
533
This will download the branch on your local computer. You can then start
534
developing on it. From time to time, you should commit the work done::
538
.. i18n: This will send your modification to the branch:
539
.. i18n: lp:~openerp-commiter/openobject-addons/trunk-new-reporting. Don't forget to
540
.. i18n: change the status of the branch to show others contributors the status of your
541
.. i18n: current work on
542
.. i18n: https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-new-reporting
544
This will send your modification to the branch:
545
lp:~openerp-commiter/openobject-addons/trunk-new-reporting. Don't forget to
546
change the status of the branch to show others contributors the status of your
548
https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-new-reporting
550
.. i18n: For instance, you can switch the status to "In Development" to show you are
551
.. i18n: working on it and put the status to "Mature" when you'd like to have your code
552
.. i18n: integrated in the official release.
554
For instance, you can switch the status to "In Development" to show you are
555
working on it and put the status to "Mature" when you'd like to have your code
556
integrated in the official release.
558
.. i18n: During your development, if you want to receive the latests modifications from
559
.. i18n: the parent branches, you can merge it::
563
During your development, if you want to receive the latests modifications from
564
the parent branches, you can merge it::
568
.. i18n: Once your development on this branch are ok, you can ask a commiter to review
569
.. i18n: and merge it or fill in a bug in the bugtracker. A commiter will then review
570
.. i18n: your work and merge it to the official branch if it's good enough.
572
Once your development on this branch are ok, you can ask a commiter to review
573
and merge it or fill in a bug in the bugtracker. A commiter will then review
574
your work and merge it to the official branch if it's good enough.