vergen
, when used in conjunction with cargo build scripts can emit the following:
cargo:rustc-env=VAR=VALUE
for each feature you have enabled. These can be referenced with the env!
macro in your code.cargo:rerun-if-changed=.git/HEAD
if the git feature is enabled. This is done to ensure any git instructions are regenerated when commits are made.cargo:rerun-if-changed=.git/<path_to_ref>
if the git feature is enabled. This is done to ensure any git instructions are regenerated when commits are made.cargo:warning
outputs if the
fail_on_error
feature is not enabled and the requested variable is defaulted through error or
the idempotent
flag.cargo:rerun-if-changed=build.rs
to rerun instruction emission if the build.rs
file changed.cargo:rurun-if-env-changed=VERGEN_IDEMPOTENT
to rerun instruction emission if the VERGEN_IDEMPOTENT
environment variable has changed.cargo:rurun-if-env-changed=SOURCE_DATE_EPOCH
to rerun instruction emission if the SOURCE_DATE_EPOCH
environment variable has changed.Special thanks to the sponsors of this project * tryretool
If you wish to refer to version 7 you can find that branch here
The current minimum supported rust version is 1.65.0
See the documentation at docs.rs for example usage
git2
dependencyThis update to git2 picked up some security related features. In docker environments especially, this requires a safe.directory
configuration. There are a couple methods for achieving this.
1. If you control the build, you can add git config --global --add safe.directory /workspace
to the build file.
2. If you do not control the docker build, you can add git config --global --add safe.directory /workspace &&
before the actual command you are running when using docker run.
3. If you do not control the docker build, you can mount a .gitconfig
file at /root
that includes the safe.directory
configuration. I use this method myself when building static binaries with clux/muslrust.
docker run -v cargo-cache:/root/.cargo/registry -v (pwd):/volume -v ~/.gitconfig:/root/.gitconfig:ro --rm -t clux/muslrust:stable cargo build --release
See https://github.com/rustyhorde/vergen/pull/126 for more discussion on the topic. If the solutions above do not work for your usecase, you can pin your vergen
version to 7.4.3. Feel free to open issues about this. If it comes up enough, I could support a version of vergen
with the older git2
dependency.
See the documentation at CONTRIBUTING.md
Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) at your option.
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.