KDE migration to GitLab
## Background
[KDE](https://www.kde.org/) is considering a migration to GitLab: members from the [KDE Board of Directors](https://ev.kde.org/corporate/board.php), 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](https://gitlab.com/gitlab-org/gitlab/-/issues/26581) relevant to the migration.
## Discussion
The discussion can be followed in the [notes from our regular calls](https://docs.google.com/document/d/12YnVqEZDDEXSH_wSFCoXUSj708nweXyi_QPybI5LnQk/edit#).
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`](https://gitlab.com/gitlab-org/gitlab-ce) with the [Core subscription](https://about.gitlab.com/pricing/#self-managed)
### 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](https://docs.gitlab.com/ee/administration/auth/ldap.html) and [Omniauth](https://docs.gitlab.com/ee/integration/omniauth.html) | CE |
| Gitolite | Repository management | Gitaly | CE |
| Gitolite | Notification (E-Mail) | [E-mail notification](https://docs.gitlab.com/ee/workflow/notifications.html) | CE |
| Gitolite | Notification (IRC). Important. | TBD | TBC |
| Gitolite | Set ticket status | [Issues](https://docs.gitlab.com/ee/user/project/issues/closing_issues.html)_See_ [_Closing issues_](https://docs.gitlab.com/ee/user/project/issues/closing_issues.html) _and_ [_quick actions_](https://docs.gitlab.com/ee/user/project/issues/closing_issues.html) | CE |
| Phabricator | Code review | [Discussions](https://docs.gitlab.com/ee/user/discussions/) | CE |
| Phabricator | Asset reviews (additional tool in [Phabricator - Pholio](https://phacility.com/phabricator/pholio/)) | [Image discussions](https://docs.gitlab.com/ee/user/discussions/index.html#image-discussions)_Also see_ [_issue #53587_](https://gitlab.com/gitlab-org/gitlab-ce/issues/53587) | CE |
| Phabricator | Task-tracking | [Time tracking](https://about.gitlab.com/solutions/time-tracking/) | CE |
| Phabricator | Kanban boards | [Issue boards](https://docs.gitlab.com/ee/user/project/issue_board.html) | CE |
| Bugzilla | Bug reports | [Issues](https://docs.gitlab.com/ee/user/project/issues/) | CE |
| Bugzilla | Automated crash reports (not trivial to move out of Bugzilla) | [Issues](https://docs.gitlab.com/ee/user/project/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 API[_Jenkins plugin_](https://docs.gitlab.com/ee/integration/jenkins.html) _is EE-only_ | CE |
| Jenkins | CD: Linux (Appimage & FlatPak), Windows, MacOS and Android | GitLab CI or API[_Jenkins plugin_](https://docs.gitlab.com/ee/integration/jenkins.html) _is EE-only_ | CE |
## Test instance
https://invent.kde.org/kde/
## 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
- Bhushan Shah (@bshah), Sysadmin, KDE
- Neofytos Kolokotronis (@tetris4), Onboarding Team Lead, KDE
- David Planella (@dplanella), Director of Community Relations, GitLab
- Nuritzi Sanchez (@nuritzi), Sr. Open Source Program Manager, GitLab
issue