On the topic of migrating the main 'CRM' project to Gitlab vs Github:
* Github will not allow us to import the comment history while keeping the author intact. i.e. all comments will be imported as the same user.
* Having one big monolithic project on Github will make it very hard to triage issues. Only people with write permissions to the repo can add labels to issues.
* One of the main advantages of Github is that "everyone has an account", so it makes small contributions easier.
* Using Github would mean that most development-related activity would be in the same space. However, it builds a strong barrier between what is "CiviCRM core" (and core extensions) and other projects (which would be scattered in other Github accounts). It also does not allow the structure to grow organically, since only a handful of people can administer the Github account.
* Compared to the current JIRA workflow, Gitlab does not simplify the process by much, but does not complicate it either. Until now, many considered that using JIRA was an acceptable trade-off because it provided better issue management.
* Having one big monolithic project on Github will make it very hard to triage issues. Only people with write permissions to the repo can add labels to issues. We would have to develop more bot features to simplify triage.
* One proposed compromise would be to allow opening pull-requests on Github without an issue. This way we keep the barrier to entry very low for drive-by contributors. However, we would be very strict about the PR description and commit message, and we would still encourage people to open issues before spending time writing patches.
* Github does not allow importing the comment history while keeping the author intact. i.e. all comments will be imported as the same user.
* By controlling registration (on civicrm.org), we can keep Community Profiles and better engage with the community/developers.
* One of the main advantages of Github is that "everyone has an account", so it makes small contributions easier. However, currently CiviCRM currently requires going through a few hoops in order to submit a patch. By opting for Gitlab, we are only slightly simplifying the process (and improving the experience because of a better UI/UX). However, we make it easier to then participate in the other working-groups on Gitlab (it's unlikely we would ever move everything on Github).
* Gitlab is Free Software (although Open Core, where its business model is backed by en enterprise version, but they are also very supportive of FOSS projects using Gitlab). JIRA and Github are proprietary. This goes in contraction with CiviCRM's argument that "you own your CRM/data".
* Gitlab could be useful for extensions:
* Vendor-neutral dev spaces (shops could still promote their consulting/support services, like they do on drupal.org, but it would not be in the canonical URL of the git repo).