In the early 52°North days, we managed our source code on a public open source platform: SourceForge. We started with CVS (classic!), switched to SVN (wow, I can delete folders!) and after a while we decided to host all 52°North related source code in our own IT environment. However, keeping an eye on what was going in the VCS world, we felt that this approach was outdated and started to look into Git and GitHub. This initiative was mainly driven by 52°North staff developers’ curiosity and the promise of a better development work flow. We found GitHub provided very easy collaboration, communication and outreach dedicated to source code and very much in line with the 52°North philosophy. After a few test runs, we started to migrate the first of our active software projects to GitHub.
GitHub provides contemporary development tools, including
- issue tracking (with powerful commenting features)
- project-specific wiki pages
- linking to lines in source files (look here and here)
- branch visualization
A very important issue for 52°North is that using git makes the tracking of who contributed what piece of code a lot easier. The commits are bound to the user who created them even if someone else integrates them into the code base of a project in the 52°North GitHub organization. This is a huge step towards better contribution tracking and makes the maintenance of managed code (i.e. code developed under the 52°North CLA) easier and therefore improves the code quality, stability and maintainability for many years to come.
Since our GitHub launch, we have established many new projects, as well as transferred existing SVN repositories. This is the (constantly growing) list of migrated projects:
- Common XMLBeans Bindings
- Ilwis (partial)
Moving its code to a hosted service does not mean that 52°North offers its communities fewer services. On the contrary, the “old” SVN is still up and running to host non-public code developments and all projects moving to GitHub will remain in their old repositories (albeit read-only) for the foreseeable future. In addition, 52°North staff offers all community members assistance in migrating projects to GitHub and has started a knowledge base in the wiki: https://wiki.52north.org/bin/view/Documentation/GitFAQ.
Our experience so far is very positive and we experiment with different development models (fork & pull, push, …). We encourage all communities to start all new projects on GitHub directly.