-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Awesome-rust Renaissance (Rework of the list) #479
Comments
Back then i saw 2 different approaches:
I've always liked one single file for viewers because you can see everything at once, and you can search on that page. I hope that stays. |
I am a proponent of the single-file design as well and I'd like to preserve the spirit of the list as it is. I never thought about using a generator, but perhaps it is not a bad idea. I feel that TOML might be a nice middle ground as it is pretty readable and quite popular in the Rust community. |
@nasa42 has used TOML for https://github.com/nasa42/libs.rs/tree/master/categories |
Hi I've been trying to do look through some of the listed projects, but am having a hard time defining when a project should be removed. For example I know libOctavo has had no activity, based on the actual code files, for 2 years. It also states itself as a heavy WIP. suruga lists itself as inactive, so that seems to be a no-brainer. But for some projects, like a gameboy simulator that has been done as a learning project a couple of years ago. That may still be useful to keep because others can still learn from it. How are such projects to be handled? |
@brycx I think one needs to distinguish "usefulness" as "i can use the code" and "the code is interesting/insightful etc.". To me "i can use the code" was the most important goal for awesome-rust. There is no reasons we couldn't keep pointers to interesting code but if they can not be used it should be in a different category. |
@kud1ing Thanks. I'll have another swing at it. |
That being said, i don't think there is an easy solution. It will always be a struggle. |
Is there still interest in this? Now that we've got a rustified linter (#792), I was considering whether more could be done beyond just checking for broken links. Thoughts for changes:
Some of this would be easier by having a generator, but I think the idea of having a easy to edit format for users is also good, while having a decent tool that makes it easy for people to do the Right Thing when adding new entries. I'm willing to write such extensions to the linter tool if wanted? Possibly fold the cleanup.rs into it and document differences between current and desired state in line with rustfmt in builds? |
Something I recently contributed to a different awesome repo was just converting everything to a table, and use the flat styled shields.io badges for each repo showing the number of stars. Number of stars (a proxy for popularity) seems more useful than whether or not the latest build is failing. You do sacrifice a bit of vertical space (~20%) to show the list as a table, but the upside seems by making the items in the list easier to scan (as a top to bottom scan is not ragged and is not interrupted by non-text information). Before: https://github.com/tensorchord/Awesome-LLMOps/tree/863e9b841d26064bcceb050748c00eb561d2d130 On the caching side of things, github automatically caches the svgs behind the camo.githubusercontent proxy, loading them from there instead of from the root site, so things are relatively fast. On the Awesom LLM Ops repo, 281 projects (some without links to their badge) takes around 20s total to load whe throttled with whatever Firefox's DSL setting does or 3.4s for the wifi setting. Having the items in a table means the row size doesn't seem to jankily adjust when the badges load (this problem was mentioned above) |
The Premise
Awesome-rust is a very old list. So old, in fact, that it even
predates Rust v1.0. Even better,
awesome-rust
existed before Cargowas released. Over the years, @kud1ing's tiny list grew into the
massive collections it is now. It doesn't matter what you need to do,
we probably have an entry for it.
Today, we have roughly 70 categories containing hundreds of projects.
Sadly, we also have a lot of historical baggage and this list is in
dire need of a review.
The Problem
There are projects in the list that are unmaintained or straight up broken.
However, the fact that they are unmaintained isn't that much of a problem,
so long as they weren't left in a major WIP state.
Another problem this list suffers from is inconsistency. Some projects have
descriptions, some don't. Some categories order by author, other by crate name,
another ones are a mess, where by we order by "what we have".
Last mildly annoying issue is that the Travis badges are slightly bigger than
lines, so as they load the content gets continuously stretched. If one opens
a link to some part of the list, they will probably end up in a whole different place
of the list.
The Solution
I am a firm believer that it's about the time to do something about it.
Of course, the task is bigger, but these should be the main points:
consistency and the outlook of the list
superseded by another project* or left unmaintained in a heavy WIP state.
It is paramount that we don't make a mistake here, so emphasis on the careful
part.
(if applicable), link to the repository (ditto) or a badge
quite some overlapping in the area of UI), turning some into subcategories
of others, if needed
but whether we order by author or project name is up for discussion at the
moment
https://shields.io might help solve the problem with their custom badges,
but more research needs to be done in the area. One solution is to remove
them completely, but in doing so we lose some valuable easily accessible
information. The best solution would be badges that wouldn't stretch the lines.
add some policies to it.
awesome-rust
should definitely follow (and quietly does,I believe) the Rust Code of Conduct, so I am talking more about policies
on what content we accept, what not.
*We are talking about cases such as where the author says that the original project Y is rewritten as X, which does the same, more and better
The Plan
First, I'd like to ask for some feedback on this, perhaps more suggestions:
or by project?
Next, I'd like to ask @memoryruins to produce his format proposals. We
had a conversation about them a while back, so although some are posted in #419,
there might have been some changes or new ideas (I don't quite remember what
exactly came to fruition from said conversation).
Once @memoryruins does so, I'd also like to ask for input on the topic of design format.
If the operation is a go, we can start working out some of the details and
then get to work. Of course, we wouldn't like the list to be dysfunctional for
the duration of the renewal, so a new branch
rework
would be created and workon
awesome-rust
v2 would be done there.The text was updated successfully, but these errors were encountered: