News: 1612962909

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

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

(2021/02/10)


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.

[1]

The project [2]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.

[3]

Gordon explained the move yesterday in a [4]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 [5]READ MORE

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 [6]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.

[7]

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. ®

Get our [8]Tech Resources



[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YCQRIiJben3CLsDwU8tXOgAAANY&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[2] http://forums.libsdl.org/viewtopic.php?t=6168

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YCQRIiJben3CLsDwU8tXOgAAANY&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[4] https://discourse.libsdl.org/t/sdl-moving-to-github/28700/5

[5] https://www.theregister.com/2020/12/17/github_bans_passwords/

[6] https://www.theregister.com/2021/01/27/gitlab_removes_starter_tier/

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YCQRIiJben3CLsDwU8tXOgAAANY&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[8] https://whitepapers.theregister.com/

Tom 38

github issues can be converted and stored in git using [1]git-bug using two-way bridges, which is pretty sweet (Jira and Gitlab issues too :)

[1] https://github.com/MichaelMure/git-bug

ThomH

In the industry that embraced x86 clearly calamitous design choices are no obstacle to market dominance, and being dominant usually means being the best tool for the job. SDL's move is the right thing to do. If anything, the hand-wringing feels a bit overplayed.

hand wringing

yetanotheraoc

It probably followed a logical path from shorter internal email, to longer blog post, to current El Reg interview piece, and playing soon as another internal email.

karlkarl

Mirror to GitHub, GitLab, BitBucket and run your own bug tracker. This seems to work well for us. It also means we can get more control over the public and private bug tracking.

Will Godfrey

The project I work on started on sourceforge, then mirrored to github when sourceforge had that major wobbly. I still like various aspects of sourceforge, and find it much nicer for historical searches and bug report management.

nijam

I'd like to know, purely out of personal interest, what the "calamitous design decisions" were.

Unless it was simply a way of saying "it's not what we're used to" without actually saying it.

Have a nice diurnal anomaly.