Rustのパッケージをcrates.ioに登録する
κeenです。技術の話題を書くのは久し振りですね。今日初めてRustのパッケージのセントラルレポジトリ、crates.ioにパッケージを登録したのでその流れを共有します。
登録したいパッケージを用意する
file_loggeを作りました。 しばらく前に(Advent Calendar向けに)それっぽく動くところまで作って放置してたやつですね。これを整形していきます。
(任意)ドキュメントを生成する
Rustには素晴しき cargo doc
があります。
$ cargo doc --no-deps
でドキュメントを生成しましょう。ドキュメントを書いてないならこちらを見ながら書きましょう(すいません、私の奴は全然書いてないです…)。
target/doc
以下に生成されたドキュメントがあるので適当に gh-pages
ブランチに放り込みましょう。
尚、--no-deps
オプションがないと依存パッケージのドキュメントも全部生成してしまいます。
求: gh-pages管理のベストプラクティス。
パッケージ情報を充実させる
普段使っているままの Cargo.toml
だとcrates.ioで見た時に情報が全然ありません。
[package]
セクションに色々書きましょう。私の場合は
[package]
name = "file_logger"
version = "0.1.0"
authors = ["Sunrin SHIMURA (keen) <3han5chou7@gmail.com>"]
から
[package]
name = "file_logger"
version = "0.1.0"
authors = ["Sunrin SHIMURA (keen) <3han5chou7@gmail.com>"]
repository = "https://github.com/KeenS/file_logger"
keywords = ["log", "file"]
license-file = "LICENSE"
readme = "README.md"
description = "A simple logger backend that outputs to a file. \nThis is alpha state."
documentation = http://KeenS.github.io/file_logger/file_logger/
になりました。 あ、ちゃんとライセンスも明示しましょうね。
どういう情報が書けるのかはここに載ってます。
crates.ioにログインする
crates.ioに行き、右上にあるGitHubログインボタンをクリックします。
そうするとログイン状態になります
メニューから
Account Settingsに飛ぶと下記のようにログイン用cargoコマンドが提示されるのでそのままペタっとコマンドラインに貼って終了です。
パッケージング
$ cargo package
crates.ioに登録する
$ cargo publish
その他
パッケージに含めるファイルを細かく調整したい、既にpublishしたパッケージをdeprecated的な扱いにしたいなどはこちらにドキュメントが載っています。
まとめ
- crates.ioにログインしたよ
- Cargoを使えば簡単にパッケージを登録出来るよ
- Cargoってすごいね