Gitlab as a new mirror

Hello Hoackers!

You may know that our code sources are hosted on different platforms:

  1. git.hoa-project.net, on our own machines, this is the origin remote,
  2. github.com/hoaproject which the prior mirror (and also the bug tracker),
  3. pikacode.com/hoaproject which is a tier mirror (PikaCode is an official sponsor of the Hoa Foundation).

Today, I would like to propose to add another mirror: gitlab.com.

This step is the first of numerous ones. Here my big plan:

  • As a sysadmin, we no longer want to maintain gitolite,
  • As a sysadmin, we no longer want to maintain cgit,
  • As a sysadmin, we would like a uniform way to host our code and to manage users, Gitlab seems a very comfortable tool to achieve this!
  • As a developer, Github is really cool for bug trackers & co., it is permanently synchronized with git.hoa-project.net because this is a mirror,
  • As a developer, Github is closed source,
  • As a developer, Github does not allow to manage our users like we want, especially for private repositories (because we cannot have private repositories for free),
  • Gitlab can address all these points.

So steps would be the following:

  1. Add Gitlab as an official mirror,
  2. Configure each repositories to see if it would address all our issues,
  3. Add all services we have around Github and see if it can replace it,
  4. Probably we will not leave Github, so see if we can manage two bug trackers at the same time,
  5. Try to install Gitlab on our own servers,
  6. Replace gitlab.com by git.hoa-project.net gently too and leave gitlab.com as a mirror (and still bug tracker).

There are 2 things here: Add Gitlab as a mirror (which is an interesting thing) and using Gitlab at its full potential to replace the current git.hoa-project.net (first on gitlab.com, second on git.hoa-project.net).

What do you think about this?

cc @iraphael @pierozi @jubianchi

I didn’t know gitlab offer unlimited private repo. that could make sense for us.

Very good idea. I’m a gitlab fan for all the reasons you mentionned. I installed it on my own server in its first releases and it was a real pain to maintain (they were using gitolite !) but they have addressed this issue since few years and it’s now very easy to maintain a gitlab server.

Your migration plan looks good but I don’t see how we can manage two bug trackers. It’s my main concern in your plan.

1 Like

@iraphael A clear service that is missing is a unified bug tracker that connects to Github, Gitlab, Bitbucket & co. I don’t know how hard it would be… but we are not going to develop such a service for sure. However, we could still maintain 2 bug trackers and deprecate one in favor of the other slowly. Let’s see (if this is not blocking?)!

The idea of a unified bug tracker is awesome, if it does not exists it’s a very good product to develop !

I love gitlab too and I use it for every project I make for my customers. The unlimited private repo is just awesome. I know that Github is the one to use because of its popularity so it seem complicated to maintains 2 bug trackers at the same time.

I think that to begin with Gitlab you can disable bug trackers but use all the others awesome features (like integrated CI system). With the mirroring the builds can be triggered and it can help introduce this in Hoa.

Gitlab also give the possibility to mirror code to others repo so if one day you want to switch on the other side you can :wink:.

Also love the idea of a global bug tracker but it seems complicated to give the right vision on each tools to the specific users…

So I like Gitlab. But we can’t leave Github because it is a very famous place with a lot of developers (and projects). It will be a marketing mistake :wink: We should keep this platform for hiring some new contributors.

We do not “hire” new contributor. We welcome and thank them.

But I understand your point. We will not leave Github right now, we will gently move to Gitlab and maybe we will still keep Github as the bug tracker. Github is already a mirror and not the origin remote, and no one did notice it so far ;-).

And to be frank, while I love the efforts made by and the features brought by Gitlab, I still prefer the UI of Github. I am sure the next releases of Gitlab will provide better stuff.

The proposed migration will be done in 1 week, so let’s see what will happen with time.

@shulard The integrated CI inside Gitlab is just awesome for us. However, I wonder if we could easily notify Github issues for new status. This is not hard, I made it for our previous CI tentative, but this will require some architecture work.

I’m really enthusiastic with the plan you’re proposing, but like iraphael, I’m skeptical about maintaining 2 bug trackers. Moreover, gitlab offers really cool features with issues like kanban, so that I’d rather prefer to mark github as a read-only mirror, without any openend bugtracker. Additionnaly, like you said, github being closed source versus gitlab being open source makes our issues a lot more fre in gitlab.

I think we should keep github as bugtacker, and the only one.

