A python project I’m building uses setuptools-scm
to set the version - this requires the full git history including tags. I tried to use fetchgit
with the deepClone = true
option, but this still results in a shallow clone. Here’s the derivation:
let
pkgs = import <nixpkgs> { };
renku = import (pkgs.fetchgit {
url = "https://github.com/swissdatasciencecenter/renku-python";
rev = "refs/heads/nix";
deepClone = true;
sha256 = "0hlrnyym2ifivdczmy17r5ipyrs25ay0zr576wc4n283azccbkj5";
}) { } ;
in with pkgs;
mkShell {
pname = "renku";
version = "0.16.0";
buildInputs = [ renku ];
nativeBuildInputs = [ git ];
}
and git log
in the cloned directory:
$ git log /nix/store/45c1gh021h74sy8372kswdxyihf5z3r4-renku-python
commit 64afd8a31264e22c511c328f9392b6dc360ce1da (grafted, HEAD -> fetchgit)
Author: Rok Roškar <rok.roskar@example.com>
Date: Wed Sep 15 02:05:03 2021 +0200
chore: simplify nix build
Is there some other way that deepClone
is supposed to be passed to fetchgit
? Or has it been silently deprecated? I know there are many discussions about the downsides of leaveDotGit
and deepClone
because of unstable .git
contents.