Skip to content

GitHub Transition

Olivier Dony edited this page Jan 23, 2017 · 36 revisions

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
Done
import openerp -> import odoo implemented with backwards-compatibility in v10
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
Done
Install packages for all versions now built from GitHub source, see Nightly (Debian/RPM/Source/Windows).
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
Done
Moved to Transifex
Apps
Done
The Apps platform has been 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
Done
Migrated to odoo.com mail groups, as GitHub does not have lists. LP lists still open temporarily
Tech/Comm Doc
Done
Technical documentation available. Extra community documentation moved to this wiki
Functional Doc
In Progress
See https://www.odoo.com/documentation/user/9.0/

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 all versions have been updated to build against the latest version from the GitHub repository (using the build scripts from the main repository). The Windows, Debian, RPM and source formats are available, as well as Docker images.

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

The original translation process and translations teams have been moved to Transifex.com as of May 2015. For more information see the dedicated wiki page.

Apps

The Odoo Apps library (formerly OpenERP Apps) has been updated to support 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 are gradually phasing out the Launchpad lists and moving them to Odoo discussion groups on odoo.com (implemented by the website_mail_group Odoo module). Launchpad mailing-list are still available temporarily. 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 has been moved to the official source tree in RST format, and can be edited by anyone through GitHub's Pull Request system. It is published automatically on the Odoo.com website. The technical memento is being updated for v8 as well and should be available in this form soon too.

Specific community documentation (e.g. how to contribute, etc.) have been moved to this wiki. Everything is likely to remain in English only.

Functional Documentation

The functional documentation is being rewritten/updated at https://www.odoo.com/documentation/user/9.0/

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.