😎
cargo-semver-checksメモ [blessed.rsシリーズ3]
概要
こちらのリストにあるものを見て書いたメモの共有です。
内容はまとめておらず、順番もぐちゃぐちゃ。あくまでメモになります。
また、網羅的にメモしているわけではなく、自分が必要だと思ったもののみメモしているため、内容が偏っているかもしれません。
今回はcargo-semver-checksについてです。
cargo-semver-checksとは
SemVerの仕様にのっとった互換性ルールをチェックするリンター
SemVerとは
Rust(cargo)ではSemantic Versioning(SemVer)を使用してバージョン管理を行っている。
「1.23.45」といったように"."で区切った3つの数字で表される。
前から順にメジャーバージョン、マイナーバージョン、パッチバージョンと呼ぶ。
APIの変更に互換性のない場合はメジャーバージョンを、後方互換性があり機能性を追加した場合はマイナーバージョンを、後方互換性を伴うバグ修正をした場合はパッチバージョンを上げる
SemVerの仕様
また、こちらでライブラリの互換性を保つためのルールが文章化されている
使用方法
インストール方法などは上に
インストールされていればデフォルトの設定だと以下で確認できる
$ cargo semver-checks
また、github actionsを使用する際には以下でできる
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
versionの参照
デフォルトではcrate.ioに公開してあるものを参照して互換性の確認を行う
ここにあるフラグを指定すれば、他の方法でも確認できる
何で比較しているか
rustdocのjson出力からデータを取得して比較してる
Contributing
コントリビュートしたい場合は上記を参照
Discussion