10章4〜6節まで。
パケージの公開方法や自動テストについて学ぶ感じ。
TravisCIやAppVeyorの使い方はとても参考になった。
便利な世の中だなぁ。
僕の場合は、独学でパッケージ公開しようなんて思わなかっただろうから、この章だけでも本書を
僕が何かを公開する日が来るかは分からないけれども。
さて、本書も残すところ100ページほど。
11章のWebアプリと、12章の他言語との連携方法。
どちらもすぐに使いそうにないので、本書を読むのは一旦休憩。
しばらくRustで小さめのプログラムをいっぱい作って慣れようと思う。
まずは息抜き用の数当てゲームでも作ってみようかなー。
おぼえがき
パッケージ公開に向けて
cargo build --releaseで動作確認しておこうcargo runやcargo testにも--releaseはあるっぽい
cargo new --vcsでバージョン管理システムを指定できるっぽいCargo.lockはbinならバージョン管理対象にしておくべき- libクレートなら、
.gitignoreにCargo.lockが記載されるっぽい
- libクレートなら、
- githubあたりに公開するパッケージをコミットしておく
自動テスト
- TravisCI
- AppVeyor
- Windows向けのCI
- テストだけじゃなくて、下記もやっておくと良いかも
- スタイルチェック ... rustfmtやclippy
- テストの網羅性チェック ... kcovやtrapaulin
- ベンチマーク など
- TravisCiやAppVeyorのデプロイ機能を使えば、GitHubのリリースに置くことができるっぽい
- TravisCiやAppVeyorのテンプレートがあるっぽい
creates.ioへの公開
- パッケージ名の推奨はケバブケース(ハイフン区切り)
- ソースなどは
-を_にした、スネークケースで指定する
- ソースなどは
- 統一しておけば良かった気がするのだけれども。。。
- 公開前に、
Cargo.tmlやREADME.mdは整備しておこう - 一度公開すると、削除はできないので慎重に
- 代わりに
yankというコマンドが使えるらしい
- 代わりに
- 公開前にもう一度確認
cargo test --releasecargo doc --no-deps --opencargo install --path .で実行ファイルを生成して動作確認- コミット
cargo package- コミットした状態じゃないとエラーが出る
zcat target/package/package_name-version.crate |tar tf -- packageコマンドでまとめられた内容の確認
- gitタグ追加とリモートへプッシュ
git tag v0.1.0git push origin mastergit push origin v0.1.0− プッシュ後はCIが完了するを待っておこう
- creates.ioへ公開
cargo login <Your API Token>cargo publish
- 公開したクレートは、下記サイトで自動的に公開される
課題
- TravisCIの使い方
- 他のCIについても調べてみよう
- Circle CI
- GitHub Actions
- GitLab の何か
cargo packageでまとめられるファイルが書籍と差異あり。何か設定が足りてないのだろうか- 手元の環境だと
gitignoresが含まれているが、書籍にはなさげ(P439)
- 手元の環境だと
![実践Rust入門[言語仕様から開発手法まで] 実践Rust入門[言語仕様から開発手法まで]](https://images-fe.ssl-images-amazon.com/images/I/51e5B1Zx%2ByL._SL160_.jpg)
- 作者: κeen,河野達也,小松礼人
- 出版社/メーカー: 技術評論社
- 発売日: 2019/05/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る