crates.io should serve as a hub for community involvement.
- helped guide you to the “best” choice for your goal — be it fast-track to MVP, easy use for beginning developers, or contributing to or otherwise improving community projects!
- suggested community efforts that need or want help in some area, and
- highlighted high-quality crates without marginalizing those in need of love (arguably in line with the core community pillar of inclusiveness)
all in an easy-to-use, browsable interface that encourages participation. I was impressed by RustConf’s speakers’ emphasis on community, and I’d like to see that extended to the (currently rather impersonal) process of crate selection.
Engaging the community prevents fragmentation and increases cooperation and productivity.
As a community (yes, there’s that word again), we have a mandate to not only guide users to the best choice for them, but also to direct focus wherever it would most benefit the ecosystem as a whole; we should probably discuss the correct course of action should these goals ever conflict.
How many times have you given up finding the perfect crate on crates.io and began writing your own, simply because it was too hard to find what you wanted or too difficult to determine which of the available crates were actually worth investigating? I’ve experienced this at least once in the short time I’ve been using Rust, and I doubt I’m alone in this. It probably encourages “Not Invented Here” syndrome, which most people should and do regard with contempt.
Fragmentation is such a concern that we may wish to set up domain-specific groups of people to curate and influence development of crates for a particular domain; I’ll defer to discussion for the details of this.
The proposed features aren’t just vacuous marketing speak: let’s brainstorm and collect data.
As we should be well-aware, “data-driven” doesn’t mean “unopinionated”; I propose that we now discuss and brainstorm the
- features we want from such a community-focused reboot of crates.io, and
- metrics that may be helpful in automating various aspects of describing a crate’s various attributes from “availability of documentation and third-party guides” to “openness to contributions” and anything else we might want to know about a crate and its micro-community
Please try to avoid bikeshedding in this thread; I’d rather do that later when it’s clear what everyone’s version of this proposal looks like.