Навигация

Оглавление

Versions

This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Bazaar, система контроля версий

Новый процесс разработки использует Bazaar на launchpad.net вместо Subversion. Bazaar предлагает гибкую распределённую модель. Вы можете наблюдать наши ветви на странице https://code.launchpad.net/~openerp.

Explanation of directories:

Две команды были созданы на launchpad:

  • Команда качества OpenERP --> они могут утверждать изменения в этих ветвях:

    • 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

  • Команда коммиттеров OpenERP --> Они могут утверждать изменения в этих ветвях:

    • lp:~openerp/openobject-addons/4.2-extra-addons

    • lp:~openerp/openobject-addons/trunk-extra-addons

В эту группу мы включили также некоторых наших партнёров, выбранных исходя из их вклада командой контроля качества.

  • Волонтёры --> Они могут утверждать изменения в этих ветвях:

    • lp:~openerp-community

How can I be included in OpenERP-commiter team ?

Каждый волонтёр, заинтересованнный в том, чтобы стать коммиттером, должен проявить свой интерес в работе над проектом OpenERP, и проявить способности делать это правильно, так как отбор в эту группу производиться по уровню навыков. Это может быть предложение исправления ошибки, функционал, запрошенный через нашу систему отслеживания ошибок. Вы можете даже предложить дополнительные модули или функционал, пользуясь системой отслеживания ошибок.

How can I suggest some additionals modules or functionalities ?

Для создания дополнительных модулей или функционала, и включения их в проект, нужно проделать следующее:

  1. открыть ветвь на Launchpad

  2. направить отчёт о создании ветви и примерный путь решения проблемы в систему отслеживания ошибок (есть два пути : отчёт об ошибке и набросок идеи / функционала)

  3. дождаться утверждения командой контроля качества

Или команда контролья качества утвердит вашу работу и объеденит её с официальной ветвью (как объясняется в разделе Отслеживание ошибок), или они отклонят её и попросят улучшить перед тем как объединять её с нашей официальной ветвью.

Установка Bazaar

Установите систему контроля версия Bazaar, чтобы получать исходный код из Launchpad.

Чтоб установить bazaar на любой дистрибутив ubuntu, вы можете отредактировать /etc/apt/sources.list с помощью

sudo gedit /etc/apt/sources.list

и добавить в него эти строки:

deb http://ppa.launchpad.net/bzr/ubuntu intrepid main
deb-src http://ppa.launchpad.net/bzr/ubuntu intrepid main

Затем, проделайте следующее

sudo apt-get install bzr

Для правильной работы, версия bzr должна быть не ниже 1.3. Проверьте с помощью команды:

bzr --version

Если у вас нет как минимум версии 1.3, можете получить её по этой ссылке: http://bazaar-vcs.org/Download В Debian, в любом дистрибутиве, работает версия 1.5, которую вы можете получить по ссылке: http://backports.org/debian/pool/main/b/bzr/bzr_1.5-1~bpo40+1_i386.deb

Если у вас возникли проблемы с Bazaar, пожалуйста, прочитайте ЧаВо про систему контроля версий Bazaar перед тем как задавать вопросы.

Краткие итоги

Это официальный рекомендуемый путь участия в проектах OpenERP и OpenObject.

Чтобы получить последнюю версию исходных кодов, сделайте следующее:

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

Эта команда скачает все компоненты openerp (сервер, клиент, дополнения) и создаст ссылки на модули в дополнениях вашего сервера, чтобы вы могли использовать их напрямую. Вы можете изменить файл bzr_set.py чтобы более точно указать, что требуется загружать. Теперь вы можете редактировать код и фиксировать изменения в вашей локальной ветви.:

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

Как только ваш код будет в достаточной степени соответствовать документу Руководство по программированию, вы можете опубликовать вашу ветвь на launchpad. Возможно, вам понадобится создать учётную запись на launchpad для начала, зарегистрировать ваш публичный ключ, и вступить в команду openerp-community. Теперь, вы можете опубликовать вашу ветвь. Предположим, вы хотите опубликовать ваши дополнения:

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

