As we announced yesterday, we’ll be migrating from Github to Codeberg as our git host of choice.
Codeberg has a built-in migration tool that just works for most repositories, but alas it seems our repository is a bit too large. It’s not even Codeberg’s fault for we hit the Github rate limits in the middle of the migration.
I’ve tried a few different ways, including letting it run overnight to see if it would land on its feet somehow, but in the end it never worked.
So I’ve now written a script to migrate all git content, issues and pull request, and I am using that to handle the migration. It will almost certainly also go off the rails at some point, but my hope is that by scripting things myself, I will be able to restart from where it failed, rather than having to start all over again.
I will keep you posted on my progress, but it might take time because each time we hit the rate limits, we need to back off for a few hours to let them reset.
When the migration is complete, I will archive the Github repository to avoid confusion.
We will then also try to clean up the issues and pull requests that have accumulated as we were working on v4 (this too will take time).
Update on this: While I now have a script that will migrate things, there’s still some issues that we cannot get around:
Rate limiting: This means we have to go slow. Sometimes real slow. Because rate limiting kicks in when you create 5 whatever under 5 minutes. So 5 issues in 5 minutes will trigger it. But that’s not the end of it. One issue can have many comments, and each of those counts to, so it’s going to take time.
Pull requests: Github pull requests cannot be migrated to Codeberg pull requests as-is because they way they are stored is specific to Github. They will be created as issues instead.
What this means is that:
Pull requests will be recreated as issue in Codeberg. The main goal here is to preserve the content and discussion. When it comes to actually bringing the code into our codebase, I will just handle it with cross-repository merges (famous last words)
I will only migrate open issues and pull requests. I don’t know if there is much value in migrating closed issues (and pull requests) but if people feel particularly nostalgic about it, we can always deal with it later.
As all this will take a while, I will archive the repo on Github so that we can get out of this state of limbo and start pushing updates to the site as there’s some things that are broken and need attention.
I think just migrating open stuff is completely fine. The old stuff is still on GitHub if you need to look at it for some reason. And in the worst case, if you want to reopen an old GitHub issue, you could just manually recreate it and link the original if needed.
It did at first after I restarted it. Now it should no longer do that.
Seems I forgot to clean up that one, so I’ve removed it now. Thanks for pointing it out