Closed perlun closed 3 weeks ago
If/when we do this:
One of these would make most sense:
(inspired by https://wiki.p2pfoundation.net/List_of_Community-Hosted_GitLab_Instances)
gitlab.domain.tld
seems to be the more prevalent option. Will go with that, i.e. gitlab.perlang.org
in our case.gitlab.perlang.org
gitlab.com
.perlang
group[ ] Import the project from GitHub to perlang/perlang
#xxx
in GitHub are inherently ambiguous in a GitLab context since it can be either !xxx
or #xxx
depending on whether the referred-to object is an MR or an issue. We would have to either go through all descriptions and comments and edit these manually (quite an effort, since there are a few thousand of them I think), or figure out an automated way for this. Perhaps it could be done using a GitLab Rails console snippet? I've used the GitLab Rails console previously and it feels like a reasonable fit for this.A "safer" approach would be to just use the Rails console and query all #xxx
references that don't have a matching issue, and just list them. Editing them would be a manual process.
There we go, the import is now done so this will be the final comment written here. Let's continue in the new URL: https://gitlab.perlang.org/perlang/perlang/-/issues/423
(The work is not complete, but closing this so that we can keep all issues here on GitHub closed from now on)
Moved to GitLab
Please continue to the new version of this issue here: https://gitlab.perlang.org/perlang/perlang/-/issues/423. The GitHub page you are currently reading will not contain the latest information on this issue.
At some point, I believe we should move the Perlang hosting to a self-hosted GitLab instance, for a few different reasons:
Better autonomy. As the Debian project describes it:
"Autonomy" in the previous sentence links to this page: https://web.archive.org/web/20081002034726/http://autonomo.us/2008/07/franklin-street-statement/
Using GitLab means we, as a project, will have full control over the repository. GitHub outage, because of problems with their hosting? Forget it. Of course, we can instead have "our own" outages, but still, this give us more control over a critical part of our own infrastructure.
More freedom. We are currently relying upon GitHub (which is a proprietary, SaaS-hosted software). The free (as in freedom) version of GitLab, namely GitLab Community Edition is licensed under the MIT Expat license, a license which qualifies as Free Software by the FSF and Open Source by the OSI.
Be able to use GitLab CI. GitHub Actions work quite well, but it does have certain disadvantages. One of the things I particularly dislike is the "Status checks that are required" which is configured via "branch protection rules" under https://github.com/perlang-org/perlang/settings/branches. Here, the required status checks are configured. There's just one problem with this: it makes the CI settings configured in the web interface be tightly coupled to the action names defined under
.github/workflows
. You rename one of these, and the CI settings break. I find this rather fragile and I think the GitLab CI approach - where much more of this is defined in.gitlab-ci.yml
is much preferable.In general, I think GitLab CI has more features (caveat: I've only used the commercial subscription options for GitLab thus far; the Community Edition is more limited by nature, even though GitLab (the company) does their best by e.g. stating that "[the] majority of new features made by GitLab Inc. will be open source". We should probably set up a "public pilot" for this an try it out (on our own/self-controlled hardware), to ensure that the feature set matches our requirements.
Have control over our own CI log retention times. GitHub only lets us retain logs for 90 days, which is fine for many cases but what about the ones where it isn't? What if we want to view the logs for something that happened 6, 12 or 18 months ago? Relating back to the "autonomy" point above, hosting our own GitLab instance gives us much better control over settings like this.
Why not just host it on
gitlab.com
?This would clearly be an option, but:
Having that said, moving to
gitlab.com
as a first step would mean that we are better prepared for one day hosting it ourselves. We will have a CI configuration which already works out-of-the-box on GitLab CE (unless we use any EE-only features), so in this sense moving togitlab.com
would be a step in the right direction Also, it would be a smaller step than doing a "full" migration to a self-hosted instance.Other options
.gitlab-ci.yml
approach if we go this route.Hosting options
Both of these options means that we will need to: