Skip to content
Olivier Dony edited this page Aug 14, 2014 · 35 revisions

IMPORTANT: Don't panic! The transition does not happen all at once, and we will try to preserve as much as possible in the process. Existing bugs, branches, merge proposals, etc. will stay available for the foreseeable future.
=> Please read on...

Transition Status

Please click on each topic to see more details.

Topic Status Summary
Source Code
Done
All 3 bzr repos merged into 1 GitHub repo: odoo, shrunk from 900MB to 400MB.
7.0 on LP might receive GitHub replays for a limited time.
Code Namespace
In Progress
import openerp -> import odoo to be implemented with backwards-compatibility in v8
Runbot
Done
For 7.0+: runbot v8 with GitHub integration (auto-build PRs, tags with results, etc.)
For 6.1-: runbot v7 with Launchpad integration
Nightly
In Progress
Install packages for 8.0 built from GitHub source are available at Nightly (Debian/RPM/Source, Windows coming soon)
Bug Reports
Done
LP bugs stay on LP, but no new ones. New bugs = GitHub issues.
Search old LP bugs via google or here.
Merge Proposals
Done
LP MPs stay on LP. New ones = Pull Requests on GitHub.
Translations
In Progress
Translators actively working on v8 on LP until release. Transifex or similar tooling to develop for post-v8 future.
Apps
In Progress
The Apps platform will soon be updated to add support for GitHub repositories (while preserving bzr compatibility).
Help / FAQ
Done
Moved to new platform on www.odoo.com/forum
Mailing Lists
In Beta
To be migrated to odoo.com mail groups, as GitHub does not have lists
Tech/Comm Doc
In Progress
Will move to Odoo wiki or .rst/.md files on GitHub. Tech memento as well.
Functional Doc
In Progress
Will be updated for v8 and posted in the form of editable FAQ entries (cookbook style) on Help

Note 1: This list will be updated as we progress, some plans will still change.

Note 2: LP BluePrints are not mentioned here because they were never officially used. Using the GitHub wiki or posting Issues with a special label would be possible alternatives for projects moving to GitHub.

Source Code

Main change is done. The 3 repositories (addons, server, web) on LP were converted and merged into a new single repository on GitHub, history preserved: odoo/odoo. The size of the repo shrank to 400MB after dropping invalid sections of the history tree (wrong merges of big binary files, etc.).

Migration from Bazaar

The existing bazaar branches were migrated to git using this script, and then merged all in a single odoo branch using a regular git merge in the git repository containing the 3 branches.

Layout

  Old Layout                    New Layout
  ----------                    ----------
  - openobject-server           - odoo
    `- openerp                    `- openerp
       `- addons                    `- addons
         `- base                      `- base
  - openobject-addons             `- addons
    `- account                      `- account
    `- ...                          `- ...
  - openerp-web                     `- web
    `- addons                       `- ...
       `- web
       `- ...

Branches and History

The branches of the main series are all present in the new repo under their usual names, with their complete history. You do not need to fetch them separately, they're all in the odoo/odoo repo: 6.1, 7.0, etc.

WARNING: trunk was renamed to master, according to git tradition.

The commit messages of all revisions converted from bzr have been updated to include the Launchpad bug URLs (when present) as well as the bzr rev-id. Here is an example.

Important: the authoritative branch for series 7.0 and later are those on GitHub. It would be too complicated for bug reports and pull requests on GitHub if that was not the case. Launchpad branches are not kept updated.

Migrating existing checkouts

The first step is to checkout the new odoo repo:

 git clone https://github.com/odoo/odoo.git

This fetches ~400MB and takes ~5 minutes with a 30 mbps bandwidth, YMMV.

Then if you actually want the master branch you would simply checkout master in your working tree:

 git checkout master

Assuming this will be a read-only repository, you can then use git pull to fetch the latest revisions from upstream (origin) and to update your working tree at the same time.

The next step is to modify your server startup script and your configuration to use an updated addons_path matching the new layout.

Some references

Code Namespace

To be in line with the product name, the namespace of the server will change to odoo in master (trunk/v8). You will thus be able import odoo instead of import openerp. The old namespace will still be available in v8 for backwards-compatibility.

Runbot

A new Runbot engine (v8) has been developed with advanced GitHub integration, including:

  • Automatic build of all Pull Requests towards a repository
  • Automatic tags with build results on the GitHub Pull Requests (Success/Failure with link to details)
  • Display of Author + Commit Message
  • Extraction of build errors and warnings
  • Includes all the existing features: live branches, sticky branches, rebuilds, links to commits/PRs, etc.

More features are still being added, and the UI is a work-in-progress.
Support for external repositories (for community projects) will be added as well, but all Odoo PRs are already supported.
The source code for the new runbot is available here.

