vergen 4.0.0

Generate version related functions
Documentation

vergen

Current Release

Crates.io Crates.io Crates.io

Release 4.0 Breaking Changes

  • The main entry point for use has changed from generate_cargo_keys to gen
  • There are now 3 features that allow you to control what instructions can be generated (build, git, and rustc).
    • The build feature enables the VERGEN_BUILD_* instructions.
    • The git feature enables the VERGEN_GIT_* instructions, the cargo:rerun-if-changed instructions, and the REBUILD_ON_HEAD_CHANGE flag.
    • The rustc feature enables the VERGEN_RUSTC_* instructions.
    • By default, all three features are enabled.
    • You can build with all three features disabled, which basically make the gen function a no-op.
    • You can still use ConstantsFlags to toggle individual cargo instructions.
  • The generated instructions have been normalized. Therefore, you may need to update what env variable you are referring to in code. I've included a list below of the full set of instructions that can be generated for reference.
cargo:rustc-env=VERGEN_BUILD_DATE=2021-02-12
cargo:rustc-env=VERGEN_BUILD_TIMESTAMP=2021-02-12T01:54:15.134750+00:00
cargo:rustc-env=VERGEN_GIT_BRANCH=feature/git2
cargo:rustc-env=VERGEN_GIT_COMMIT_DATE=2021-02-11T20:05:53-05:00
cargo:rustc-env=VERGEN_GIT_SEMVER=v3.2.0-86-g95fc0f5
cargo:rustc-env=VERGEN_GIT_SEMVER_LIGHTWEIGHT=blah-33-g95fc0f5
cargo:rustc-env=VERGEN_GIT_SHA=95fc0f5d066710f16e0c23ce3239d6e040abca0d
cargo:rustc-env=VERGEN_GIT_SHA_SHORT=95fc0f5
cargo:rustc-env=VERGEN_RUSTC_CHANNEL=nightly
cargo:rustc-env=VERGEN_RUSTC_COMMIT_DATE=2021-02-10
cargo:rustc-env=VERGEN_RUSTC_COMMIT_HASH=07194ffcd25b0871ce560b9f702e52db27ac9f77
cargo:rustc-env=VERGEN_RUSTC_HOST_TRIPLE=x86_64-apple-darwin
cargo:rustc-env=VERGEN_RUSTC_LLVM_VERSION=11.0
cargo:rustc-env=VERGEN_RUSTC_SEMVER=1.52.0-nightly
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/HEAD
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/refs/heads/feature/git2
  • Under the hood, the Commands used for git have been removed in lieu of using the git2 library directly.
  • git2 is also used to determine the HEAD path and the path that it refers to for the cargo:rerun-if-changed instructions. This is more reliable then the manual method that was in place before.
  • I've migrated the CI stuff from Travis to GitHub Actions.

Build Status

CI

Code Coverage

codecov

Documentation

docs.rs

Example Usage

See the documentation at docs.rs for example usage

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.