Как только вы всё это проделаете, ваша ветвь будет общедоступна на Launchpad в проекте OpenObject, и коммиттеры смогут работать с ней, проверять её и предлагать к объединению с официальной ветвью.Последняя строчка позволяет вам запомнить расположение вашей ветви на launchpad. После этого действия, ваши команды фиксации будут применяться напрямую к коду, находящемуся на launchpad (если только вы не используете параметр --local):

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

Если внесённые вами изменения исправляют общедоступную ошибку, описанную на launchpad, следующей командой можно отметить, что ваша ветвь исправляет эту ошибку:

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

Как только ваша ветвь "созрела", переведите её в состояние "Mature" в веб-интерфейсе, и направьте запрос на объединение с официальным релизом. Ваша ветвь будет проверена коммиттером и затем командой контроля качества, чтобы объеденить ей с официальным релизом.

Как получить последний исходный код главной ветви

Сделайте копию каждого репозитория:

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

Если вы хотите сделать копию репозитория extra-addons, вы можете выполнить эту команду:

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

запустите установочные скрипты в соответствующих каталогах:

python2.5 setup.py build
sudo python2.5 setup.py install

В настоящее время процедура инициализации сервера с параметром --init=all заполняющая базу данных не работает в основной ветви.

Рекомендуется создавать новую базу данных через gtk-клиент. Пока вы этого не сделаете, веб-клиент работать не будет.

Запустите сервер OpenERP примерно такой командой:

./openerp-server.py --addons-path=~/home/workspace/stable/addons

Каталог bin/addons предополагается каталогом с дополнениями по-умолчанию, что может быть изменено параметром ~/home/workspace/stable/addons. Это значит, что, если дополнение есть и в bin/addons и в ~/home/workspace/stable/addons (частный путь), последнему будет дано преимущество перед bin/addons (путь по-умолчанию).

Как зафиксировать свою работу

Если вы хотите внести вклад в развитие OpenERP или OpenObject — вот предполагаемый метод:

  • Вы создаёте ветвь на Launchpad, в проекте, который вам интересен. Важно создать свою ветвь именно на Launchpad, а не на локальном компьютере, чтобы вы могли легко объединяться, делиться кодом с проектами и централизовать ваши будущие разработки.

  • Вы разрабатываете собственный функционал или исправляете ошибки в вашей ветви на Launchpad. Не забывайте установить статус для вашей ветви (новая, экспериментальная, разрабатываемая, зрелая, …) чтобы волонтёры знали, что можно использовать, а что — нет.

  • Как только вы решили, что ваш код достаточно хорош - предложите вашу ветвь к слиянию.

  • Ваша работа будет проверена одним ответственным лицом из команды коммиттеров.

    • Если они примут вашу ветвь к интеграции в официальную версию, они пригласят команду контроля качества, которая проверит ваш код и объеденит его с официальной ветвью.

    • Если команда коммиттеров отклоняет вашу ветвь — они объяснят причину, чтобы вы могли пересмотреть ваш код с точки зрения большего соответствия рекомендациям (проблемы при миграциях в будущем, …)

Ветвь extra-addons, в которой хранятся все дополнительные модули, доступна напрямую всем коммиттерам. Если вы — коммиттер, вы можете работать с этой веткой напрямую и фиксировать свою работу. Эта ветвь не требует проверки командой контроля качества. Вы можете выкладывать в неё специальные модули для ваших собственных заказчиков.

Если вы хотите предложить или разработать новые модули, мы советуем вам создать свою собственную ветвь в проекте openobject-addons и вести разработку в вашей ветви. Вы можете заполнить отчёт об ошибке, чтобы запросить внедрение ваших модулей в одну из следующих ветвей:

  • addons : если ваш модуль будет полезен большинству организаций

  • Мы приглашаем всех наших партнёров и волонтёров работать именно так, чтобы мы могли легко объединять и разделять работу, проводимую среди разных проектов.

"Use Case"-Разработка

This page present the approach you should follow on how to contribute in OpenObject. Suppose you want to develop new features in the addons or simply correct some bugfixes.

If you have the right to modify directly the branch you plan to change, you can do it directly. For example, a quality team member doing a bugfix can do it directly on the main branch. Or commiters can work directly on the extra-addons. If you don't have the right to modify the branch you plan to change or if you want to branch because you are starting big developments that may break the code, the first thing to do is to branch the repository you plan to modify:

