クレートを公開する前に埋めておくべきメタデータ

κeenです。Rustその2 Advent Calendar 20173日目の記事です。

クレートをcargo publishする前に何すればいいんだっけと毎回なるので備忘録 publishするまでの手順自体は過去記事を参考にして下さい

version

上げ忘れないようにしましょう。cargo-bumpが便利かもしれません。

license

独自記法のライセンス表記をします。例えばMITとApache-2.0のデュアルライセンスなら"MIT OR Apache-2.0"など。略称はここで調べられます。

1つ気をつけないといけないのが依存ライブラリのライセンスに違反しないように気をつけないといけないということです。Rustは本体がそうなのでMIT OR Apache-2.0が多いようですがGPLのものもあるかもしれません。一々調べるのは難しいのでcargo-licenseを使うと便利です。

description

好きに書きましょう

documentation

最近はdocs.rsがあるのでhttps://docs.rs/crate-nameが多いでしょうか。 細かくバージョンを指定してhttps://docs.rs/crate-name/version/crate-nameとしてもいいですが、私はよく上げ忘れるので上のものを使っています。

readme

概ね readme = "README.md" でしょう。最近はcrates.ioでREADMEを展開するようになったので重要です。

README.mdの内容ですが、

  • [![crate-name at crates.io](https://img.shields.io/crates/v/crate-name.svg)](https://crates.io/crates/crate-name)
  • [![crate-name at docs.rs](https://docs.rs/crate-name/badge.svg)](https://docs.rs/crate-name)

などのバッジを付けると親切でしょう。

repository

大抵githubのレポジトリです。

keywords

好きにつけられます。と言われても困るのですが、依存ライブラリのキーワードなどを見て決めましょう。 昨日紹介した iron_inspect["iron", "log", "error", "debug"]というキーワードを付けています。

categories

個人的に難敵です。ここにあるものから選ぶのですが、表示名と実際に書く文字列が異なります。“Web programming"なら["web-programming"]です。小文字にしてスペースをハイフンにした感じですね。 変なものを書くとcargo packageの時点で怒られます。


書ける情報はもうちょいあるのですが(badgeとか)ひとまずこれを埋めとけば大丈夫そうです。

ということで小ネタでした

Written by κeen
Later article
WebAssemblyでGC