Skip to content

Releases: ipetkov/crane

v0.16.0

19 Jan 00:57
v0.16.0
8f51514
Compare
Choose a tag to compare

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

30 Nov 22:51
v0.15.1
07c531a
Compare
Choose a tag to compare

0.15.1 - 2023-11-30

Changed

  • buildDepsOnly will now assume cargoTestExtraArgs = "--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, set cargoTestExtraArgs = "";

Fixed

  • buildTrunkPackage's preConfigure script to fail quicker with a more
    obvious error message if dependencies at not appropriately met

v0.15.0

05 Nov 21:06
v0.15.0
d535642
Compare
Choose a tag to compare

0.15.0 - 2023-11-05

Added

  • cargoDeny added for running cargo-deny.
  • installCargoArtifactsHook will now pass along the contents of
    $zstdCompressionExtraArgs as arguments to zstd 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 setting doCompressAndInstallFullArchive = true.
  • The default installCargoArtifactsMode has been changed to use-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

v0.14.3

18 Oct 00:27
v0.14.3
da6b58e
Compare
Choose a tag to compare

0.14.3 - 2023-10-17

Changed

  • craneUtils will now be built with the rustPlatform provided by nixpkgs
    instead of the currently configured toolchain. This should hopefully result in
    fewer surprises for those testing with really old MSRV toolchains.
  • devShell will now additionally include clippy and rustfmt from the
    currently configured toolchain

Fixed

  • replaceCargoLockHook now runs as a prePatch hook (rather
    than postUnpack) which correctly replaces the Cargo.lock in the source
    directory rather than the parent directory

v0.14.2

15 Oct 20:25
v0.14.2
8cb0282
Compare
Choose a tag to compare

0.14.2 - 2023-10-15

Added

  • replaceCargoLockHook can now be used to easily replace or insert a
    Cargo.lock file in the current derivation

Changed

  • cargoAudit will pass --ignore yanked by default if cargoAuditExtraArgs
    are not specified. This is because cargo-audit cannot check for yanked
    crates from inside of the sandbox. To get the old behavior back, set
    cargoAuditExtraArgs = "";.
  • mkCargoDerivation (and by extension anything which delegates to it) will now
    automatically use the value of cargoLock or the contents of
    cargoLockContents/cargoLockParsed to replace the workspace Cargo.lock
    file. To disable this behavior, set doNotReplaceCargoLock = true;.

Fixed

  • Fixed handling of Cargo workspace inheritance for git-dependencies where said
    crate relies on reading non-TOML metadata (i.e. comments) from its Cargo.toml
    at build time. (#407)
  • Fixed handling of dummy target names to avoid issues with cargo doc.
    (#410)
  • When using installCargoArtifactsMode = "use-zstd"; all files will be marked
    as user-writable while compressing
  • removeReferencesToVendoredSources now signs aarch64-darwin binaries. (#418)

v0.14.1

23 Sep 23:25
v0.14.1
3de322e
Compare
Choose a tag to compare

0.14.1 - 2023-09-23

Fixed

  • Fixed a bug where buildPackage would fail to inherit artifacts from
    dependency crates if cargoArtifacts was not explicitly specified.

v0.14.0

22 Sep 05:12
v0.14.0
9dae37b
Compare
Choose a tag to compare

0.14.0 - 2023-09-21

Added

  • Added devShell, a thin wrapper around pkgs.mkShell which automatically
    provides cargo and rustc.
  • Added the ability to specify output hashes of git dependencies for fully
    offline evaluations. The outputHashes attribute can now be optionally
    specified in vendorCargoDeps, vendorGitDeps, vendorMultipleCargoDeps, or
    anything else which delegates to them.

Changed

  • Breaking (technically): buildDepsOnly, buildPackage, cargoBuild,
    cargoClippy, cargoDoc, cargoLlvmCov, and cargoTest's defaults have
    been changed such that if cargoExtraArgs have not been set, a default value
    of --locked will be used. This ensures that a project's committed
    Cargo.lock is exactly what is expected (without implicit changes at build
    time) but this may end up rejecting builds which were previously passing. To
    get the old behavior back, set cargoExtraArgs = "";
  • Breaking: cargoDoc will no longer install cargo artifacts by default.
    Set doInstallCargoArtifacts = true; to get the old behavior back.
  • cargoDoc will now install generated documentation in $out/share/doc
  • Fixed a bug when testing proc macro crates with cargoNextest on macOS.
    (#376)
  • Replaced various internal usages of runCommandLocal with runCommand for
    more optimal behavior when downloading cached artifacts

v0.13.1

22 Sep 05:11
v0.13.1
ef5d11e
Compare
Choose a tag to compare

0.13.1 - 2023-08-22

Changed

  • buildTrunkPackage will now use dart-sass instead of nodePackages.sass
  • Vendoring git dependencies will now always resolve symlinks inside of a
    crate's directory. This allows for symlinks inside of a crate's directory to
    possibly refer to files at the root of the git repo itself (via symlink) and
    have those contents preserved during vendoring.

v0.13.0

07 Aug 15:45
v0.13.0
6c25eff
Compare
Choose a tag to compare

0.13.0 - 2023-08-07

Added

  • buildPackage now supports installing dylib targets
  • Added support for sparse registries

Changed

  • Breaking: dropped compatibility for Nix versions below 2.13.3
  • Breaking: dropped compatibility for nixpkgs-22.05. nixpkgs-23.05 and
  • Breaking (technically): if buildPackage is called without setting
    cargoArtifacts, the default buildDepsOnly invocation will now stop running
    any installation hooks
  • Breaking (technically): buildPackage no longer installs cargo binary
    dependencies (i.e. when the bindeps feature is used) by default
  • inheritCargoArtifactsHook will now symlink dependency .rlib and .rmeta
    files. This means that derivations which reuse existing cargo artifacts will
    run faster as fewer files (and bytes!) need to be copied around. To disable
    this behavior, set doNotLinkInheritedArtifacts = true;.
  • cargoTarpaulin will now set doNotLinkInheritedArtifacts = true; unless
    otherwise specified
  • Update crane-utils dependencies for successful build in nightly Rust (2023-06-28)

v0.12.2

07 Jun 03:38
v0.12.2
8ab1a49
Compare
Choose a tag to compare

0.12.2 - 2023-06-06

Added

  • Added support for the Trunk wasm app build tool

Changed

  • resolver key is no longer cleaned from Cargo.toml

Fixed

  • buildTrunkPackage will now strip references to store files by default