The old Runbot (v7) is still available for all Launchpad-based branches.

Nightly

Nightly builds and official installers for 8.0 have been updated to build against the latest version from the GitHub repository (using the build scripts from the main repository). The Debian, RPM, and source formats are available, Windows installers are coming soon.

The other installers will be updated soon, and are currently still built from Launchpad source.

Bug Reports

All existing bug reports will stay on Launchpad for reference, and will not be duplicated on GitHub, to keep separate namespaces. The option to report new bugs on the official projects on LP has been closed, and new issues will have to be reported on GitHub, via odoo/issues.

The community documentation will be updated soon to explain the new process, including the new labels.

It will still be possible to search through the old LP bug reports via google or via the umbrella "project group". Direct links to bug reports will still work as well.

Note: existing references to LP bugs are preserved in the git repository, as part of the commit messages.
References to GitHub issues in new commits should use the GitHub style by mentioning the issue number: Issue #14.

Merge Proposals

Similarly to bug reports, existing LP Merge Proposals stay on LP and should not be automatically transferred to GitHub. This will keep them next to the bugs they reference. Whenever such a MP is merged it will be forwarded to GitHub using this script.

Internal Odoo branches (bugfixes and new features from Odoo R&D) are now created in the new odoo-dev repository and merged using Pull Requests.

New contributions should come in the form of GitHub pull requests, which will automatically open new issues in the Odoo bugtracker. Have a look at the GitHub documentation for more info. Please be extra careful with the target branch selection (as in LP, it will default to trunk/master).

Important: there is no need to create multiple Pull Requests (7.0 + master/8.0) when fixing an issue on 7.0, as all 7.0 bugfixes are automatically forwarded to master (this was the case in Launchpad too!)

Translations

Launchpad's translation infrastructure is quite unique, and we have many translations teams working on a complex translation workflow. The v8 release is too soon to allow setting up a new translation process on top of GitHub, especially as there is nothing built-in.

Translators can continue to work on Launchpad for the v8 branches, in the 3 legacy projects:

Synchronization is done both ways:

  • When significant changes have occurred in the source code, new POT files are exported in GitHub and then copied to the corresponding LP branches
  • Every day Launchpad exports new translations into the translation branches (bazaar). Those are copied over to the corresponding GitHub branches every few weeks, and more regularly when a release date is close.

After the release of v8 we will set up a new translation process, probably built on top of Transifex or a similar service.

Apps

The Odoo Apps library (formerly OpenERP Apps) will evolve soon and add support for git branches in addition to existing bzr branches.

Help / FAQ

The former OpenERP Help contents has already been migrated to the new Odoo Help platform, based on the website_forum Odoo App. Everything has been preserved as much as possible (questions, answers, comments, profiles, karmas, badges, etc.)

Mailing Lists

As GitHub has no mailing-lists, we will gradually phase out the Launchpad lists and move them to Odoo discussion groups on odoo.com (implemented by the website_mail_group Odoo module). This will be announced in each mailing-list before shutting them down. Mailing list archives will stay available for the foreseeable future (on LP itself and on nabble, for instance).

Technical + Community Documentation

The technical/developer documentation and the community book will be moved to the Odoo wiki or .rst/.md files in the odoo repo, to make collaborative editing easier. They are likely to remain in English only.

The technical memento is being updated for v8 as well and will be available in this form soon too.

Functional Documentation

The functional documentation for v8 is being rewritten/updated and will be published in the form of cookbook recipes on the new Odoo Help platform, as FAQ entries. Selected FAQ entries will be structured with a Table of Contents, and will be editable by everyone according to their karma.

The functional documentation archives (older versions) will be preserved as long as possible at their old locations.

These new FAQ entries will probably be automatically translated in several languages (TBD).

Rationale

The move to GitHub had been proposed several times in the past by the community, and is driven by compelling reasons:

  • Launchpad.net and Bazaar are currently on life support, barely maintained anymore and suffering from many performance issue and bugs. For example most pages displaying a list of OpenERP items on Launchpad (bugs, merge proposals, translations, etc.) are now failing with a timeout more than 50% of the time. As the OpenERP/Odoo project continues to grow in all aspects, these performance issues only get worse with time.
  • Git is a clear winner in the VCS war, regardless of its good and bad sides. This means that newcomers are more likely to be familiar with git and GitHub than with anything else (such as mercurial), and using Launchpad/Bazaar would make the learning curve much steeper for them. Old-timers will have no choice but to become familiar with git for other projects, so it is a good investment in any case.

It is not a small change and certainly comes with challenges and sweat, but we think it is worth it. We will try to preserve as much as possible (data and work) in the transition process.

Clone this wiki locally