-
-
Notifications
You must be signed in to change notification settings - Fork 398
OLD GitHub Transition
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...
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 |
Nightly builds and official installers will soon be updated to use the GitHub repositories |
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 | In Progress |
LP MPs will stay on LP. New ones = Pull Requests on GitHub. |
Translations | Q3 2014 |
Translations managed on LP until v8 release. Transifex tooling to develop. |
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 Progress |
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.
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.).
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.
Old Layout New Layout
---------- ----------
- openobject-server - odoo
`- openerp `- openerp
`- addons `- addons
`- base `- base
- openobject-addons `- addons
`- account `- account
`- ... `- ...
- openerp-web `- web
`- addons `- ...
`- web
`- ...
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.
To be discussed: the authoritative branch for series 8.0 and later will definitely be on GitHub, but it is not 100% sure yet it will be the same for 7.0 and earlier. It could make sense to keep the official 7.0 branch on Launchpad, as this was currently the reference for all users. It will be a problem for bug reports and pull requests on GitHub that target 7.0 though, so it is not an ideal solution, and will require some amount of synchronization in any case.
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.
- For a quick git primer for bzr users, have a look here.
- After reading it, you may want to keep this git interactive cheat sheet handy.
- If you want to setup a multi-remote repo so you can merge code between your own repos and the odoo one, have a look at GitHub doc and the setup script for OpenERP SA employees.
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.
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 builds and official installers will soon be updated to build against the latest version from the GitHub repository instead of the current bzr branches.
In the mean time the trunk
builds are not published anymore, and it is as well because they would be terribly outdated anyway.
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
.
Similarly to bug reports, existing LP Merge Proposals will 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) will be 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!)
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 will still continue to work on LP at least until v8 is released. We will set up a replay system to update the translation templates addons/i18n/*.pot
on LP with the latest terms from master/v8.0 in GitHub. And in the other direction, we will replay the PO updates addons/i18n/*.po
from LP to GitHub.
After the release of v8 we will set up a new translation process, probably built on top of Transifex.
The Odoo Apps library (formerly OpenERP Apps) will evolve soon and add support for git branches in addition to existing bzr branches.
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.)
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).
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.
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).
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.
Website | Online Demo | Community | Documentation | Help