Opinion: GitHub vs GitLab

Free software deserves free tools, not Microsoft-owned GitHub. By Matt Lee

So, Microsoft bought GitHub, and many people are confused or worried. It's not a new phenomenon when any large company buys any smaller company, and people are right to be worried, although I argue that their timing is wrong. Like Microsoft, GitHub has made some useful contributions to free and open-source software, but let's not forget that GitHub's main product is proprietary software. And, it's not just some innocuous web service either; GitHub makes and sells a proprietary software package you can download and run on your own server called GitHub Enterprise (GHE).

Logo

Let's remember how we got here. BitMover made a tool called BitKeeper, a proprietary version control system that allowed free-of-charge licenses to free software projects. In 2002, the Linux kernel switched to using BitKeeper for its version control, although some notable developers made the noble choice to refuse to use the proprietary program. Many others did not, and for a number of years, kernel development was hampered by BitKeeper's restrictive noncommercial licenses.

In 2005, Andrew Tridgell, working at OSDL, developed a client that bypassed this restriction, and as a result, BitMover removed licenses to BitKeeper from all OSDL employees—including Linus Torvalds. Eventually, all non-commercial licenses were stopped, and new licenses included clauses preventing the development of alternative version control systems. As a result of this, two new projects were born: Mercurial and Git. Created in a few short weeks in 2005, Git quickly became the version control system for Linux development. [See Zack Brown's article in this issue for more details on Git's origins.]

Proprietary version control tools aren't common in free software development, but proprietary collaboration websites have been around for some time. One of the earliest collaboration websites still around today is Sourceforge. Sourceforge was created in the late 1990s by VA Software, and the code behind the project was released in 2000.

Quickly this situation changed, and the project was shuttered and then became Sourceforge Enterprise Edition, a proprietary software package. The code that ran Sourceforge was forked into GNU Savannah (later Savane) and GForge, and it's still use today by both the GNU Project and CERN. When I last wrote about this problem, almost exactly ten years ago, Canonical's ambitious Launchpad service still was proprietary, something later remedied in 2009. Gitorious was created in 2010 and was for a number of years the Git hosting platform for the discerning free software developer, as the code for Gitorious was fully public and licensed under favorable terms for the new wave of AGPL-licensed projects that followed the FSF's Franklin Street Statement. Gitorious, also, is sadly no longer with us.

However, all is not lost, and for the last few years, an alternative has been under very active development: GitLab. GitLab is the name of a company—GitLab, Inc.—and the name of two projects: GitLab CE and GitLab EE. GitLab EE is an open core project, comprised of the free software CE and various additional components that are proprietary. GitLab, Inc., is very upfront about this fact. GitLab CE, however, is not your traditional "community edition" product where the vast majority of features are locked away in an enterprise version. A number of high-profile free software projects, such as Debian, GNOME and GNU, all have GitLab CE servers of their own, and in many cases, GitLab CE is being used to empower the projects that previously used Savannah and GForge, giving them a new lease on life and a new visibility that older software forges lacked.

Choosing proprietary tools and services for your free software project ultimately sends a message to downstream developers and users of your project that freedom of all users—developers included—is not a priority. The free software movement started in 1983 by creating the initial tools—an editor, a compiler, a debugger and a linker—for free software developers to create a free operating system. Ultimately, all free software projects are inherently political by their very nature. As creators of software licensed in ways that directly promote user freedom and a community of free sharing, our efforts would be better served by tools that support those same ideals.

So if you have the means, and the need, please run your own copy of GitLab CE for your project. If you can, open it up to the wider Free Software community and allow all free software projects to use infrastructure that respects the freedom of all users. GNU, Debian and GNOME have done it. Who's next?

Oh, and let's get GitLab CE bug #4013 figured out soon, please.

About the Author

Matt Lee is a veteran free software developer who spends his time between advocating for free software and writing and directing comedy for television and the web. He lives in Boston and can be found tweeting a great deal of nonsense at @mattl.