RustでCLIを作成し、crates.ioで公開までやったので手順を忘備録として残しておきます。
作成したCLIはthueというもので、英語表記の曜日を日本語表記の曜日に変換するものです。自分がよくTuesdayとThursdayを間違えるので作成してみました。
Rust CLI working groupがチュートリアルを公開しているのでそちらを参考にしました。
Command Line Applications in Rust
こちらもありがたいことに丁寧に手順を紹介してくださっている方がいたので参考にさせていただきました。
基本的には上記を参考にサクサク進められたのですが、一点詰まったことがあったので残しておきます。
cargo publish
すると以下のようなエラーが出ました。
error: api errors: wildcard (`*`
) dependency constraints are not allowed on crates.io.
しかしCargo.tomlを見てもワイルドカードを使用しているようには見えません。その時のdependencies配下のようになっていました。
[dependencies]
clap = {verstion = "4.4.8", features = ["derive"]}
つまり、タイポです。versionがverstionになっています。
これでversionが指定されていない、つまりversion="*"
のように判定されて上記のエラーになっていました。これで1時間くらい溶かしました…
たまたま同じissueを立てている人がいたので助かりました。本当にありがたいです。
Cargo publish throws a wildcard error #11198
こんなに簡単にCLIが公開できてすごい!と思いました。
Homebrewで公開とかもチャレンジしたいです。
追記 しました:HomebrewでRust製CLIを公開した