rust-gamedev / arewegameyet

The repository for https://arewegameyet.rs
https://arewegameyet.rs
Creative Commons Attribution 4.0 International
697 stars 152 forks source link

How do we remove crates? #95

Open icefoxen opened 6 years ago

icefoxen commented 6 years ago

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:

mbillingr commented 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...

icefoxen commented 6 years ago

I dunno! Any suggestions? :D

mbillingr commented 6 years ago

No good suggestions from my side :)

A few objective criteria that do not quite measure usefulness come to mind:

doppioslash commented 6 years ago

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.

workingjubilee commented 4 years ago

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.

icefoxen commented 4 years ago

That's... actually not a terrible idea IMO.

PatrickHoward commented 4 years ago

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?

ozkriff commented 2 years ago

One more case for the historical archive, i guess? https://amethyst.rs/posts/amethyst--starting-fresh

stefnotch commented 1 year ago

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.

coderedart commented 1 year ago

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.

  1. Did the project have any updates in the past six months? No? then deprecate.
  2. If the project is done. Then, keep it.
  3. If the project is explicitly abandoned by the authors with an announcement? deprecate.

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.

17cupsofcoffee commented 1 year ago

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.

coderedart commented 1 year ago

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?

17cupsofcoffee commented 1 year ago

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.

