Dear QEMU community, QEMU currently has a static website, wiki, git repo hosting, and special-purpose cronjobs/containers running in VMs. There is currently no system administrator looking after our infrastructure so the most urgent tasks fall onto me, the remainder are ignored/postponed. The current situation exposes qemu.org to the risk of downtime and security issues.
Another limitation is that each piece of infrastructure is managed separately and one-time contributors cannot easily propose changes because they do not have access. It would be much better to use our existing code review process so that anyone can make changes to infrastructure by sending a patch. GitLab's Continuous Integration (CI) system provides a powerful way to perform actions defined in yaml files in qemu.git. This includes running scripts, builds, publishing build artifacts, etc. We have already begun using it for automated builds and tests: https://gitlab.com/qemu-project/qemu/-/blob/master/.gitlab-ci.yml GitLab also offers git repo hosting, wikis, issue tracking, and other features. It is possible to log in using GitHub, Google, or Twitter single sign-on if you do not want to create another account. As more open source projects use GitLab it becomes easier for one-time contributors who will already be familiar with the tools from other projects. Here is a full list of GitLab's features: https://about.gitlab.com/features/ GitLab offers the gold/ultimate tier for free to open source projects: https://about.gitlab.com/solutions/open-source/ GitLab itself is open source and can be self-hosted if we decide to leave in the future. With this in mind I propose moving qemu.org infrastructure to GitLab incrementally. This needs to be done carefully to avoid disruption and only where GitLab meets the requirements. The QEMU project will continue to have access to cloud hosting for running custom infrastructure or adding runners to GitLab CI to improve CI performance. The following infrastructure components can be considered for GitLab migration: 1. qemu-web.git static site generation. GitLab CI/CD can build the static website on each qemu-web.git commit and publish the HTML artifacts. 2. wiki.qemu.org is a MediaWiki instance. Account creation is a hurdle to one-time or new contributors. It is unclear whether GitLab's wiki is expressive enough for a lossless conversion of the existing QEMU wiki. Any volunteers interested in evaluating the wiki migration would be appreciated. 3. Git repo hosting is a core feature of GitLab and we already have a qemu.git mirror. Hosting the repos on GitLab reduces the need for qemu.org ssh access. 4. The QEMU release process can be moved to CI/CD so that publishing stable releases and release candidates is less dependent on one committer's machine or scripts. 5. Issue tracking. Launchpad more or less works, but the login always bothers me. If we move git repo hosting then it makes sense to do issue tracking on GitLab too. There is a snowball effect where the experience is improved the more GitLab features we use, so I hope that most of these migrations will be possible. Next steps: * If you have an interest in one or more of these infrastructure components, please join the discussion. * If there are no volunteers for an infrastructure component I'll slowly work my way through evaluating GitLab and propose migrations Stefan