Contact Us +32 81813700

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

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

Пояснение к каталогам:

Две команды были созданы на 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
Как я могу стать участником команды коммиттеров OpenERP ?

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

Как я могу предложить дополнительные модули или функционал ?

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

  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 чтобы более точно указать, что требуется загружать. Теперь вы можете редактировать код и фиксировать изменения в вашей локальной ветви.:

отредактируйте addons/account/account.py
cd addons
bzr ci -m "Testing Modifications"

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

cd addons
bzr push lp:~openerp-community/openobject-addons/ВАШЕИМЯПОЛЬЗОВАТЕЛЯ_ИМЯВАШЕЙВЕТВИ
bzr bind lp:~openerp-community/openobject-addons/ВАШЕИМЯПОЛЬЗОВАТЕЛЯ_ИМЯВАШЕЙВЕТВИ

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

bzr pull    # Получить изменения вашей ветви другими участниками
РЕДАКТИРОВАТЬ ЧТО-ТО
bzr ci    # Зафиксировать ваши изменения в общедоступной ветви

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

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

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

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

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

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

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

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

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

“Use Case”-Разработка

На этой странице приблизительно описаны методы, которым стоит следовать при разработке для OpenObject. Предположим, вы хотите разработать новый функционал к дополнениям или просто исправить несколько ошибок.

Если ваших прав достаточно для внесения изменений напрямую в ветвь, которую вы хотите исправить — можете сделать это непосредственно в ней. Например, участник команды качества, исправляющий ошибку, может сделать это прямо в основной ветви. Или коммитеры могут работать непосредственно с ветвью extra-addons. Если у вас недостаточно прав для изменения ветви, которую вы хотите поправить, или если вы хотите отделиться, начиная большие разработки, которые могут сломать исходный код, первое что надо сделать — создать новую ветвь репозитория, который вы хотите изменить:

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

В этом случае ветвь будет создана для команды openerp-commiter. Если вы не входите в эту команду, вы можете создать ветвь для команды сообщества openerp-community или только для себя, в зависимости от того, принимаете ли вы изменения от других людей напрямую или нет. Всем сотрудникам Tiny мы предлагаем создавать ветви в команде openerp-commiter. Обслуживающая OpenERP компания может создать собственную команду для своих ветвей и создавать ветви по её названию. Это позволит им избежать воздействия других людей на ветви их клиентов.

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

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

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

bzr ci

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

Например, вы можете установить статус “In Development” чтобы показать, что работа идёт, или статус “Mature” когда вы хотите, чтобы ваша ветвь была включена в основной выпуск.

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

bzr merge

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

Рекомендации по фиксации изменений

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

Стабильная ветвь — для правки ошибок

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

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

Note

Мы периодически переносим исправления из стабильной ветви в trunk.

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

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

Пример: bzr commit --author="<имя_автора>"

Пишите подробные сообщения о фиксации

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

  • [IMP]
  • [FIX]
  • [REF]
  • [ADD]
  • [REM]
[IMP]:Для улучшений
[FIX]:Для исправлений ошибок
[REF]:Для рефакторинга (улучшения в исходном коде без изменения функционала или поведения. Смотрите http://ru.wikipedia.org/wiki/Рефакторинг для дальнейших подробностей)
[ADD]:Для добавления новых ресурсов
[REM]:Для удаления ресурсов
  • Всегда составляйте значимые сообщения о фиксации. Сообщения о фиксации должны быть понятными и включать название модуля, который был изменён. Никаких больше “bugfix” или “improvements” ! (единственное односложное принимаемое сообщение о фиксации — “merge”)
  • Если вы исправляете ошибку, указывайте --fixes=lp:<номер_ошибки> вместо указания номера прямо в сообщении.
  • Используйте идентификатор ревизии вместо номера, когда хотите сослаться на ревизию в вашем сообщении о фиксации. Вы можете узнать идентификатор ревизии, с помощью команды bzr version-info.
Примеры:

  Неправильно : bzr commit -m “[FIX]: reverted bad revision (cannot install new db)
    with revision number:525425”

  Правильно : bzr commit -m “[FIX]: reverted bad revision (cannot install new db)
  with revision number id: qdp@tinyerp.com-20090602143202-ehmntlift166mrnn”

  Неправильно : bzr commit -m "Bug 568889 : typo corrected"

  Правильно : bzr commit --fixes=lp:568889 -m "[FIX] account module: typo corrected"

Note

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

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

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

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

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


The documentation is editable by everyone on Launchpad.