This article is more than 1 year old

Popular open-source library SDL moving development to GitHub despite 'calamitous design choices' in git

'I don't have the energy to be a server admin for something that's held together with scotch tape and prayers'

The Simple DirectMedia Library (SDL) project is moving development to GitHub today despite what a core developer calls "calamitous design choices" in git, for the sake of familiarity and wide tool support.

SDL is a cross-platform and open-source multimedia library mainly written in C and widely used in game development. Previously it used Mercurial for source code version control and Mozilla's Bugzilla for bug tracking, hosted on their own Linux Server co-located at Digital Ocean, according to a core developer Ryan Gordon.

The project switched from Subversion to Mercurial in April 2010, and before Subversion was on CVS (Concurrent Versions System), so in a sense it has followed a typical path as popular systems have declined when something better came along.

Is git and GitHub better, though? SDL creator Sam Lantinga (currently a senior software engineer at Valve) posted about the move several days ago, causing some surprise in the SDL community as the team had always insisted Mercurial was better than git.

Gordon explained the move yesterday in a lengthy post. "I am not a fan of git; I still believe Mercurial is a better piece of software, and that git has made some calamitous design choices… but for our personal needs we can more or less use a subset of git the same way we use Mercurial now, while letting everyone else use git however they personally like," he said.


Passwords begone: GitHub will ban them next year for authenticating Git operations


The rationale for the migration is that git and GitHub have won. "Everything moved to git generally, and GitHub specifically," said Gordon. "Lots of tools and workflows expect you to be using git (Visual Studio and Xcode have built-in git support, etc) and Mercurial is becoming an alien thing to lots of people."

Mercurial and Bugzilla have not been able to keep up, said Gordon. "Bugzilla doesn't really look much different than it did 20 years ago (and, as we discovered, the Bugzilla developers didn't bother updating their code when newer MySQL releases broke it)... it's not just Bugzilla. It's the wiki, the mailing lists, the quaint little Mercurial web interface. The little open source thing that we rely on but no one is working on and probably has security holes in it. It's all janky, and it causes developer friction.

"In moving it to GitHub, we're finding that a lot of things are just nicer because a large paid staff of engineers is working on it every day. And I grew up during the heyday of the Free Software Foundation, so I know this is a trap, but I'm tired and don't have the energy to be a server admin for something that's held together with scotch tape and prayers when I'm really supposed to be writing OpenGL code."

Gordon does have some anxiety about "moving to servers we don't control" but observed that Microsoft is unlikely to go bankrupt soon. Since git is a distributed system, it is easy to migrate a cloned repository elsewhere if necessary. It is more difficult to migrate from other GitHub features such as issue tracking, projects, or continuous integration via GitHub Actions, a means of automating tests, builds, and deployment. The same is true of the migration to GitHub: code is relatively easy, but Gordon noted that moving the existing SDL wiki, based on the open-source MoinMoin project, will be "a mess for a bit."

GitHub does not own this market: GitLab also has a significant presence, though it too is git-based. GitLab is independent so has to get its business model right, which may explain why it has recently removed its starter tier; whereas for Microsoft, GitHub is a strategic asset that ties in with its cloud platform. Another option is Atlassian Bitbucket, again git-based.

While SDL's move fits with concerns that Microsoft has too much dominance in open-source development (GitHub also owns npm, the widely used JavaScript repository), there is another aspect worth noting. CVS, Subversion, Mercurial, git... history suggests that in 10 years or so there will be another migration of equal significance. ®

More about


Send us news

Other stories you might like