Open icefoxen opened 6 years ago
What objective criteria can determine usefulness?
Hmm.. maybe no such criteria are needed if the removal PR is required to contain a succint rationale...
I dunno! Any suggestions? :D
No good suggestions from my side :)
A few objective criteria that do not quite measure usefulness come to mind:
We could grey abandoned crates out, or put them in a separate category. There may still be useful code in them, for reference, so I wouldn't like to just chuck them out.
I suggest having the lowest threshold being editions since those are a thing now: about once/edition, if it wasn't touched in ~an edition and doesn't represent a "finished work" that is thus "continuously useful"? It gets booted (or downgraded to a historical archive) without comment required. Essentially, someone who was introduced in 2019 to Rust (hi!) will be very confused by the code in a library that was written at the beginning of 2015, when Rust 1.0 was still alpha, so even reading those is less useful.
And from where I am standing, I still kind of blink at the idea of trying to use anything written before 2018. It's still legible, but I am cozier with the newer idioms.
That's... actually not a terrible idea IMO.
Leaving comment here instead of opening a new issue about this.. It looks like there are also some crates that have been yanked/discontinued from Crates.io... nCollide in particular (which has been replaced with nCollide2D and nCollide3D) is the one that comes to mind. So might I propose adding another criteria for removing crates from the website's list?
One more case for the historical archive, i guess? https://amethyst.rs/posts/amethyst--starting-fresh
I propose at least having a the following rules
If a crate seems useful, but isn't being maintained, then it might be worthwhile to
I also think that the consequences of removing a crate too soon are not that severe, because re-adding it isn't hard at all. Instead it's way more useful to keep these lists a relatively current snapshot of the state of the ecosystem.
This issue has been open for 4+ years now. what even is this blocked on?
I thought arewegameyet.rs itself was abandoned because it showed so many old entries like amethyst or conrod etc.. which are explicitly abandoned by the authors themselves.
The older projects just increase noise and diminish the utility of the website imo.
This is not an "official" list, so we don't need rigid rules for deprecation either.
If the rules don't work, they can be evolved later. But listing the abandoned projects mixed with the latest maintained projects is just not the way.
I definitely think dealing with this is long overdue - at the very least it'd be worth us ditching any libraries that are obviously dead (ancient archived repos, etc), but I do think the rules you suggested sound reasonable.
I also think we're going to have our hand forced by API rate limits sooner or later, as the more libraries we have on the site, the more calls we're making into Crates.io/GitHub every time we publish (see #378).
I think the main blockers to moving forward are:
You may notice that the common factor in all of these is actually having time to do the thing - everyone in the gamedev working group has been pretty busy lately, so I think nobody's really had the bandwidth to make this a priority.
I am not in the gamedev group, but i can atleast go though all the projects and make a list of all the projects that are either explicitly abandoned (with a link to the announcement) or inactive for more than one year.
Is that acceptable?
If you want, that'd be a big help, I think :) Once we've got a shortlist, I think it'll be easier to figure out whether the rules need any tweaks.
That too way longer than expected. Anyway, i left some repos alone if i felt like they were sort-of complete or still popularly used. eg: gl wrappers or codec decoders.
These are in alphabetical order, so cleaning up in a PR should be pretty straight forward. When i mean no activity, i generally mean that there was no commit or issue comment etc.. by the author since last july (roughly one year). If the repo is missing, then i used the crates.io last version published date instead.
If any of these sleeping projects wake up, then we can re-add them :)
That list looks fairly reasonable to me - there's only a few I've spotted that could be contentious:
amethyst
- could be worth keeping purely for how historically relevant it is to the ecosystem?bmfont
- pretty commonly used format (though https://github.com/shampoofactory/bmfont_rs is more recently updated and has a more idiomatic API, so maybe let's just add that instead)cgmath
- still fairly widely used as it's stable and has been around for a long timeezing
- feels fairly 'done', not sure how much you could really add to this other than more easing functionsAs far as I can tell, most of the others are not being developed and/or have been superceded by other crates.
I'll try to see if any other WG members have any strong opinions on this.
I found https://github.com/rust-gamedev/arewegameyet/issues/372 . So, it seems we already removed a bunch of crates in 2020.
amethyst
- I don't think users who come to arewegameyet
are looking for historically relevant crates. They probably want to look at what rust ecosystem offers them today.
cgmath
- I just thought it would better to redirect users towards glam/euclid/nalgebra which are still maintained. But I will leave this to the judgement of WG members.
I honestly don't mind either way, and just to get things going, I'll propose:
Do all the non-contentious ones first, and discuss amethyst and cgmath after that.
For amethyst and cgmath, we even have the option of listing them (since they're high up in Google searches) and explicitly pointing the readers to the newer ones.
blocked on #546 which might be merged before summer :+1:
blocked on #546 which might be merged before summer 👍
Sorry for the delay on this, I've not forgotten! I need to find a new reviewer for the PR since Ozkriff's no longer available.
Once that PR is merged, my plan is to take the list of crates that Jubilee had removed in their (now-closed) PR, and move them all into the archive section.
If we decide later down the line we do want to go down the route of removing crates entirely, it'll be easy to find them (since they'll all be tagged as archived = true
), but hopefully this by itself is a good first step towards cleaning the site up - I agree it's long overdue.
I've re-raised @workingjubilee's PR using the new archive functionality - I'd appreciate it if people in this thread could give it a look over and make sure I've not missed/broken anything 😄
Once this is merged, we can maybe take a look at archiving some more of the crates mentioned here: https://github.com/rust-gamedev/arewegameyet/issues/95#issuecomment-1612288616
Given that we're just de-emphasizing crates now instead of removing them from the site entirely, hopefully there'll be a bit more consensus about which ones should be moved.
[^1]: I had to use admin rights to do it, which I feel a bit uncomfortable about, but nobody other than me is reviewing changes at the moment and I really don't want this issue to be blocked for a sixth year...
Further PRs to archive crates that are unambigiously dead/unmaintained would be welcomed.
There's clutter-y chaff in some lists...
corange-rs
is 3rd in engines even though it hasn't been touched in 3 years.There has to be objective criteria for removing things or else it can get contentious. One person says "We should remove A" and then the owner of A says "wait, why?" and there's an argument. An off-the-top-of-my-head idea for how that might work is, a crate gets removed if: