Idea: cargo-giftwrap - giving the gift awesome Rust libraries
Pascal’s scribbles blog
January 29, 2017
Here are some things in Rust's ecosystem that I really like:
- The awesome people
- Well documented libraries by awesome people
- Automation to help awesome people focus on awesome stuff
I would like to add something to that.
My thoughts so far
- Good practices for crates
- Elegant APIs in Rust
- Doc string style
- Writing guides with doc tests
cargo-giftwrap
My idea is this: A new cargo giftwrap[^naming] subcommand that automatically tries to ensure the Rust library it is executed in is top-notch, i.e.:
- Cargo.toml has
- well-formatted authors
- license
- descriptions
- repository OR website OR documentation (more is better)
- Readme file name
- keywords and categories
- .gitignore and .editorconfig
- README.md with
- Code example(s)
- Link to API docs (ideally docs.rs)
- Contribution section
- Has a license
- Has CI integration
- Is documented (#[deny(missing_docs])
- Passes clippy
- Has unit and/or integration tests
- Has examples/ with code that builds and/or docs/ with guides
- Is formatted with rustfmt (diff == 0)
Running cargo giftwrap will check which of these requirements are and try to add what is missing in an interactive manner. (Ideally, you would run this as a pre-publish hook.)
So far, this is just an idea
If you want to make it real: That's awesome! Get right on it! (Mentioning me on GitHub, or sending me an email would be great.)
[^naming]: Naming is hard. If you don't like "giftwrap", Matthias Endler suggests "tidy", "neat", or "lector".
Discussion in the ATmosphere