Bonjour,
I’m considering switching the forgefriends codebase from being a long standing fork of Gitea to being a long standing fork of Codeberg instead.
There are pros and cons:
Pros
- The codebase is field tested with a large user base in production
- Codeberg is developed on Codeberg and does not require using proprietary software
- Codeberg governance is democratic and documented
- Codeberg takes an active part in the ongoing forge federation effort
Cons
- Pull requests for features will have to be submitted to Gitea first and it will take longer for them to be reflected in the Codeberg codebase
- There are Codeberg specific commits that needs to be discarded for the codebase to be used for self-hosting
Maintaining a long standing fork of a codebase can be made very difficult when the upstream project is subject to governance and technical instability. No project is ever perfect in this regard but I think Codeberg offers significantly better guarantees in both areas than Gitea. For instance, there currently is an unresolved conflict of interest in the Gitea governance. The Codeberg governance is more democratic, more transparent and less likely to be subject to such problems. Other examples, on the technical side of things, are the regressions that required multiple point releases when 1.16 was published as well as the accidental publication of release candidates in lieu of stable releases for both 1.16 and 1.17. The Codeberg codebase is curated differently and is less likely to be subject to such problems.
Another important aspect is the ability for forgefriends developers to upstream bug fixes in a timely manner. In that respect it is difficult to foresee how things would go with Codeberg. Codeberg maintainers won’t be keen on merging a bug fix that has no impact at all on Codeberg. But the contribution loop will be a lot smoother for other bugs because it won’t involve working on GitHub. I’m the only one in this case currently but imposing that burden on forgefriends contributors is not consistent with the goals of the project. Features and complicated bugs that are not of interest to Codeberg will still have to go through the Gitea upstreaming process but it will be a win to have at least some features and bugs fixed as Codeberg contributions.
Overall the effort to make the switch is a matter of:
- Having two upstream (Codeberg primary and Gitea secondary) instead of one
- Reorganizing the long standing fork cheadlist
I don’t suppose it will be much. If it turns out to be a bad choice, reverting will be a matter of going back to how it was before. I don’t see how anything irreversible (or difficult to revert) will happen.
If no significant blocker / burden is discovered in the next few days, I’ll do the necessary legwork to make it happen.
Cheers