Even if is a closed source platform, it’s still the first place where much developer will look for code information, issues, and the popularity of project. If it was a new project why not choose gitlab bugtracker, but Hoa already have a big history and habit with github bugtracker, moving could have bad effect.

And i also prefer github UI rather than gitlab, even if they have lot increase this point these last years.

All repositories are created. For instance https://gitlab.com/hoaproject/Websocket. There are all public, with no wiki no issue, no MR & co.

Gitlab has issue when creating a new user. When it will be restored, I will create the Bhoat user with the correct SSH keys, and we will be able to sync the mirrors.

Bhoat has been correctly set up on Gitlab. SSH is working as expected and Bhoat commands and configurations have been updated. Everything works.

As a test a real test, I have merged https://github.com/hoaproject/Acl/blob/master/composer.json.

As we can see, we sync Central to Github, Gitlab and Pikacode. Then we also sync Acl to Github, Gitlab and Pikacode. Let’s see the result:

Commit hashes are exactly the same, everything works correctly.

Note to commiters, You might see something like this first time we synchronize a repository with Gitlab:

[Bhoat] Mirroring Library/Consistency…
[Bhoat] Synchronizing Library/Consistency with hoaproject/Consistency.git at Github…
Everything up-to-date
[Bhoat] Synchronizing Library/Consistency with hoaproject/Consistency.git at Gitlab…
To git@gitlab.com:hoaproject/Consistency.git
 - [deleted]         refs/keep-around/02120d10536bea901c3e41da019eec3490526439
 - [deleted]         refs/keep-around/03ae9ac441658bc173c51ba78d4d8088a4208175
 - [deleted]         refs/keep-around/1638d1939ec15dee839832d88e52193d1b585e5b
 - [deleted]         refs/keep-around/26bf5ed8eeb91344f24a76725144863832a01ea0
 - [deleted]         refs/keep-around/33155f99495e8e4354c22a2a54fca69f1d74509b
 - [deleted]         refs/keep-around/39a79cd2a285d501985578ebb6d4040fb7a2ccfc
 - [deleted]         refs/keep-around/603b87f777c6739efb5076320f25ec66673b3b9a
 - [deleted]         refs/keep-around/675abdec20f30b0be9ad36107ab984f8d3f67431
 - [deleted]         refs/keep-around/6a25e7fe0886f42fd20062d75fa3e573871060ba
 - [deleted]         refs/keep-around/7656b971a8248a8d314ed0c5bb0668936438f62a
 - [deleted]         refs/keep-around/a668e5809f71f1ca27fb040a8a0b4a7b2816b5f4
 - [deleted]         refs/keep-around/aa7e30f99aa2ae476f83800d3ad350506eec153b
 - [deleted]         refs/keep-around/b5f6b82d1110972a60c2399b7aaff242163f53c0
 - [deleted]         refs/keep-around/bd66e6a5dbf3769c54990f3ea5c3863543e650de
 - [deleted]         refs/keep-around/c703866f335fe0c03bef08278b6ec9656226da3c
 - [deleted]         refs/keep-around/c7919e409ca68858f8cceadb7565b9f622575249
 - [deleted]         refs/keep-around/c90a6581aead0c92168b1035c7e336f2131c3131
 - [deleted]         refs/keep-around/f1fdd89dde36fa1185701ab50ef5c321a1bc5b46
 - [deleted]         refs/merge-requests/1/head
 - [deleted]         refs/merge-requests/11/head
 - [deleted]         refs/merge-requests/16/head
 - [deleted]         refs/merge-requests/17/head
 - [deleted]         refs/merge-requests/2/head
 - [deleted]         refs/merge-requests/3/head
 - [deleted]         refs/merge-requests/4/head
 - [deleted]         refs/merge-requests/5/head
 - [deleted]         refs/merge-requests/6/head
 - [deleted]         refs/merge-requests/7/head
 - [deleted]         refs/merge-requests/8/head
 - [deleted]         refs/merge-requests/9/head
[Bhoat] Synchronizing Library/Consistency with hoaproject/Consistency.git at Pikacode…
Everything up-to-date

All these references have been added by Gitlab when importing the repository from Github. That’s absolutely normal. No worry :slight_smile:. Enjoy because it only happens once.

Hello :-),

Now Gitlab is mentionned as a new mirror on the website.

https://github.com/hoaproject/W3/issues/108

Official announce on Twitter:

1 Like