Skip to content

Releases: ipetkov/crane

v0.4.0

11 May 00:45
v0.4.0
ca0bc62
Compare
Choose a tag to compare

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 default cargo 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

25 Feb 02:00
v0.3.3
8629d56
Compare
Choose a tag to compare

0.3.3 - 2022-02-24

Fixed

  • Use lib.groupBy if builtins.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

19 Feb 02:20
v0.3.2
b4b5146
Compare
Choose a tag to compare

0.3.2 - 2022-02-18

Fixed

  • Fixed handling git dependencies whose locked revision is not on the
    repository's main branch

v0.3.1

18 Feb 02:27
v0.3.1
196ab9d
Compare
Choose a tag to compare

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 and cargoTarpaulin 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

Fixed

  • Fixed an issue where cross compiling would try to needlessly cross compile
    rustc and cargo themselves

v0.3.0

12 Feb 04:38
v0.3.0
47d47ef
Compare
Choose a tag to compare

0.3.0 - 2022-02-11

Added

  • downloadCargoPackageFromGit has been added to handle downloading and
    unpacking a cargo workspace from a git repository
  • vendorCargoRegistries has been added to handle vendoring crates from all
    registries used in a Cargo.lock file
  • vendorGitDeps has been added to handle vendoring crates from all git sources
    used in a Cargo.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.

v0.2.1

12 Feb 03:36
v0.2.1
5fb0440
Compare
Choose a tag to compare

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

v0.2.0

31 Jan 00:55
v0.2.0
36c1236
Compare
Choose a tag to compare

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. A config.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 updated vendorCargoDeps
    output format, and will use the config.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 of runCommand) 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

v0.1.0

31 Jan 00:54
v0.1.0
55b3f63
Compare
Choose a tag to compare

Initial release