In that case, the branch created will be for the openerp-commiter team. If you are not a commiter, you can create the branch for the community team openerp-community or just for youself, depending if you accept people to directly commit on your branch or not. For all Tiny employees, we propose to create all branches for the team openerp-commiter. An OpenERP service company may create a team for their company and create branches at the name of their team. This will allow them to avoid others people that will change their customer branch.

bzr branch lp:openobject-addons lp:~openerp-commiter/openobject-addons/trunk-new-reporting

Once the branch is created, you must checkout a local copy to work on:

Эта команда загрузит ветвь на ваш компьютер. Затем вы можете начинать разработку. Время от времени вам стоит фиксировать произведённые вами изменения:

bzr co lp:~openerp-commiter/openobject-addons/trunk-new-reporting

Эта команда отправит ваши изменения в ветвь: lp:~openerp-commiter/openobject-addons/trunk-new-reporting. Не забывайте менять статус ветви, чтобы другие добровольцы могли видеть состояние вашей работы на странице https://code.launchpad.net/~openerp-commiter/openobject-addons/trunk-new-reporting

bzr ci

For instance, you can switch the status to "In Development" to show you are working on it and put the status to "Mature" when you'd like to have your code integrated in the official release.

В процессе разработки, если захотите получить последние изменения из родительских ветвей, вы можете их подключить:

Once your development on this branch are ok, you can ask a commiter to review and merge it or fill in a bug in the bugtracker. A commiter will then review your work and merge it to the official branch if it's good enough.

bzr merge

Commit Guidelines

При фиксации изменений на Launchpad соблюдайте, пожалуйста, эти договорённости:

The stable branch is for bugfixes

Стабильная ветвь должна использоваться для исправлений ошибок. Только для исправлений ошибок.

Новый функционал (+исправления ошибок в этом функционале) должен быть в ветви trunk.

We will periodically backport all the fixes from stable to trunk.

Примечание

Указивайте имя автора, если оно отлично от имени коммитера

При фиксации изменений, сделанных не вами, указывайте имя автора. Недопустимо вносить изменения, сделанные добровольцем, не указав хотя бы его/её имя в сообщении о фиксации. Мы должны выказывать уважение к ним и их работе, так что используйте --author="<имя_автора>" когда присоединяете наработки или заплатки от сообщества.

Write a helpful commit message

e.g: bzr commit --author="<author_name>"

Используйте тег фиксации в каждом сообщении. Этот тег должен быть одним из:

[IMP]

  • [FIX]

  • [REF]

  • [ADD]

  • [REM]

  • [IMP]

[IMP]:

[FIX]

[FIX]:

[REF]

[REF]:

[ADD]

[ADD]:

[REM]

[REM]:

Всегда составляйте значимые сообщения о фиксации. Сообщения о фиксации должны быть понятными и включать название модуля, который был изменён. Никаких больше "bugfix" или "improvements" ! (единственное односложное принимаемое сообщение о фиксации — "merge")

  • If you are fixing the bugs use --fixes=lp:<bug_number> instead of putting the number of the bug in the commit message.

  • Используйте идентификатор ревизии вместо номера, когда хотите сослаться на ревизию в вашем сообщении о фиксации. Вы можете узнать идентификатор ревизии, с помощью команды bzr version-info.

  • Как поступить при переводе ?

e.g:

  Not Correct : bzr commit -m “[FIX]: reverted bad revision (cannot install new db)
    with revision number:525425”

  Correct : bzr commit -m “[FIX]: reverted bad revision (cannot install new db)
  with revision number id: qdp@tinyerp.com-20090602143202-ehmntlift166mrnn”

  Not Correct : bzr commit -m "Bug 568889 : typo corrected"

  Correct : bzr commit --fixes=lp:568889 -m "[FIX] account module: typo corrected"

Примечание

используйте [IMP] если перевели сообщение в файле po

используйте [ADD] если добавили новый файл po

Избегайте больших коммитов

Не вносите изменений, которые повлияют на множество модулей. Попытайтесь разбить их на разные изменения, для которых затрагиваемые модули различаются (Это будет полезно в случае, если мы решим откатить изменения в отдельном модуле).

Don't make a commit that will impact lots of modules. Try to split it into different commits where impacted modules are differents (It will be helpful when we are going to revert that module separately).