Releases: ipetkov/crane
Releases · ipetkov/crane
v0.17.0
0.17.0 - 2024-05-18
Added
cargoDoc
now supportsdocInstallRoot
to influence which directory will be
installed to$out/share
(which can be useful when cross-compiling). By
default$CARGO_TARGET_DIR
and$CARGO_BUILD_TARGET
(if set) will be taken
into accountcrateNameFromCargoToml
now supports selecting a derivation name by setting
package.metadata.crane.name
orworkspace.metadata.crane.name
in the root
Cargo.toml
vendorCargoDeps
,vendorCargoRegistries
,vendorGitDeps
, and
vendorMultipleCargoDeps
now support arbitrary overrides (i.e. patching) at
the individual crate/repo level when vendoring sources.
Changed
- Breaking
cargoAudit
no longer acceptscargoExtraArgs
(since it does
not support the regular set ofcargo
flags like most cargo-commands do, it
does not make much sense to propagate those flags through) buildTrunkPackage
now setsenv.TRUNK_SKIP_VERSION_CHECK = "true";
if not
specified
Deprecations
- In the future,
crateNameFromCargoToml
will stop considering
workspace.package.name
in the rootCargo.toml
when determining the crate
name. This attribute is not recognized by cargo (which will emit its own
warnings about it) and should be avoided going forward. - In the future,
crane.lib.${system}
will be removed. Please switch to using
(crane.mkLib nixpkgs.lib.${system})
as an equivalent alternative.
v0.16.6
v0.16.5
v0.16.4
0.16.4 - 2024-04-07
Added
- Added a warning if an unsupported version of nixpkgs is used
Changed
cargoNextest
now supports settingwithLlvmCov
which will automatically run
cargo llvm-cov nextest
. Note thatwithLlvmCov = true;
is (currently) only
supported whenpartitions = 1;
Fixed
inheritCargoArtifactsHook
andinstallCargoArtifactsHook
now correctly
handle the case whenCARGO_TARGET_DIR
is set to a nested directory- Dependency vendoring now correctly takes unused patch dependencies into
account
v0.16.3
0.16.3 - 2024-03-19
Changed
- Sources are now fetched crates.io's CDN, following cargo's (new) default behavior.
Fixed:
vendorMultipleCargoDeps
correctly listsregistries
as an optional
parameter
v0.16.2
0.16.2 - 2024-02-21
Changed
cleanCargoToml
now also strips out[lints]
and[workspace.lints]
definitions. This means avoiding unnecessarily rebuilding dependencies when
the lint definitions change, and it avoids issues with failing to build
dummified sources which might have violated a lint marked asdeny
or
forbid
Fixed
- Fixed an edge case with inheriting workspace dependencies where the workspace
dependency is a string (e.g.foo = "0.1.2"
) but the crate definition is a
table (e.g.foo = { workspace = true, optional = true }
)
v0.16.1
0.16.1 - 2024-01-28
Changed
buildDepsOnly
now ignores any outputs (besides the defaultout
)
Fixed
buildDepsOnly
no longer fails when workspace is configured with
#[deny(unused-extern-crates)]
vendorCargoDeps
(and friends) are now much more friendly to
cross-compilation definitions. Specifically, source vendoring will always
build dependencies to run on the build machine (and not for the host we're
cross compiling to).
v0.16.0
0.16.0 - 2024-01-18
Changed
- Breaking: dropped compatibility for Nix versions below 2.18.1
- Breaking: dropped compatibility for nixpkgs-23.05.
buildTrunkPackage
has a new argument,wasm-bindgen-cli
must be set
to avoid mismatching versions between the wasm-bindgen library and CLI tool.
Fixed
- Workspace inheritance of
lints
in git dependencies is now correctly handled
v0.15.1
0.15.1 - 2023-11-30
Changed
buildDepsOnly
will now assumecargoTestExtraArgs = "--no-run";
if not
specified (since there is no point to trying to run tests with the stripped
sources). To get the old behavior back, setcargoTestExtraArgs = "";
Fixed
buildTrunkPackage
'spreConfigure
script to fail quicker with a more
obvious error message if dependencies at not appropriately met
v0.15.0
0.15.0 - 2023-11-05
Added
cargoDeny
added for runningcargo-deny
.installCargoArtifactsHook
will now pass along the contents of
$zstdCompressionExtraArgs
as arguments tozstd
when compressing artifacts.
This allows for tailoring compression behavior, for example, by setting
zstdCompressionExtraArgs = "-19";
on the derivation.
Changed
- The
use-zstd
artifact installation mode now uses a chained, incremental
approach to avoid redundancy. Old behavior (taking a full snapshot of the
cargo artifacts) can be achieved by settingdoCompressAndInstallFullArchive = true
. - The default
installCargoArtifactsMode
has been changed touse-zstd
,
meaning cargo artifacts will be compressed to a series of incremental, zstd
compressed tarballs across derivations. To get the old behavior back, set
installCargoArtifactsMode = "use-symlink"
to any derivation which produces
cargo artifacts. - All dependencies (outside of
nixpkgs
) have been dropped from the (main)
flake.lock file so they do not pollute downstream projects' lock files.
Fixed
mkDummySrc
now properly handles file cleaning (and file including) when a
build is invoked with a--store ...
override