KDE migration to GitLab
Background
KDE is considering a migration to GitLab: members from the KDE Board of Directors, the KDE Sysadmin team and the KDE Onboarding Initiative have been following the GNOME migration as a model and have been in touch with the GNOME Foundation and GitLab. GitLab will be initially assisting them with a Proof of Concept to facilitate making an assessment and a decision that will ultimately be consulted with the KDE community.
The KDE Community is a free software community dedicated to creating an open and user-friendly computing experience, offering an advanced graphical desktop, a wide variety of applications for communication, work, education and entertainment and a platform to easily build new applications upon. We have a strong focus on finding innovative solutions to old and new problems, creating a vibrant atmosphere open for experimentation.
Goals
The main goals for a successful migration would be:
- More accessible infrastructure for contributors
- Code review integration with git
- Streamlined infrastructure and tooling
- Good relationship and open communication channel with upstream (GitLab in this case)
Migration issues tracker
KDE keeps a list of issues with priorities relevant to the migration at https://gitlab.com/gitlab-org/gitlab-ce/issues/57338
Discussion
We are at the initial stages of discussion, which can be followed on the notes from our regular calls.
KDE is currently looking at a self-hosted solution rather than hosting at gitlab.com. Due to their policy of only hosting Free Software on their servers the present consideration is to use gitlab-ce
with the Core subscription
Current KDE tooling and infrastructure
- Gitolite
- Authentication and Authorization (some repositories are push restricted)
- Repository management
- Custom hooks providing notifications via email and IRC, as well as updating statuses of tasks and bugs on Phabricator and Bugzilla
- Phabricator
- Code and asset reviews
- Task tracking
- Kanban boards
- Wikis
- Bugzilla
- Bug reports
- Automated crash reports
- LDAP-based SSI + management Web UI
- Jenkins
- CI: Linux, FreeBSD, Windows, Android
- CD: Linux (Appimage & Flatpak), Windows, MacOS and Android
GitLab replacements
Tool | Feature | GitLab feature | GitLab edition |
---|---|---|---|
Gitolite | Authentication | LDAP and Omniauth | CE |
Gitolite | Repository management | Gitaly | CE |
Gitolite | Notification (E-Mail) | E-mail notification | CE |
Gitolite | Notification (IRC). Important. | TBD | TBC |
Gitolite | Set ticket status | IssuesSee Closing issues and quick actions | CE |
Phabricator | Code review | Discussions | CE |
Phabricator | Asset reviews (additional tool in Phabricator - Pholio) | Image discussionsAlso see issue #53587 | CE |
Phabricator | Task-tracking | Time tracking | CE |
Phabricator | Kanban boards | Issue boards | CE |
Bugzilla | Bug reports | Issues | CE |
Bugzilla | Automated crash reports (not trivial to move out of Bugzilla) | Issues or an external tool | CE |
KDE identity | LDAP-based SSI (SSH key management) | SSH management on GitLab or syncing keys to GitLab | CE |
KDE identity | Web UI (keep for more user-facing resources, e.g. Forum) | N/A? | N/A? |
Jenkins | CI: Linux, FreeBSD, Windows, Android | GitLab CI or APIJenkins plugin is EE-only | CE |
Jenkins | CD: Linux (Appimage & FlatPak), Windows, MacOS and Android | GitLab CI or APIJenkins plugin is EE-only | CE |
Test instance
Collaborators
- Eike Hein (@hein), Treasurer and Vice President, Board of Directors, KDE
- Aleix Pol (@apol), Vice President, Board of Directors, KDE
- Ben Cooksley (@bcooksley), Lead Sysadmin, KDE
- Neofytos Kolokotronis (@tetris4), Onboarding Team Lead, KDE
- David Planella (@dplanella), Director of Community Relations, GitLab