{
  "path": "/cargo-giftwrap.html",
  "site": "at://did:plc:x67qh7v3fd7znbdhauc45ng3/site.standard.publication/3mjcd2t6afe25",
  "$type": "site.standard.document",
  "title": "Idea: cargo-giftwrap - giving the gift awesome Rust libraries",
  "updatedAt": "2017-01-29T00:00:00.000Z",
  "publishedAt": "2017-01-29T00:00:00.000Z",
  "textContent": "Here are some things in Rust's ecosystem that I really like:\n\n0. The awesome people\n1. Well documented libraries by awesome people\n2. Automation to help awesome people focus on awesome stuff\n\nI would like to add something to that.\n\nMy thoughts so far\n\n- Good practices for crates\n- Elegant APIs in Rust\n- Doc string style\n- Writing guides with doc tests\n\ncargo-giftwrap\n\nMy 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.:\n\n- Cargo.toml has\n\t- well-formatted authors\n\t- license\n\t- descriptions\n\t- repository OR website OR documentation (more is better)\n\t- Readme file name\n\t- keywords and categories\n- .gitignore and .editorconfig\n- README.md with\n\t- Code example(s)\n\t- Link to API docs (ideally docs.rs)\n\t- Contribution section\n- Has a license\n- Has CI integration\n- Is documented (#[deny(missing_docs])\n- Passes clippy\n- Has unit and/or integration tests\n- Has examples/ with code that builds and/or docs/ with guides\n- Is formatted with rustfmt (diff == 0)\n\nRunning 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.)\n\nSo far, this is just an idea\n\nIf 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.)\n\n[^naming]: Naming is [hard]. If you don't like \"giftwrap\", [Matthias Endler][mre] [suggests][mre-names] \"tidy\", \"neat\", or \"lector\".\n\n[hard]: /programming-wisdom.html\n[mre]: https://github.com/mre\n[mre-names]: https://twitter.com/matthiasendler/status/825707332218847235",
  "canonicalUrl": "https://deterministic.space//cargo-giftwrap.html"
}