Facilitate crate development with new forum categories?

Hi folks. I have several Rust crates (nothing huge) in development that have been delayed somewhat because, while I know Rust reasonably well, I don't know the best practices for publishing crates, and I don't really know where to get help. I asked in one forum and got exactly one response -- a guy saying that he needed the same kind of help, so could I please write up what I learn. I didn't learn a thing.

I see posts on the forum from other first-craters asking for help, but there's no specific place for such questions. Some of them published a crate first and THEN asked for feedback, and from reading the feedback it is very clear that it would have been better if they had gotten the feedback BEFORE publishing the crate.

Assuming that we all would like to see people with ideas for crates produce good results and have a good experience, would it make sense to have a few forum categories specific to their needs? For example, you could imagine these categories:

  1. My crate idea
  2. My crate API
  3. Best practices for my crate

"My crate idea" would be a place where one could say "Hey, I was thinking of writing a crate called foo that would blah blah blah." Helpful responses might include

  • Are you aware of the bar crate? How would this be different?
  • Perhaps that should instead be a module in this other crate with a larger scope.
  • I think it would be more useful to approach the problem this other way.
  • Great idea, but the name foo makes me think the crate does something else.
  • Are you planning nostd support? If so, I could use it.
  • I have been working on something similar. Perhaps we should chat about possibly combining forces?
  • Instead of processing raw foos, perhaps you should take mumbles from this other crate as input.
  • That looks like an interesting project, and I have been looking for a way to contribute. Could I help, perhaps by writing some tests?

Such a category would allow mentors to easily see what mentoring opportunities are out there and to give guidance early on, rather than after budding authors have invested a lot of energy into something less than ideal and are resistant to the feedback they need to hear.

"My crate API" would be for questions about the API design. You could ask specific questions or just ask for a review. Having such a category would give other folks writing their own crates a place to go to peruse the issues others have dealt with in designing their own APIs.

"Best practices for crates" would be for questions about module layout, Cargo.{toml,lock} particulars, Github actions, docs.rs, licensing, versioning, the publishing process, dealing with contributions, announcements, etc.

Maybe these aren't the right categories, but you get the idea: create categories targeting the needs of folks who have the time and inclination to start producing crates, with the goal of improving the quality of such crates and making the process smoother and more personally rewarding for those donating their time to improve the Rust ecosystem.

Thoughts?

3 Likes

Related topics:

  • Collect static resources of use to such folks.
  • Identify volunteer mentors to work with first-craters?
  • Identify a couple of relatively small, straightforward crates that demonstrate best practices for crates. Perhaps add a BestPractices.md file to such projects that talks about those practices and how they help.
1 Like

I should say at this point that after a couple of days of no response I learned that my mistake was in part asking for somebody knowledgeable to mentor me for an hour or two about the crate. Apparently it's better to just throw questions out there rather than trying to get even a short mentoring relationship with some established context.

But even though I am now getting some useful responses, I do think there is something to be said for actual mentoring, and I still think it would help to have more targeted forums for those trying to level up from Rust coding to publishing actual crates. :slight_smile:

Level up? If you have the confidence to push a crate, then you have the attained the level. Otherwise you haven't.
If your library/application is good, people will use it. If it is crappy, people will ignore it or take a poop on your crate. Either way you'd know what you need to improve.
I'd say from experience, it is far, far more important to get your crate publicized properly - otherwise you'd never get public feedback. Write blogs, write to Reddit, HackerNews, Lobesters (if you are a member), the announcement page here. Aggressively publicize it. Announce every version update. Make good release notes. Read and acknowledge every issue, thank every PR (even if it is useless and can't be merged).
If you are getting no feedback after a whole lot of publicizing, then you can assume your crate is not of public interest and just move on. Otherwise use the feedback and progress.


Disclaimer: This works only for people with non-fragile self-esteems and the ability to be mercilessly criticized in public. Otherwise, open-source can drive you to depression. In particular, many public forums are much, much harsher than this forum.

2 Likes