Skip to content

Releases: ipetkov/crane

v0.23.1

15 Feb 02:11
v0.23.1
a2812c1

Choose a tag to compare

0.23.1 - 2026-02-14

Added

  • cleanCargoToml can now be customized using the cleanCargoTomlFilter argument
  • mkDummySrc can now pass the cleanCargoTomlFilter argument to cleanCargoToml
  • craneLib.filters exposes cargoTomlAggressive, cargoTomlConservative, and
    cargoTomlDefault for composition of custom filters for cleanCargoToml
  • downloadCargoPackageFromGit now uses cargo package -l for generating the file
    list, resulting in more accurate include/exclude rule interpretation. This fixes
    builds in some dependencies, notably aws-lc-rs from git.

v0.23.0

13 Jan 16:03
v0.23.0
4b65276

Choose a tag to compare

0.23.0 - 2026-01-13

Changed

  • Breaking: mkCargoDerivation now no longer automatically includes the
    remapPathPrefixHook as a nativeBuildInput. Unfortunately, this hook's
    implementation will lead to cache invalidation if built on a Nix
    implementation outside of NixOS (see the API documentation for more details).
    Thus using this hook is now opt-in.

v0.22.0

26 Dec 19:02
v0.22.0
01bc1d4

Choose a tag to compare

0.22.0 - 2025-12-26

Changed

  • Breaking: dropped compatibility for Nix versions below 2.31.2
  • Breaking: dropped compatibility for nixpkgs-25.05
  • remapPathPrefixHook is now do nothing when building on Darwin since the
    current implementation results in validating build caches due to Nix behavior
    differences between Linux and Darwin.

Fixed

  • mkCargoDerivation will now set noCompressDebugSectionsSet to disable
    compressing debug sections (when remapPathPrefixHook is active and running)
    on platforms which do not support it

v0.21.3

05 Dec 03:11
v0.21.3
2b3a5a8

Choose a tag to compare

0.21.3 - 2025-12-04

Added

  • Add remapSourcePathPrefixHook, which can map source code file paths to their
    correct location within the Nix store. By default this hook will run for any
    dontStrip = true builds, but can otherwise be controlled using
    doRemapPathPrefix.

Fixed

  • downloadCargoPackageFromGit now correctly includes any files listed in a
    .ignore file (but otherwise not listed in .gitignore) when unpacking git
    checkouts.

v0.21.2

07 Nov 17:30
v0.21.2
c43a1f1

Choose a tag to compare

0.21.2 - 2025-11-07

Changed

  • mkDummySrc now accepts dummyBuildrs to customize the dummy source used for
    build scripts specifically. If not specified, the value of dummyrs will be
    used, otherwise, the existing default dummy build script will be used.

Fixed

  • Fix Windows pthreads being added to non-Windows platforms when cross compiling

v0.21.1

25 Sep 00:23
v0.21.1
95d528a

Choose a tag to compare

0.21.1 - 2025-09-24

Fixed

  • The default dummy source used by mkDummySrc now additionally works for the
    amdgpu target out of the box
  • removeReferencesToRustToolchainHook now handles exclusions case
    insensitively
  • cleanCargoToml now retains targets' harness attribute if defined
  • cargoTest, cargoDocTest, and cargoNextest will log a warning if doCheck = false;
  • installCargoArtifactsHook gracefully handles (ignores) situations where no
    cargo artifacts are generated by the derivation

v0.21.0

19 Jul 17:45
v0.21.0
544d09f

Choose a tag to compare

0.21.0 - 2025-07-19

Changed

  • Breaking: dropped compatibility for Nix versions below 2.28.3
  • Breaking: dropped compatibility for nixpkgs-24.11
  • Windows cross builds provides pthreads as it is required for most crates.
  • registryFromSparse now passes fetchurlExtraArgs to the initial query for the
    registry's config.json

v0.20.3

24 Apr 00:35
v0.20.3
efd3668

Choose a tag to compare

0.20.3 - 2025-04-23

Added

  • mkCrossToolchainEnv is now available for setting up some default
    cross-compilation environment variables and derivation arguments

Changed

  • Vendoring git dependencies now respects Cargo.toml includes and excludes
  • mkCargoDerivation now configures the cross-compilation toolchain by default
    using the newly added mkCrossToolchainEnv function. To select the utilized
    cross compiler, the stdenv argument now also accepts a selector function,
    taking an arbitrary pkgs instantiation as an argument. This behavior can be
    turned off by setting doIncludeCrossToolchainEnv = false;.

v0.20.2

09 Mar 00:26
v0.20.2
60202a2

Choose a tag to compare

0.20.2 - 2025-03-08

Changed

  • craneUtils (used internally for vendoring git dependencies) now uses
    importCargoLock to fetch its own dependencies instead of the (now
    deprecated) fetchCargoTarball method.
  • cleanCargoToml now preserves the proc-macro attribute of any defined
    targets

Fixed

  • buildTrunkPackage no longer ignores installPhase and installPhaseCommand args.
  • mkDummySrc now supports embedded proc-macros.
  • removeReferencesToRustToolchainHook now handles file names which contain
    whitespace
  • removeReferencesToVendoredSourcesHook now handles file names which contain
    whitespace

v0.20.1

08 Feb 22:20
v0.20.1
112e659

Choose a tag to compare

0.20.1 - 2025-02-08

Added

  • cargoNextest now supports passing cargoNextestPartitionsExtraArgs to each
    cargo nextest partition run.
  • Add self-reference craneLib to crane lib instance.
  • Add removeReferencesToRustToolchainHook, which, by default, removes
    references to the Rust toolchain from all installed binaries

Changed

  • buildPackage now includes removeReferencesToRustToolchainHook as a native
    dependency. To disable automatically removing references to the Rust
    toolchain, set doNotRemoveReferencesToRustToolchain = true;
  • mkCargoDerivation now will also append the rustc package to the
    derivation's nativeBuildInputs