From: | Allan Day <aday-AT-gnome.org> | |
To: | desktop-devel-list <desktop-devel-list-AT-gnome.org> | |
Subject: | Proposal to deploy GitLab on gnome.org | |
Date: | Tue, 16 May 2017 14:22:13 +0100 | |
Message-ID: | <CAC_wn4s3hbX=gsQm4XXVEnC3NtoiBEJuSv=aQaDMtXWkFuRdTw@mail.gmail.com> | |
Archive-link: | Article |
[Written on behalf of Alberto Ruiz, Carlos Soriano, Andrea Veri, Emmanuele Bassi and myself.] Dear community, Over the years, many of us have become increasingly frustrated about the state of our development infrastructure, Bugzilla in particular. Pretty much everyone we’ve spoken to doesn’t like it, and it’s not hard to see why: it is littered with usability issues, code review is a pain, and it is light-years behind more modern development platforms. In the past, there haven’t been many other options, but we’re now in the fortunate position of having viable alternatives and the sysadmin resources to set one of them up and maintain it. In recent months we have got together to examine the possibilities for GNOME’s development infrastructure. We’ve spent a lot of time on this, because we want the community to have faith in our conclusions. If you are interested in this, you can read our research on the wiki [1]. The outcome of this evaluation process is that we are recommending that GNOME sets up its own GitLab instance, as a replacement for Bugzilla and cgit. We are confident that GitLab is a good choice for GNOME, and we can’t wait for GNOME to modernise our developer experience with it. It will provide us with vastly more effective tools, an easier landing for newcomers, and lots of opportunities to improve the way that we work. We're ready to start working on the migration. Please bear in mind that this is just a recommendation! We are not claiming to have complete knowledge and we would like to hear questions and comments. At the same time, we do ask that members of the community approach this proposal with an open mind: please read the wiki pages and try to resist making assumptions about GitLab without familiarising yourself with it. Yours, Allan Day [1] https://wiki.gnome.org/Initiatives/DevelopmentInfrastruct... _______________________________________________ desktop-devel-list mailing list desktop-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/desktop-devel-list
A proposal to move GNOME to GitLab
Posted May 16, 2017 14:17 UTC (Tue) by Conan_Kudo (subscriber, #103240) [Link]
KDE, it's your turn!
A proposal to move GNOME to GitLab
Posted May 16, 2017 15:04 UTC (Tue) by boudewijn (subscriber, #14185) [Link]
Huh? Turn to do what? We moved to Phabricator in 2014 or so.
A proposal to move GNOME to GitLab
Posted May 16, 2017 18:10 UTC (Tue) by mathstuf (subscriber, #69389) [Link]
A proposal to move GNOME to GitLab
Posted May 17, 2017 18:33 UTC (Wed) by boudewijn (subscriber, #14185) [Link]
I like phabricator's repo browsing, task system, possibility to create mockups and stuff, project boards and dashboards. I think its search abilities are below par. We don't use it to replace bugzilla (yet), instead users report to bugzilla, and, this is for Krita alone, I triage the bugs in bugzilla, and when I want action to be taken on a bug, I add a task in phabricator. So, phab is where our todo is, bugzilla where the user reports are.
A proposal to move GNOME to GitLab
Posted May 17, 2017 19:17 UTC (Wed) by mathstuf (subscriber, #69389) [Link]
Do you have details on this?
And I'm aware that one tool isn't going to fit everyone. I'm glad (but not surprised) that KDE chose a FOSS solution at least. I just didn't like Phabricator from a contributor POV when I was submitting a patch to a project using it.
A proposal to move GNOME to GitLab
Posted May 17, 2017 19:49 UTC (Wed) by pizza (subscriber, #46) [Link]
Even if true, that seems trivial to change or disable, given the full-source-code nature of gitlab...
A proposal to move GNOME to GitLab
Posted May 18, 2017 6:31 UTC (Thu) by boudewijn (subscriber, #14185) [Link]
A proposal to move GNOME to GitLab
Posted May 16, 2017 14:40 UTC (Tue) by flussence (subscriber, #85566) [Link]
A proposal to move GNOME to GitLab
Posted May 16, 2017 15:02 UTC (Tue) by ebassi (subscriber, #54855) [Link]
I'm curious to know if they made any attempt whatsoever to take the “usability issues” mentioned to Mozilla.
Of course we did. We've been using Bugzilla for more than 15 years, which means we had interactions with the Bugzilla upstream.
The main issue is that we're running with an older version of Bugzilla because we have additional modifications on top of it (and in many cases we had to drop changes from Bugzilla update to Bugzilla update) and don't have the resources to maintain a bleeding edge installation without going completely vanilla, which unfortunately is not really possible.
Additionally, Bugzilla is really not integrated with the code repositories — and that won't likely change at all — or with the additional tools and services that we have in place for documentation, translation, and design.
Finally, we found that the user experience for newcomers is still kind of a major roadblock; creating patches, attaching them, reviewing them, and applying them is not really obvious any more, in a world where pull requests on GitHub are the dominant form of contribution workflow.
Bugzilla is an incredible piece of software, and it served us well enough in the past; our requirements changed, though, so it's time to look at something different.
GitHub?
Posted May 16, 2017 15:37 UTC (Tue) by NightMonkey (subscriber, #23051) [Link]
No, I don't work for GitHub. ;)
P.S. I also really like https://www.codereviewhub.com/ . I implemented it for one of my dev teams (who all came from Google HQ) and they really liked it.
GitHub?
Posted May 16, 2017 15:45 UTC (Tue) by pizza (subscriber, #46) [Link]
GitHub?
Posted May 16, 2017 17:17 UTC (Tue) by jhoblitt (subscriber, #77733) [Link]
I think the reason many "open source" projects end up using Jira is because it is relatively straight forward to setup custom workflows (which survive upgrades). I don't know of any alternative, open source or commercial, that allows for that level of customization without brittle source modifications (I believe fog bugs has supposedly improved in this area?). Don't get me wrong, I have a long list of complaints about Jira, but it seems to be the least-worst option.
GitHub?
Posted May 16, 2017 15:52 UTC (Tue) by ebassi (subscriber, #54855) [Link]
We have a full mirror on GitHub already.
To be fair: issue tracking on GitHub is pretty dire, and it's very much repository-oriented; you cannot move issues between projects under the same organisation, for instance. Virtually any complex project spanning multiple repositories that I know of — including commercial ones, though the enterprise version — hosted on GitHub end up moving away from GitHub issues to their own self-hosted issue and project management tracker.
Additionally, and this is my personal opinion, I think it's not great form for a free software project the size of GNOME to switch to a closed platform like GitHub.
GitHub?
Posted May 16, 2017 18:09 UTC (Tue) by SEJeff (subscriber, #51588) [Link]
https://github.com/blog/2272-introducing-projects-for-org...
https://github.com/blog/2256-a-whole-new-github-universe-...
Projects most definitely support multiple repos and their kanban board support isn't too bad honestly.
I do agree that something that goes out of the way to be libre (GNOME) shouldn't be primarily hosted on non-libre software (github) while my personal opinion is
GitHub?
Posted May 16, 2017 18:36 UTC (Tue) by ebassi (subscriber, #54855) [Link]
Example: if I, a user, end up filing a bug against application A, and the maintainer, after triage, decides that it's really an issue of a dependency inside GNOME, even if application A and the dependency are part of the same project, the issue is still assigned to application A; creating a project just means that you can see all the issues that are part of the project.
Of course, the way it's meant to be used is to have multiple projects inside the same organisation — say: SDK, applications, infrastructure, etc. This still does not allow me to move an issue from application A, inside the "applications" project, to the dependency inside the "SDK" project.
Issues still require me to open a new issue inside the dependency's repository (either directly or by turning a note into an issue), and then have a commit/merge message that looks like:
Fixes: organization/application-a#1234
Fixes: organization/toolkit#2345
With the chance of forgetting either issue, and then having to close issues left "dangling".
GitHub?
Posted May 16, 2017 15:56 UTC (Tue) by ebassi (subscriber, #54855) [Link]
Missed this:
> that's not such a onerous burden since you can just pick up your repo and go elsewhere
I think you're overlooking what comes along with the code — which is what makes any move onerous.
The whole point of this migration is tying up the bug tracker and other services to the Git repositories; if we move away from GitHub we'd have to move away all the issues filed, all the accounts, and disentangle the cross-references.
GitHub?
Posted May 16, 2017 16:06 UTC (Tue) by NightMonkey (subscriber, #23051) [Link]
GitHub?
Posted May 16, 2017 17:33 UTC (Tue) by andreasn1 (subscriber, #88420) [Link]
I'm working on a project that's on github, and hopefully we'll never be forced to move away (due to them closing shop, or whatever the future holds), but if that was the case, is it also possible to migrate all the issues in the issue tracker and the pages in the wiki?
GitHub?
Posted May 16, 2017 17:37 UTC (Tue) by mathstuf (subscriber, #69389) [Link]
GitHub?
Posted May 16, 2017 17:48 UTC (Tue) by mathstuf (subscriber, #69389) [Link]
Other benefits of Gitlab that I've liked that Github doesn't have (or am unaware of):
- ability to move issues between repositories (given enough permissions on both repos);
- "discussions" on MRs where users can say "yes, this comment has been addressed" keeping discussions concise;
- diffs between MR pushes are readily available (not just via a notification or email link);
- terminology: "merge request" is better than "pull request" IMO since I don't care if you pull my code; I'd like it merged ;) );
- self-hosting so that you can have admin access if that's necessary;
- add "TODO" items for issues and MRs; and
- TODO/notifications are not cleared just by visiting the target page (adding a comment clears it).
Things I'd like Gitlab to implement/enable:
- emails for MR updates;
- emails for your own actions;
- MR reviews are Enterprise-only (I believe there is push to have it in CE as well);
- non-Gitlab-CI testing is a second-class citizen;
- forks between all repos in a "fork network" (I have a *really old* MR that does this, but it got stale due to a lack of time); and
- hook JSON objects are unstable and undocumented.
I can find issues/MR links for those interested in this list.
[1]They had a shared numbering namespace before.
GitHub?
Posted May 17, 2017 3:06 UTC (Wed) by raven667 (subscriber, #5198) [Link]
I have been using the gitlab runner for very basic CI, using tito to build RPMs/createrepo on commit, but it looks like you could integrate with anything if you can drive it with scripts run from the gitlab runner account. Do you consider this an unusually messy way to do integration, instead expecting plugins for gitlab itself to drive the APIs of other CI tools? I'm interested in this area and just want to be explicit in my understanding of your critique.
GitHub?
Posted May 17, 2017 12:37 UTC (Wed) by mathstuf (subscriber, #69389) [Link]
On the Gitlab side, if you're using a fork-based workflow (as we are), you need Developer access to a repo to set commit statuses, so our main bot (which runs with admin privileges for other Gitlab-specific reasons), adds our buildbot account to all new repos. Neither bot with the tokens run arbitrary code from the projects, so leaking via a malicious MR isn't trivial at least. It also means that if a fork turns off the Pipelines feature on their repo, viewing the statuses is basically broken. There are existing issues for these problems as well.
GitHub?
Posted May 17, 2017 16:44 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]
GitHub?
Posted May 17, 2017 17:51 UTC (Wed) by mathstuf (subscriber, #69389) [Link]
And one project supports platforms that will never be in the cloud (VS 2008, macOS 10.7 (or so?), HP-UX, AIX, Solaris, etc.), so we're still back to some kind of local test infrastructure management solution.
GitHub?
Posted May 17, 2017 18:50 UTC (Wed) by excors (subscriber, #95769) [Link]
("Cheaper" is relative of course, it looks like EC2's cheapest modern one (with half of a GRID K520) is around $3K/year reserved, and the ones with more compute power cost more, so probably not worthwhile if you could get away with a cheap consumer GPU and don't need any of the other cloud features.)
GitHub?
Posted May 17, 2017 19:18 UTC (Wed) by mathstuf (subscriber, #69389) [Link]
GitHub?
Posted May 17, 2017 20:00 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]
BTW, one of our clients uses pre-built containers to run stuff on expensive instances (with 1Tb of RAM). The build is handled on cheap instance types and only the final containers are run on the expensive instances that are spun down once the calculation is over.
You can also sometimes get GPU instances on EC2 Spot Instances for very cheap.
GitHub?
Posted May 17, 2017 10:26 UTC (Wed) by flussence (subscriber, #85566) [Link]
GitHub?
Posted May 17, 2017 12:33 UTC (Wed) by gracinet (subscriber, #89400) [Link]
It can be a simplification not to rely on NAT for deployments on pure IPv6 hosts / containers, especially numerous ephemeral ones. Granted, I'm not sure that would be the most meaningful feature for GNOME
GitHub?
Posted May 17, 2017 10:53 UTC (Wed) by aggelos (subscriber, #41752) [Link]
While yes, you'd be 'hosting' code and trackers on a private company's infrastructure, that's not such a onerous burden since you can just pick up your repo and go elsewhere.
To the degree that you're using github-specific features, the pain of migrating away from it increases (i.e. you are being locked in). Conversely, if you're not making full use of its features, there's little gain from using github as opposed to any other solution.
So I don't think the "it's git, you can always move your repo away" works the way you suggest.
Plus, migrating is enough of an inconvenience when you're changing domains, let alone changing people's workflows. This applies to any infrastructure setup and a fortiori for a hosted solution where the provider has an incentive and track record of focusing on "value added" features. The gitlab people are adding features as fast as they can too, which is why their license choice (for the community edition) acts as a differentiator.
A proposal to move GNOME to GitLab
Posted May 16, 2017 17:01 UTC (Tue) by jhoblitt (subscriber, #77733) [Link]
A proposal to move GNOME to GitLab
Posted May 16, 2017 17:35 UTC (Tue) by mathstuf (subscriber, #69389) [Link]
A proposal to move GNOME to GitLab
Posted May 18, 2017 17:36 UTC (Thu) by catalinuxboie (guest, #112452) [Link]
Trivial in GitHub?! No, it is not trivial: create an account (+ read and accept the license), fork, clone, change+commit, push, do a merge request. 6 steps.
Trivial is: clone, change+commit, push (automatically converted to a merge request). 3 steps.
https://rocketgit.com/op/features/anonpush
A proposal to move GNOME to GitLab
Posted May 19, 2017 3:28 UTC (Fri) by zlynx (subscriber, #2285) [Link]
And the first two steps in your list are already done by almost everyone. I don't think I personally know any programmers without Github accounts.
A proposal to move GNOME to GitLab
Posted May 19, 2017 10:47 UTC (Fri) by mathstuf (subscriber, #69389) [Link]
A proposal to move GNOME to GitLab
Posted May 19, 2017 17:56 UTC (Fri) by catalinuxboie (guest, #112452) [Link]
What about Tuleap libre tool?
Posted May 18, 2017 13:22 UTC (Thu) by mmanon (guest, #116011) [Link]
You can also check out comparisons:
- Tuleap versus GitLab : https://www.tuleap.org/tuleap-versus-gitlab-battle-will-n...
- Tuleap versus Jira : https://www.tuleap.org/tuleap-versus-jira-software
PS: I'm a member of the Tuleap community:-)
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds