rust-gamedev / wg

Coordination repository of the Game Development Working Group
511 stars 10 forks source link

WIP: Example of ecosystem overview #63

Open Wodann opened 4 years ago

Wodann commented 4 years ago

An example implementation of the proposal in https://github.com/rust-gamedev/rust-gamedev.github.io/issues/6 for a WG-controlled ecosystem overview.

1. Liveness

Functionality is limited as this is merely Markdown. If we have a website, we could allow sorting and filtering of crates.

2. Feature comparison

I chose to highlight which graphics drivers are supported by the different crate, but I am open to input on the features that we want to compare.

One issue that I ran into is that the number of columns that can be used is limited.

3. Compatibility

I'd have liked to add the minimum rustc version, but it wasn't known for these specific crates.

I wasn't able to clearly show dependencies between different layers in the topmost ecosystem table. If anyone has any nice ideas how to do this in Markdown, please let me know. Otherwise putting this on the website might be an option.

Lokathor commented 4 years ago

Do people use the github stars for crates they use? I only use it for the occasional non-rust project I want to look at again later, and I try to keep my stars list as small as possible.

Wodann commented 4 years ago

An alternative would be the number of downloads on crates.io. You can use the total number of downloads of a crate or the number of downloads for a specific version. The latter might be a better option as the total downloads can be skewed if you compare two crates that are on a short and long release cycle, respectively.

Lokathor commented 4 years ago

Yeah, downloads of the version evaluated would be good.

Lokathor commented 4 years ago

1) We think that a wiki page might be a better place to put this than in the repo files.

2) format changes:

Wodann commented 4 years ago
  1. Sounds good to me.

Deprecated crates should go in a separated list, at the end of this page or on some other page. Either way, we want to filter them away from being mixed in with the active and stable-maintained crates.

Is the idea to remove the maintenance tag altogether in that case? The only remaining two options are: actively-developed and passively-developed, I think.

We should try and display automated info for downloads/past-90-days or whatever other automated download rate info crates.io has. This is not a perfect metric, but it's a rough metric of how many people are using a crate, which determines roughly how easy it is to get help.

Are there any options for automatically deploying this to Github wikis? I am not that familiar with that particular use case.

Did anyone have any ideas for showing dependencies between different layers in the topmost ecosystem table?

17cupsofcoffee commented 4 years ago

For total download counts, you can use Shields.io to embed a badge. Unfortunately, there isn't one for monthly downloads yet - I imagine if Crates.io exposes that data it could be added, though?

EDIT: The API does indeed return a recent_downloads metric (although what exactly is considered 'recent' isn't clear to me - I think it's 90 days?). I might raise a PR to add that to Shields.io later.

17cupsofcoffee commented 4 years ago

Raised an PR on Shields.io to make recent download information available in pretty badge format: https://github.com/badges/shields/pull/4187

17cupsofcoffee commented 4 years ago

My PR got merged (the people working on Shields are lovely, by the by 😄) - the recent downloads badge should show up on https://shields.io/category/downloads in the next few days.

EDIT: And it's live 👍