Migration to GitHub is in progress

Please bear with us as we migrate several services to GitHub. If something isn’t working right now, we probably know. I’ll update this topic with updates later.

This is being discussed over here if you want to chime in:

Thanks!

–ryan.

2 Likes

Status update.

Ok, at this point, all the repositories are on GitHub, bugs are migrated (all almost 6000 of them!!!), and most existing URLs on hg.libsdl.org are redirecting to the equivalent on GitHub, like this one:

https://hg.libsdl.org/SDL/rev/2e58bfc28b4

Note that we have split SDL into three repositories: SDL (basically everything from the 2.0.0 release until now, where we will continue our work), SDL-1.2 (the 1.2 branch, back to the beginning of time), and SDL-historical-archive (a complete, unmolested, read-only snapshot of SDL’s mercurial repo as of yesterday). The redirects from hg.libsdl.org know which respository to toss you to on a per-commit basis, so while that above URL goes to SDL, this goes to SDL-1.2…

https://hg.libsdl.org/SDL/rev/453dce726f2488b

…and this to the historical archive…

https://hg.libsdl.org/SDL/rev/3a7e8110201e

Satellite libraries (SDL_mixer, SDL_image, etc) also redirect appropriately. We did not split up or rewrite history for these libraries like we did for SDL itself.

If you talk to hg.libsdl.org with an actual Mercurial client, it still works–for now–without redirects to github, in case someone out there has a crucial workflow that pulls from Mercurial. But the Mercurial server is in read-only mode, and will only receive one more commit in a little bit, which deletes everything and replaces it with a README saying “go to GitHub now.”

Bugzilla.

All bugs are migrated, including closed ones, for a complete historical record. ArchiveTeam is still pulling in a compete copy of Bugzilla for the Internet Archive’s Wayback Machine, and I am leaving Bugzilla up until that completes. After that, bug URLs will redirect to the migrated issue on GitHub, and bugzilla attachment URLs will serve static files from our server (linked in the GitHub bug reports for easy ongoing access).

You can use GitHub’s bug tracker right now, either with old bugs or to add new ones. If you interacted with a bug before, that information is lost, so feel free to turn on notifications for anything you care about. Bugs are split up by projects, so please try to file SDL_mixer bugs on SDL_mixer and not SDL, etc (but we can transfer them if necessary, so don’t panic).

Wiki.

The wiki is a hot mess right now, bear with us as we clean this up, but it’s up and running. We only have an SDL wiki right now, but we might open this up for satellite libraries later. ArchiveTeam is also pulling in a copy of wiki.libsdl.org…when they finish, these URLs will redirect to GitHub.

Still TODO.

There are several pieces coming back online over the next little bit, like the @sdl_commits Twitter account and commit emails and buildbot. We still need to invite people to the GitHub organization (heck, Sam hasn’t even been invited yet, so he wouldn’t get 20,000 bug emails during the migration). If you have commit access to Mercurial and haven’t been invited yet, it’s not personal, and I’ll be sorting that out soon.

The Nintendo Switch and Google Stadia forks need serious effort to migrate, as they are behind SDL’s current release and the git repos aren’t simple clones of Mercurial, so that will take some time. If you are using these, continue to use Mercurial for now, and I’ll get you invited to a private GitHub repo once I manually rebuild these. This won’t happen this week.

Check us out.

You can see all our stuff at the main page:

Please bare with us as we have more work to do on the migration, and then a lot of small things to fix and big things to learn in the next few days. We are accepting bug reports and pull requests but probably won’t be super-responsive to either for the next few days at least.

I’ll update again here soon!

–ryan.

4 Likes

it looks like either github’s interface isn’t working correctly or the mercurial translation process has issues, since the following commit incorrectly has no parents: Fixed crash if initialization of EGL failed but was tried again later. · libsdl-org/SDL-historical-archive@0e45984 · GitHub

Weird, it looks like the conversion had issues? This was just pointing GitHub at the original mercurial repo’s URL and letting it pull everything in.

This is changeset 30a317c4af6c in Mercurial, and looks like this with hg view

…and this is what gitk shows on the historical archive…

2021-02-12_00-30

…so yeah, it really doesn’t have a parent! It looks like the importer just straight up failed to make a branch there, so it left it orphaned or something.

I’ll open a ticket with GitHub, it might be a bug they can fix. The nice thing about that happening on the historical archive is that we can just delete it and reimport, since it’s just meant to be a read-only snapshot.

Unless someone knows some git wizardry that’ll graft that commit onto a parent node, making a branch there?

