Releases: ipetkov/crane
Releases · ipetkov/crane
v0.4.0
0.4.0 - 2022-05-10
Changed
- Breaking: the previously named
utils
flake input has been renamed to
flake-utils
buildDepsOnly
now adds--all-targets
to the defaultcargo check
invocation. This allows caching all artifacts (including from
dev-dependencies) such that tools like clippy don't have to generate them
every time they run.- Templates now use the newer flake format accepted by Nix 2.8 (e.g.
{packages,overlays,devShells}.default
, etc.)
Fixed
- Fixed project and template flakes to avoid superfluous follows declaration for
flake-utils
- Fixed quoting of relative paths to allow building with external sources
v0.3.3
0.3.3 - 2022-02-24
Fixed
- Use
lib.groupBy
ifbuiltins.groupBy
isn't available (i.e. if a Nix version
earlier than 2.5 is used) - The cross compilation example also hows how to set the
HOST_CC
environment
variable which may be required by some build scripts to function properly
v0.3.2
v0.3.1
0.3.1 - 2022-02-17
Added
- Added template and example for cross compiling to other platforms
- Added template and example for building static binaries using musl
Changed
cargoClippy
andcargoTarpaulin
will install cargo artifacts by default (or
install an emptytarget
directory if there are none). This allows for more
easily chaining derivations if doing so is desired.- This can be disabled by setting
doInstallCargoArtifacts = false;
in the
derivation
- This can be disabled by setting
Fixed
- Fixed an issue where cross compiling would try to needlessly cross compile
rustc and cargo themselves
v0.3.0
0.3.0 - 2022-02-11
Added
downloadCargoPackageFromGit
has been added to handle downloading and
unpacking a cargo workspace from a git repositoryvendorCargoRegistries
has been added to handle vendoring crates from all
registries used in aCargo.lock
filevendorGitDeps
has been added to handle vendoring crates from all git sources
used in aCargo.lock
file
Changed
vendorCargoDeps
now automatically handles git dependencies by default- Git dependencies will be vendored as another source in the output derivation
- The cargo configuration is done such that the sources are available to use
when it decides, without overriding that crate for the entire workspace- For example, if your workspace contains a crate only used for testing
which has a git dependency of a crate used by other parts of the
workspace, then only that crate will use the git dependency. The rest of
the workspace will continue to use the crates.io version, just like cargo
behaves when used outside of Nix.
- For example, if your workspace contains a crate only used for testing
v0.2.1
0.2.1 - 2022-02-11
Changed
cargoFmt
will install cargo artifacts by default (or install an empty
target
directory if there are none). This allows for more easily chaining
derivations if doing so is desired.- This can be disabled by setting
doInstallCargoArtifacts = false;
in the
derivation
- This can be disabled by setting
v0.2.0
0.2.0 - 2022-01-30
Added
- Support for alternative cargo registries
Changed
urlForCargoPackage
now takes configured registries into account when
downloading crate sources- Breaking:
vendorCargoDeps
now vendors each unique registry as a subdirectory within
the derivation's output. Aconfig.toml
file is also placed at the output
root which contains the necessary configurations to point cargo at the
vendored sources. configureCargoVendoredDepsHook
is now aware of the updatedvendorCargoDeps
output format, and will use theconfig.toml
file it generates if it is
present. Otherwise it will fall back to the previous behavior (which is treat
the entire directory as only vendoring crates.io).- Source vendoring now uses
runCommandLocal
(instead ofrunCommand
) to
reduce network pressure in trying to fetch results which can quickly be built
locally - Searching for
Cargo.toml
or.cargo/config.toml
files is now done more
efficiently