← Back to team overview

openerp-community team mailing list archive

Re: OCA: transition from Launchpad to Github



Some comments about migration strategy below.

On Fri, Jun 20, 2014 at 3:08 PM, Guewen Baconnier <
guewen.baconnier@xxxxxxxxxxxxxx> wrote:

> The decisions discussed so far
> ==============================
>  - The branches up to 7.0 will stay on Launchpad
>    Though, they will be mirrored on Github (Github doesn't have readonly
> branches but the committers won't commit on them)
>  - Starting from 8.0, they will be on Github
>  - For the OCA committers and reviewers, it means that we will need to
> review both on Launchpad and Github, but it avoid the need to migrate
> all the pending merge proposals and bug reports
>  - There is no date planned for the creation of the 8.0 branches, sooner
> means more duplication of proposals (and some pain to follow the master
> branch changes, which is still unstable), on the other hand, some people
> already work on modules for v8.0.
> Some scripts (fast-import, ...) or ideas have already been published but
> I want to have a reference in this thread, so please share them.

I'm one of those who voted to keep 6.1 and 7.0 branches on launchpad.

I still think we need to keep those branches up-to-date on launchpad to
preserve existing deployments.

I now believe however that maintenance activities should take place on
github for all branches, while maintaining launchpad as a mirror for 7.0
and 6.1. This should facilitate development while preserving deployments.

Many of us we will have to maintain 7.0 (and 6.1) installations for
a possibly long period of time, and having everything under the
same VCS (git) will greatly facilitate the management of back and forward
ports of features and corrections.

The short term drawback I see so far is that we'd need to reapply
current MP's to github as PR's. IMHO this is a small price to pay to reap
larger benefits on the long run.

What do you think?

Regarding tooling, I'm experimenting with git-bzr-ng (apt-get installable).
While I have not done anything fancy nor large scale yet, I could
easily migrate lp:acsone-addons from lp to github and the mirroring
workflow looks quite simple at first glance.

It looks like this:

# first create new empty repository on github

# then clone lp:acsone-addons in a new local git repo
git bzr clone lp:acsone-addons/trunk acsone-addons
# import additional branches from bzr
cd acsone-addons
git bzr import lp:acsone-addons/7.0
git bzr import lp:acsone-addons/6.1
# create a remote named origin, pointing to the github repo
git remote add origin git@xxxxxxxxxx:acsone/acsone-addons.git
# push the 3 branches to github
git push -u origin master
git push -u origin 7.0
git push -u origin 6.1

That was it and the git history is looking good at first glance.

Then adding stuff on github and mirroring to launchpad looks like this:

git checkout master
# ... add and commit README.md and LICENSE
# push to github
git push
# push to bzr
git bzr push

So if we decide to keep launchpad as a mirror,
a nightly script could work like this:
- git fetch
- for each branch:
-    git checkout $branch
-    git bzr push

git-bzr maintains the mapping between git and bzr branches in .git/config.

In the end if the decision is to keep lp as the master for 7.0 and 6.1,
the same tool could work too (git bzr sync, then git push for such

I'll dig deeper next week and see what an automated script would look like
in practice.

> ==========
> The transition will probably need a lot of boring and tedious - more or
> less manual - work. More work than can be done by a single person, so my
> first concern is to compile a list of the heroes who will take part and
> will accept to share the tasks.
> Please announce you! and inform if you have superpowers or special
> abilities that could help (git-fu, launchpad api, github api, CI, ...)

I'm in. No particular superpowers, I'm afraid :)
For instance, I can help putting the mirroring scripts in place
I can also setup a virtual machine (at OVH) to run them.



Follow ups