coderedart commented 1 year ago
Name Reason Last Activity Date Repo link
alto archived July 2020 https://github.com/jpernst/alto
ambisonic no activity Feb 2021 https://github.com/mbillingr/ambisonic
amethyst archived April 2022 https://github.com/amethyst/amethyst/
amethyst_network archived April 2022 https://github.com/amethyst/amethyst/
arcana no activity July 2022 https://github.com/arcana-engine/arcana
audir no activity Dec 2020 https://github.com/norse-rs/audir
beehive no activity May 2020 repo deleted :(
bmfont no activity Jan 2021 https://github.com/KalitaAlexey/bmfont-rust
building-blocks no activity Feb 2022 https://github.com/bonsairobo/building-blocks
calx-ecs no activity July 2018 https://github.com/rsaarelm/calx-ecs
caper no activity Jan 2022 https://github.com/shockham/caper
cgmath no activity April 2022 https://github.com/rustgd/cgmath
chariot no activity April 2018 https://github.com/ChariotEngine/Chariot
coffee no activity May 2020 https://github.com/hecrj/coffee
conrod abandoned Jan 2022 https://github.com/pistondevelopers/conrod
const-tweaker no activity Aug 2021 https://github.com/tversteeg/const-tweaker
corange-rs no activity 2015 https://github.com/lucidscape/corange-rs
crayon no activity May 2019 https://github.com/shawnscode/crayon
crow no activity Oct 2021 https://github.com/lcnr/crow
crystalorb no activity Jan 2022 https://github.com/ErnWong/crystalorb
dces no activity May 2022 https://gitlab.redox-os.org/redox-os/dces-rust
distill no activity Nov 2021 https://github.com/amethyst/distill
MuOxi no activity Sep 2021 https://github.com/duysqubix/MuOxi
ears no activity April 2020 https://github.com/nickbrowne/ears
enet no activity March 2022 https://github.com/futile/enet-rs
euler no activity June 2018 https://github.com/alteous/euler
ezing no activity Nov 2018 https://github.com/michaelfairley/ezing
fmod no activity July 2021 https://github.com/GuillaumeGomez/rust-fmod
froggy no activity Sep 2020 https://github.com/kvark/froggy
fungui no activity Jan 2019 https://github.com/thinklibs/fungui
gfx-hal maintenance mode Aug 2021 https://github.com/gfx-rs/gfx
glsp on hold Mar 2020 https://github.com/fleabitdev/glsp/
gme no activity Mar 2021 https://github.com/JayPavlina/Game-Music-Emu-Rust
graco no activity Feb 2020 https://gitlab.com/chrisrabotin/graco
hlua no activity Oct 2018 https://github.com/tomaka/hlua
vulkust abandoned Aug 2022 https://github.com/Hossein-Noroozpour/vulkust
rust-3d no activity Aug 2020 https://github.com/I3ck/rust-3d
imgui-ext no activity Nov 2020 https://github.com/germangb/imgui-ext
imgui-inspect no activity April 2021 https://github.com/aclysma/imgui-inspect
immi no activity July 2018 https://github.com/tomaka/immi
netcode no activity June 2020 https://github.com/jaynus/netcode.io
keeshond no activity May 2022 https://gitlab.com/cosmicchipsocket/keeshond
keeshond_datapack no activity May 2022 https://gitlab.com/cosmicchipsocket/keeshond
ketos no activity Jan 2020 https://github.com/murarth/ketos
laminar no activity April 2022 https://github.com/TimonPost/laminar
legion no activity Oct 2021 https://github.com/amethyst/legion
libovr no activity 2016 https://github.com/lucidscape/libovr-rs
lichen no activity April 2022 https://github.com/viperscape/lichen
liquidfun no activity 2015 https://github.com/rjanicek/liquidfun-rust
luajit no activity Feb 2019 https://gitlab.com/Dreae/luajit-rs
mold2d no activity Dec 2018 https://github.com/DarinM223/mold2d
molt no activity May 2020 https://github.com/wduquette/molt
navmesh no activity Dec 2021 https://github.com/PsichiX/navmesh
ncollide2d passively maintained Mar 2022 https://github.com/dimforge/ncollide
ncollide3d passively maintained Mar 2022 https://github.com/dimforge/ncollide
netstack no activity April 2020 https://github.com/Vengarioth/netstack
nphysics2d passively maintained July 2021 https://github.com/dimforge/nphysics
nphysics3d passively maintained July 2021 https://github.com/dimforge/nphysics
nuklear-rust no activity Oct 2020 https://github.com/snuk182/nuklear-rust
obj no activity Jun 2021 https://github.com/kvark/obj
ogmo3 no activity Aug 2021 https://github.com/17cupsofcoffee/ogmo3
optimath no activity Jun 2021 https://github.com/djugei/optimath/
oxygen_quark no activity Jan 2019 repo deleted
peacock no activity April 2021 https://github.com/maxdeviant/peacock
physme archived Dec 2021 https://github.com/soycan-sim/physme
portmidi no activity May 2022 https://github.com/musitdev/portmidi-rs
pyro archived Aug 2022 https://github.com/MaikKlein/pyro
pyxel no activity Jul 2019 https://github.com/adtennant/pyxel
quicksilver no activity Oct 2020 https://github.com/ryanisaacg/quicksilver
raui no activity Nov 2021 https://github.com/RAUI-labs/raui
rendy no activity Jan 2021 https://github.com/amethyst/rendy
rhusics no activity Aug 2020 https://github.com/rustgd/rhusics
rovr no activity 2015 https://github.com/binsoftware/rovr
vitral no activity Aug 2018 https://github.com/rsaarelm/vitral
rsoundio abandoned Dec 2020 https://github.com/klingtnet/rsoundio
rust-webvr abandoned May 2020 https://github.com/servo/rust-webvr
sharecart1000 no activity Mar 2021 https://github.com/Lokathor/sharecart1000-rs
steering no activity Sep 2018 https://github.com/orhanbalci/rust-steering-behaviors
tachyon-networking no activity Feb 2022 https://github.com/gamemachine/tachyon-networking
tcod no activity Jan 2021 https://github.com/tomassedovic/tcod-rs
tessellation no activity Jun 2021 https://github.com/hmeyer/tessellation
three abandoned Sept 2022 https://github.com/three-rs/three
throne no activity Oct 2021 https://github.com/t-mw/throne
torchbear (renamed jazz) no activity April 2022 https://github.com/jazzdotdev/jazz
vorbis no activity 2016 https://github.com/tomaka/vorbis-rs
weasel no activity Nov 2020 https://github.com/Trisfald/weasel
wrapped2d no activity May 2020 https://github.com/Bastacyclop/rust_box2d
wrapping_coords2d no activity May 2022 https://github.com/facorread/wrapping_coords2d
natura no activity Feb 2022 https://github.com/ziyasal/natura

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 :)

17cupsofcoffee commented 1 year ago

That list looks fairly reasonable to me - there's only a few I've spotted that could be contentious:

As 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.

coderedart commented 1 year ago

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.

stefnotch commented 1 year ago

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.

coderedart commented 9 months ago

blocked on #546 which might be merged before summer :+1:

17cupsofcoffee commented 9 months ago

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.

17cupsofcoffee commented 8 months ago

546 is merged now[^1], so hopefully we can get this moving again in 2024 🎆

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...

17cupsofcoffee commented 8 months ago

556 is merged as well now :)

Further PRs to archive crates that are unambigiously dead/unmaintained would be welcomed.