This is a recent development, Github used to be quite reliable but it is lately having more and more issues (Vibe-coded server code?). Perhaps it is time to re-evaluate how dependent the whole ecosystem is on Github, and what if at some point a critical incident lasts more than a few minutes/hours. There was at some point one official and one inofficial project for a registry mirror, but both are unmaintained and more crucially both are on Github as well. Maybe we could have an automated mirror in Gitlab or Codeberg(Strong/prohibitive AI rules) or elsewhere?
More generally I think this shows how dangerous it is to become hostage to the whims of a private, for-profit company who couldn’t care less about Julia.
We do have automated mirrors already! They’re the package servers. Even when GitHub is completely down, Pkg.update and Pkg.add still work. They just reflect the last state the package servers were able to fetch.
Yes, it’s frustrating that I can’t keep changing things, though, I agree with that!
GitHub being a single point of failure is most definitely a problem.
However, there are huge benefits to everything being centralized on GitHub: I can easily submit PRs to any package, comment on every issue, link between issues of any two projects, tag any maintainer of any project in any discussion, and so much more. It’s what makes something like https://joss.theoj.org possible. The gain in productivity, and the effect on the open source ecosystem as a whole, is immeasurable.
The pure “Git Hosting” aspect of GitHub is easily replaced. All the other “social” parts are almost impossible to replace. Which is why I don’t cheer when people go to GitLab or Codeberg, even if I can understand their motivation to some point.
It’s very, but it’s not a single point of failure, for package installing because of:
Also not all packages are even on Github (yes, most, vast majority, almost all the over 14000 packages are on Github), I believe these are the only (at least main) exceptions:
Make of that what you will, not sure if Julia, the project should move yet, most of the packages will likely not, and could Julia support more than one, e.g. if people move to Gitlab (or Codeberg), could a mirror be at Github, or would it only be a hassle? You always want a “single source of truth”.