github ipetkov/crane v0.7.0

latest releases: v0.19.1, v0.19.0, v0.18.1...
2 years ago

0.7.0 - 2022-09-28

Added

  • cargoDoc can now be used for building the documentation of a workspace
  • cleanCargoSource can now be used to filter sources to only include cargo and
    Rust files (and avoid rebuilds when irrelevant files change).
    filterCargoSources is the underlying filter implementation and can be
    composed with other filters
  • removeReferencesToVendoredSourcesHook defines a post-install hook which will
    remove any references to vendored sources from any installed binaries. Useful
    for preventing nix from considering the binaries as having a (runtime)
    dependency on said sources

Changed

  • Breaking: mkCargoDerivation now includes a default configurePhase
    which does nothing but run the preConfigure and postConfigure hooks. This
    is done to avoid breaking builds by including puts happen to have setup-hooks
    which try to claim the configure phase (such as cmake). To get the old
    behavior back, set configurePhase = null; in the derivation.
  • mkCargoDerivation (along with any of its callers like cargoBuild,
    buildPackage, etc.) now accept a stdenv argument which will override the
    default environment (coming from pkgs.stdenv) for that particular derivation
  • mkDummySrc now accepts extraScript which can be used to run a custom
    script, and therefore customize what the dummy source contains
  • buildDepsOnly now accepts dummySrc as a way to directly pass in the dummy
    source to be used. Automatically derived via args.src if not specified.

Fixed

  • cargoAudit properly keeps any audit.toml files when cleaning the source
  • buildPackage now has more robust checks to ensure that all references to
    vendored sources are removed after installation (which avoids consumers of the
    final binaries having to download the sources as well)
  • mkDummySrc how handles build scripts in a manner which ensures cargo runs
    the real script later (instead of thinking it has not changed)

Don't miss a new crane release

NewReleases is sending notifications on new releases.