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