Cargo.lock をバージョン管理するや否や
   1 min read

cargo new --bin したパッケージに対して、たまたまデフォルで生成される .gitignore を用いずに https://gitignore.io/ で生成してものを用いていたのですが、 Cargo.lock ファイルの扱いが異なるように思われ、あれ?と思って見直してみました。

すると、 gitignore.io で作成した ignore ファイルに、次のようなことが書かれていました。

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html Cargo.lock

bin ならバージョン管理し、 lib ならバージョン管理しないのが正しいようです。 cargo new した場合はそれぞれそのような .gitignore が生成されていました。

次のリンクでは 1.3.7.0 以降、 publish 時もそれぞれそういう動作になる、ということを言っているのでしょうかね。