BUIP091: (passed) Move the official BU repository and issue tracker to GitLab

torusJKL

Active Member
Nov 30, 2016
497
1,156
BUIP091: move the official BU repository and issue tracker to GitLab
Submitted on 01 August 2018 by torusJKL

Background
The BU code and the issue tracker is kept on GitHub under the URL https://github.com/BitcoinUnlimited/BitcoinUnlimited/.

Motivation
GitHub is a closed environment.
Although it is easy to clone a git repository all the issue tracking and discussions on it can't be exported.
As a project that values free and open source software (FOSS) a platform that is open should be used instead.

Goal
The source code and issue tracking should be moved to a hosted GitLab repository.
(If at any time in the future BU wants to move to a self hosted GitLab instance all data can be exported from the hosted GitLab repository)

Tasks
1) Move all code and issues to GitLab.
2) Change links pointing to the GitHub repository to the new GitLab repository

Timetable
The goal is to have moved by the end of the calendar year 2018.

Caveats
The lead developer can organize the move himself or apoint another BU member to be in charge.
Choosing the namespace is left to the lead developer together with the person in charge.
Should the free hosting solution not provide enough features then a plan can be chosen with a total cost of up to USD 100/month (billed annually), the plan needs to be approved by the BU president before purchased.

References
SaaS offering hosted by GitLab
 

torusJKL

Active Member
Nov 30, 2016
497
1,156
@solex
please add the BUIP to the list.

@Tom Zander
From what I can see you have registered the group BitcoinUnlimited.
Should the BUIP pass would you be willing to transer the rights for this group to BU?
 

solex

Moderator
Staff member
Aug 22, 2015
1,558
4,693
Certainly @torusJKL, added to the BUIP index now.
 

torusJKL

Active Member
Nov 30, 2016
497
1,156
I registered it some years ago (2016), to avoid scammers getting hold of it.

To answer your question, yes, I am willing.

Thanks Tom for your forseight and support of this move.
I hope the BUIP will be accepted and am looking forward to contacting you on this issue.
 

theZerg

Moderator
Staff member
Aug 28, 2015
1,012
2,327
In terms of development workflow, how does gitlab differ from github?
 
  • Like
Reactions: freetrader

torusJKL

Active Member
Nov 30, 2016
497
1,156
@theZerg
GitLab has an internal CI product.

GitLab also has a product called Auto DevOps which is an internal tool for the DevOps pipeline.
It provides the following features:
  1. Auto Build
  2. Auto Test
  3. Auto Code Quality
  4. Auto SAST (Static Application Security Testing)
  5. Auto Dependency Scanning
  6. Auto License Management
  7. Auto Container Scanning
  8. Auto Review Apps
  9. Auto DAST (Dynamic Application Security Testing)
  10. Auto Deploy
  11. Auto Browser Performance Testing
  12. Auto Monitoring
More information about Auto DevOps.

Please let me know if that did not answer your question.
 
Last edited:
  • Like
Reactions: freetrader

solex

Moderator
Staff member
Aug 22, 2015
1,558
4,693
This BUIP makes a big decision for BU. It is scheduled for vote, however, it can be deferred if @torusJKL and @theZerg need to discuss the details further, and agree to a deferment.
 

sickpig

Active Member
Aug 28, 2015
926
2,541
@theZerg I used gitlab in the past even if in a self-hosted instance. That said the env there is more reach, as @torusJKL mentioned there's no need to link to travis since they already have an embed CI machinery.

There are tons of other stuff, but basically all we currently do w/ github could be done w/ gitlab.
 

Tom Zander

Active Member
Jun 2, 2016
208
455
Its important to realize that in gitlab a public repository has all the features the "gold" (most expensive) paid tier repos have. For free. There are more features that would apply to groups which you don't get for free, but those are really more for companies anyway (like epics).

