End of days for the rust-lang nursery?


The nursery GitHub org has been around for a while now. The original purpose was a place for libraries which were considered important for the community, but not ready (or appropriate) for the main org. Once concern was that the main repo would get too cluttered if there were lots of repos there.

We long ago stopped using the nursery for discovery of libraries in favour of crates.io. It is now used as just another org for Rust stuff. Although nominally things in the nursery are less mature than those in the main org, this is not at all strict. The main org has also passed the point of having few enough repos to be easy to navigate.

The downside of multiple orgs is that teams, bots, and settings have to be maintained in two places. This is extra work for no gain, and is a security risk (since we double the chance of forgetting to update something).

So, it seems to the core team that the nursery is no longer useful and it should be retired. The plan would be to move all the repos to the main org (repos which are no longer relevant or unmaintained could be moved to https://github.com/rust-unofficial), and to merge teams across the orgs. GitHub automatically redirects moved repos, so there should be no changes needed to either your bookmarks or Git configs.

Please let us know your thoughts!


Seems like a good idea to merge…

…a reminder / note: add “this has moved” links to the nursery so that we don’t get a bunch of dead links.


Yeah, let’s get rid of it.


Is this necessary? I was somewhat hoping that GitHub would auto-redirect both pages and links to the repositories directly…


Yep, Github will redirect when you go to the old location of a transferred repository.


Including github pages hosted websites, e.g. https://rust-lang-nursery.github.io/rustc-guide/walkthrough.html?


This gist says that github.io pages don’t redirect automatically, but shows how to do manual redirects: https://gist.github.com/domenic/1f286d415559b56d725bee51a62c24a7

But I guess you’d have to do that for every single page within too?


You can add a special 404.html and do a JS-based redirect, if needed.

And I think you can get around the way that gh-pages needs a repository by transferring the repos, then setting up a rust-lang-nursery.github.io repo and putting the website redirects in there.

That way GH repo requests will be redirected, and web page requests will as well, without having to put up another repo which would break the repo forwarding.


Retiring the nursery sounds good to me too. It has played a role recently as a springboard to officialdom though, where a library starts out under someone’s personal account, then makes its way into the nursery with a few people pushing it forward, then one way or another makes its way into std or the rust-lang org.

That sort of process sounds like it could be replaced with a working group structure going forward though.


Another advantage of merging the orgs is that we can benefit more from GitHub’s issue transfer feature which requires source and target repos to be in the same org https://help.github.com/articles/transferring-an-issue-to-another-repository/ (although tbh GitHub should lift that restriction).


I started doing the change over with a few tools repos that we were planning on moving anyway (and a few that we weren’t). Some issues that came up:

  • CI URLs need updating
  • GH pages can exist where I wasn’t expecting them too (I thought they needed their own repo, but apparently not, I think this was just me being not smart)
  • there are implicit links between teams and repos which are not carried over
  • I think URLs used by bots or other programs using the GH APIs need updating
  • there are some ‘dead’ repos. I’ve archived these and I think that the end goal should be that the nursery will probably exist but only contain archived repos. We could rename it to the rust-lang-graveyard or seomthing.

None of these are show-stoppers, just things to be aware of for later moves. If anyone wants to move a repo they own from the nursery to rust-lang or to a team org and you have the privs, please feel free to do that.


Could someone also create the rust-lang-nursery.github.io repo so that redirects from old gh-pages can be set up?


Could someone also create the rust-lang-nursery.github.io repo so that redirects from old gh-pages can be set up?

I’ve created the repo and a redirect for Clippy. PRs for other redirects would be gratefully accepted.


Can these be moved to https://github.com/rust-lang-deprecated/ ?