クレートを公開する前に埋めておくべきメタデータ
κ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とか)ひとまずこれを埋めとけば大丈夫そうです。
ということで小ネタでした