IMOHO (based on some months using it) overall gitlab feels more professional. In some cases this means that the project devs need to spend a bit more time with their documentation (for instance to figure out what rights-level a project-member should be), but in general this just makes more stuff easy. Features that show this are for instance that you can press one button and get a set of default labels to tag your issues with. Probably not useful for BU, but its a great example that the product is generally speaking more developed.

To reiterate the CI part; I love the integration level. For instance you get pretty graphics for your CI success-rates;
https://gitlab.com/FloweeTheHub/thehub/pipelines/charts

And naturally, they are not owned by Microsoft. And we know that Microsoft has shown to dislike crypto currencies. Staying on github and making this part of your public persona may be risky as you can wake up with a surprise every day.
Can gitlab do this too? Well, its not impossible that the company turns against you sure. But the software that gitlab runs on is open source and as such you may just rent your own server space and run it yourself. This option is a great way to keep gitlab honest.

Oh, and there is a conversion tool that is said to pull in all the issues PRs etc etc. I haven't tried it myself though.
 

theZerg

Moderator
Staff member
Aug 28, 2015
1,012
2,327
This is good info, @torusJKL and @Tom Zander I value hearing your personal endorsement. One last question that is probably dumb: the forking, pull request & web-based review with comments are github workflows not git. Is there an equivalent in gitlab?
 
  • Like
Reactions: Norway and torusJKL

Tom Zander

Active Member
Jun 2, 2016
208
455
I rather like the merge request concept on gitlab. It is indeed mostly the same, I think you get all the features on gitlab you have on github.

Additionally the CI is done well, the person making the request can restart hung jobs and there are binaries created for the to-be-merged branch someone can download and run.

extra features I don't recall seeing on github for instance are that you as a merge requestor can mark your branch as being auto-deleted when the code gets merged.

Anyway; check out a busy project; https://gitlab.com/inkscape/inkscape/merge_requests?scope=all&utf8=✓&state=opened
 

sickpig

Active Member
Aug 28, 2015
926
2,541
@Norway, @marcus,

I have no problem in switching to GitLab.

In case of a switch the following are things that we need to take into account and need to be aware of thou:

- we should probably keep the github alive for a bit and syncing every once in a while just to give people time to get used to post issues and prs on the new venue, maybe an automatic redirect will be even better.

- Last time I used GitLab was 3 years aog, I'm supposing that the product have improved rather than getting worse along the way

- As I said already my experience was limited to a self hosted instance, so I don't have direct experience of using GitLab hosted project.
 

theZerg

Moderator
Staff member
Aug 28, 2015
1,012
2,327
I'm planning on voting "yes". Remember that a yes vote on any subject authorizes the change but then someone needs to submit an implementation for us to merge, or otherwise do the actual work. In this situation, I am going to interpret that philosophy in this manner: as we are moving to gitlab if we hit some problem we can wait until someone solves it. In other words, if the move doesn't work for some reason we don't have to move (unless gitlab fixes the problem).

EDIT: We'll keep the github account around with a link to gitlab forever...
 

torusJKL

Active Member
Nov 30, 2016
497
1,156
@theZerg now that the BUIP has been accepted by the BU members I would like to ask for an official mandate to look into the move and to work with you to make it happen.
Please let me know if this is ok for you or if you would want to assign this tasks to somebody else.
 
  • Like
Reactions: solex

Tom Zander

Active Member
Jun 2, 2016
208
455
I talked to Solex and asked him to sign the following message I came up with, which he did to my satisfaction and I have given him owner access on the gitlab projects.

-----BEGIN BITCOIN SIGNED MESSAGE-----
Hi Tom, I'm solex1 on gitlab. Parallelize everything!
-----BEGIN BITCOIN SIGNATURE-----
15TiujYmnHa33fjEnasBBm1eWcGx9YEXPL
H3ee6Lk27DtAKnRgOY+9YyDp8/BSgZy24G72bak0uOrpYBxj6WqpAnDpSMrVbN7GEowR5NaK6Cxju0cGZr3EqQs=
-----END BITCOIN SIGNED MESSAGE-----