The next chapter of source code management has started. After SourceForge, GitHub and GitLab, I am now trying out SourceHut. The first chapters were pretty self evident, SourceForge was at the time back then the only viable option, but once GitHub came around, it offered improvements specifically in the handling of Git repos, and the networking effects.
Two downsides with GitHub led me to try GitLab (which I also started to use in my day jobs): GitHub Actions are a bit too complex for my taste, and the flat structure makes it difficult to logically group together related repos. GitLab provides a very powerful CI, and the ability to use groups and projects brings a nice structure to one’s work.
After using GitLab for a while though it does seem to be a better fit for corporate usage than for personal projects. It offers a complete and integrated solution for many development related tasks (issue tracking, CI, security scanning, deployments, …), which makes sense in a corporate setting, but my preference is the one tool for one job approach.
SourceHut is in that respect an interesting take on source code management. It does look less integrated than the other offerings, but that is not neccessarily a weakness, since it is explicitly designed that way, it is also easier to integrate with other systems. Two areas stand out for me: The ability to link resource into projects freely, and the elegant build system which makes it very easy to interatively improve the CI setup.
The downside of having less visibility than e.g. GitHub is easily handled by mirroring repositories to GitHub.