We have set up an instance of GitLab here to provide hosting to our member projects. We are in the process of migrating most freedesktop.org projects and services to run on top of GitLab.
Below is a rough guide to the migration. GitLab also provides its own comprehensive help, which is available from the drop-down menu at the top of every page.
What is being provided on GitLab?
We are offering the full slate of GitLab services to fd.o projects: code hosting and review, issue tracking, wikis, GitLab Pages, and CI with a container registry available. This is all fully supported, with full backups being taken.
Am I being forced to migrate? What do I do now?
For now, you do not need to do anything. Eventually, we want to migrate all projects to using GitLab for code hosting, etc, and are looking at sunsetting many other services.
We do not have a firm timeline for a full migration, and will be taking each project and service individually. We will make every reasonable effort to keep the services you currently rely on available for as long as possible, and will try to keep the transition as smooth as possible.
If you would like to migrate, please file an issue on the project so we can walk through it with you.
How do I create/access my user account?
If you already have a UNIX shell account on freedesktop.org, also used for Git write access, an account has been created for you on this GitLab instance. Simply enter the email address you used when creating your account and request a password reset from the sign-in page. This should result in a password-reset mail arriving in your inbox.
If this doesn't work, it's pretty likely that your email has changed. Please ping an admin and we'll happily change it for you, though we may ask for out-of-band identity verification.
If you do not have an SSH account, but only have an account on Bugzilla, Mailman, Phabricator, or some other web-based service, this account has not been migrated, and you will have to create a new account on this instance.
We strongly recommend setting up two-factor authentication.
You can also configure external identity providers to authenticate you: at time of writing, these are GitHub, GitLab, Google, and Twitter. To add an external provider to your account, go to your user settings by navigating to Settings in the top right-hand menu, then selecting the Account tab.
How do I access my project? How can I migrate?
When you sign in with your SSH account, you will have access to the groups you were in on the old system. This group is private to its members only, and does not yet contain any of the repositories, website, wiki data, etc.
Each project will have a different migration plan. If you are interested in migrating your project, please file an issue on this project using the migration template. We can currently migrate Git repositories themselves as well as Bugzilla bugs, if you file a request.
How do I set up CI for my project?
(If you have large VMs which can serve as runners, please also contact us!)
How do I set up GitLab Pages for my project?
We currently allow custom domains only for GitLab Pages, including *.freedesktop.org domains. You can set up Pages as per the documentation (which includes setting up CI to generate the static pages); if you would like a *.freedesktop.org domain for your project, please ping an admin and we can make this happen for you.
Why migrate to GitLab?
Simply put, our old suite of services wasn't great. The integration between our git hosting (custom SSH), viewing (cgit), code review (mailing lists & patchwork), CI (Jenkins), and issue tracking (Bugzilla) was poor. Those tools also didn't offer support for code review in the style that many people are used to.
Our user authentication system, forked from Debian's in 2004, required manual admin intervention to add SSH keys and manage groups, sometimes resulting in totally arbitrary delays. There is no reason admins should have to be dealing with group membership, but the system we chose (probably still the best choice at the time) constrained us.
Over the years, we saw a fair few projects leave freedesktop.org for GitHub and other services where the offering was much better.
As well as the duct-tape services, our physical infrastructure was approaching life expiry, and was starting to wheeze a bit - particularly in disks. GitLab can easily be run in the cloud: doing so and migrating gives us some room to deal with our physical machines and sensibly replace them. This is not something which was easily doable before, as a great deal of admin time was going to just treading water with our existing services.
We did consider other services; most of the rationale for why we ended up with GitLab is available in GNOME's evaluation when they went through a similar process. We walked through with that with them, providing input and listening to what others had to say, and ultimately came to the same (but independent) conclusion that GitLab was the best service to offer.
Our GitLab instance is hosted on the Google Cloud Platform, fully controlled by the freedesktop.org administrators, and is running the fully open-source GitLab Community Edition stack. Various projects in this group contain our Helm/Kubernetes configuration for the running instance.
Can I speak to your supervisor?
You can file issues on the freedesktop/freedesktop project, email the public list, or find us on Freenode #freedesktop. If you would like to speak to someone privately, @daniels is largely responsible for this, and has contact details listed on his user page.
How can I help?
Documentation is great. Just hanging around and helping triage and respond to issues is great. Helping on #freedesktop is great. Making suggestions is great. Pinging an admin and asking 'I see this particular issue needs some attention, how can I help with that?' is also great. If there's anything stopping you from helping out, please feel free to ask us and we'll see how we can fix it.