自作のRustクレートをcrates.ioに公開する

Page content

公開したのは大昔に書いたbrainfuck方言生成器。

リンク

経緯

去年の3月、上記のリポジトリにissue報告が来た。おれがownerであるリポジトリに初めて報告された記念すべきissueだったが、かなり適当な対応をしてしまった。

で、昨日とつぜん謎のやる気が湧いてきてcode fixするとともに、勉強がてらクレート公開やCI/CD実装も行った。

ライブラリ更新

小さいプログラムなので依存ライブラリ自体が少なく、たいして手間はかからなかった。

ついでにeditionも2018から2021に更新。ガイドに記載されてる通り、cargo fix --editionしたりなんやかんやの手順でOK。

テスト作成

そもそもテスト書いてなかったのでついでに作成。だが、超ぞんざいな結合テストのみである。

クレート公開

ガイドに従えばOK。詰まる部分はないはず(Rustの公式ドキュメントすごく丁寧だな)。

CI/CD

RustのGitHub Actionsは全然わかってないが、actions-rust-lang/setup-rust-toolchainを使用した。しち面倒くさいcacheもよしなに設定してくれてそうな雰囲気がある。

Publish releaseしたら自動でcargo publishを実行するようにした。publishの際に用いるcrates.ioのAPIトークンはRepository secretsに保存し、ワークフローから参照させている。

あとは適当にBranch protection rulesCode security and analysisを設定して完了(これらは最初の段階でやるべきだって?いやまったくもってその通りです)。