After some searching on stackoverflow, git replace --graft followed by git filter-repo will probably work? you can also try editing it in reposurgeon, or just try using hg-git to reconvert it or something.

I’ll explore that, if the ticket I just opened with GitHub doesn’t work out. Stay tuned!

Ugh, it’s in the main repo, too, not just the historical archive. :frowning:

Status update.

  • ArchiveTeam is done mirroring Bugzilla, so the important Bugzilla URLs now redirect to GitHub Issues, like this one that you might find in the wild:

    https://bugzilla.libsdl.org/show_bug.cgi?id=4490

  • Bug attachment URLs don’t redirect, we just serve static files ourselves for those, much faster than Bugzilla could do it. :slight_smile: Like this one:

    https://bugzilla.libsdl.org/attachment.cgi?id=4386

  • We’ve started to invite contributors to the repos to give them write access. Don’t be afraid to make pull requests if you can’t push directly to the main repos, though!

  • We’re already starting to see bug reports and PRs flow in! Be patient, we’re responding sporadically to these as we have a second for now, and will focus more soon as this migration wraps up.

Still TODO.

(in no particular order.)

  • Let ArchiveTeam finish mirroring wiki (probably tonight?)
  • Finish adding people with write access.
  • Turn on redirects from wiki.libsdl.org to GitHub.
  • Update website to use sdlweb from git instead of hg.
  • Update website with git info.
  • Turn on commit notifications to the new Discord category.
  • Turn on @sdl_commits Twitter account again.
  • Turn on buildbot.
  • Figure out migration strategy for Switch and Stadia forks.
  • Set up push notification webhook for the Discord server (as requested!).
  • Write up a “how do I use this thing?” document.

–ryan.

1 Like

Wow — while I’ll definitely miss the old setup, I can definitely see the wisdom behind the change. And big thanks for keeping the old URLs working so well: I can’t imagine that was easy.

There are still some nasty problems with the Wiki, though — particularly the APIByCategory pages. The main APIByCategory page seems to just fail with “The wiki page took too long to render.”, which doesn’t bode particularly well.

The various category pages themselves (e.g. CategorySurface, CategoryKeyboard or CategoryVideo all have totally empty Enumerations, Structures, and Functions headings (though any actual text seems to have made it over.)

Fortunately, actual pages with function documentation seem to have made it across without serious problems. I did find the categories very useful myself, though, so hopefully they can be resurrected (or something similar put in place).

Yeah, categories aren’t automatically supported on GitHub. We’re probably going to write a little perl to generate these pages.

–ryan.

Done since last update:

  • Let ArchiveTeam finish mirroring wiki
  • Finish adding people with write access.
  • Turn on redirects from wiki.libsdl.org to GitHub.
  • Update website to use sdlweb from git instead of hg.
  • Turn on commit notifications to the new Discord category.
  • Turn on @sdl_commits Twitter account again.
  • Set up push notification webhook for the Discord server (as requested!).

Still TODO.

  • Update website with git info.
  • Turn on buildbot.
  • Figure out migration strategy for Switch and Stadia forks.
  • Write up a “how do I use this thing?” document.

Also still TODO: The Wiki.
Right now it’s not really usable: APIByCategory · libsdl-org/SDL Wiki · GitHub only shows The wiki page took too long to render. and the category pages like CategoryGameController · libsdl-org/SDL Wiki · GitHub don’t have any links to functions, enums etc.

TBH I’m not sure if Githubs Wiki is really suitable for the task - maybe there are better alternatives that are easier to host/maintain than MoinMoin but more powerful than Githubs Wiki (which AFAIK is an old version of Gollum) and ideally also have a git backend that allows automated editing?

I’m not married to the GitHub wiki, but for the sake of keeping everything in the same place, I’m going to try to fix up the category issues this week.

But we can definitely consider alternatives.

1 Like

Hi, could we please restore the old wiki until the new one is fully functional?

Is there a particular reason to take the old one offline before the new one is up (critical security issues or something?).

Is there some other site available to browse fully functional documentation in the mean time? (complete, searchable, navigable, with categories etc… like the one that’s just been taken offline…)

1 Like

Your wish is granted. https://wiki.libsdl.org/ is restored while we figure out what to do next.

1 Like

how about adding SDL_Sound to the fold? I’d really love for it to be on github as well, if everything else is (Though technically, SDL_souns is not a libsdl.org project, right?)

1 Like

SDL_sound is my personal project, and while I’m not against moving it into the libsdl-org GitHub organization, it feels sort of presumptuous for me to do so. :slight_smile:

Well, how about talking it through with Sam then :wink:
I’d love to see it on github under the libsd org. But that’s just me…

1 Like