Migration to independent platform for provision of source code
Lukas2112 opened this issue · comments
A. Problem / Goal
Since the purchase of GitHub by Microsoft in 2018, a dependence on the BigTech corporation can no longer be denied.
On the one hand, I can understand why GitHub was chosen as the platform for making source code available: "Everyone is here".
On the other hand, I see the danger of a vendor-lockin effect and that open source projects become centrally dependent on Microsoft. In my eyes, this is very dangerous for free and open source software and hardware projects.
In the medium and long term, the goal would be to become independent of GitHub and thus of Microsoft. The Gitea-based Codeberg project of Codeberg e. V. in Berlin would be a good choice here.
There are also (legal) problems with compliance with the licence of GitHub functions, such as the co-pilot.
B. Solution
My considered solution to the problem described in A. would be the following:
A user of this open source project creates a user account on https://codeberg.org/
If necessary: This user creates an organisation for the project.
A "personal access token" is created on the GitHub account, which has appropriate rights to the organisation repositories, using the developer options in the settings.
all repositories would be migrated with this access token into the ownership of the organisation created in step two.
Regarding step four, there is an entry in the documentation of Codeberg: https://docs.codeberg.org/advanced/migrating-repos/
C. Alternatives
A possible alternative would be to perform the first three steps as described in B. a possible alternative would be to perform the first three steps as described in B., and modify the fourth step to include a mirror of GitHub. So that all issues and such that would be created in the GitHub repository would be transferred to the Codeberg repository.
D. Responsibilities
I would see the responsibility in the owners of the repository and, if necessary, additional project participants.
E. Other
Basically, a look at the documentation of Codeberg is not unwise: https://docs.codeberg.org/
Should it be necessary to manage repositories in organisations, this is also possible under Codeberg, see: https://docs.codeberg.org/collaborating/create-organization/
Regarding licensing there is a page in the documentation of Codeberg: https://docs.codeberg.org/getting-started/licensing/
Funfact 1: The Pixelfed maintainer has written on Mastodon that he is considering migrating the Pixelfed project away from GitHub, to Codeberg: https://mastodon.social/@dansup/10869007146309141
Funfact 2: Aral had migrated - also on Mastodon - to Codeberg for his GitHub projects as well as those of his Foundation, which he organised together with another person, Small Technology, or is still migrating: https://mastodon.ar.al/@aral/108651118032076133
All in all, good idea, BUT this would mean remaking the CI and loosing the great weblate integration, but it's @adeekshith decision. In general, I can understand why Codeberg is better, but GitHub is just better integrated with a better user-experience and, not to mention, a greater community.
Of course, it wouldn't be an "overnight" move, but would have to be well coordinated beforehand so that things like the CI work to the same extent.
Weblate itself could also be connected.
The effort would be so high in terms of personal resources that I would assume it would take more than one person to set up everything equally at Codeberg over a period of weeks / months.
All in all, I believe that the effort would be worthwhile in principle.
Hi @Lukas2112 👋
Thank you for raising the issue. So much so as I would like to prefer an open platform wherever possible, I will have to agree with @mawoka-myblock for now.
- Our translation systems, CI/CD etc are integrated with Github and migrating to a different system would need significant work. We are lacking resources right now to continue our regular development at full scale so would like to use any resources on improving app features than on things that the end user cares less about.
- I felt Codeberg's terms and conditions are a bit too restrictive for my needs. Gitlab was kind of a drop in replacement but they are also removing all inactive repos and I do not want to live in a fear that they would remove my repositories.
Codeberg's terms and conditions I felt restrictive:
Private repositories are only allowed for things required for FLOSS projects
I host many repositories which are for my personal use. Codeberg does not allow me to host those.
Forks, migrations and testing repos are considered as inactive when they don't contain unique contributions and are inactive for more than a month. They shouldn't be kept for a prolonged amount of time, and thus might be removed after notifying maintainers and providing a 90 days period to ask for preservation.
I do not want to keep committing to a project just to keep them hosted. Most of my projects go without any code commits for a couple months once in a while so this scares me.
So I plan to run a self hosted Gitea instance sometime in the future. Waiting for Gitea federation. First as a mirror and then slowly migrate things one by one. That would help us migrating to Gitea at our own pace 🙂
@adeekshith, I can understand your points very well and I first wanted to draw attention to the problems that GitHub poses, even though I can also understand why GitHub was chosen, so basically.
The effort to implement a federation function in Gitea will be a gamechanger in my opinion and also promote independence of open source software and hardware projects from GitHub or GitLab (gitlab.com ; self-operated and only with FLOSS components would of course also be independent again).