Как отключить тестирование пакета Haskell в Nix? - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь создать среду разработки для Haskell, используя Nix. У меня есть default.nix, который просто ссылается на мой .cabal файл для списка пакетов. Но один пакет, который я хочу использовать, numhask-space, не будет собран, потому что тесты не пройдены. Поэтому я пытаюсь переопределить это и пропустить тесты.

Вот мой default.nix:

# default.nix
let
  pkgs = import <nixpkgs> { };
in
  pkgs.haskellPackages.developPackage {
    root = ./.;
    modifier = drv:
      pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages;
        [ cabal-install
          ghcid
        ]);
    source-overrides = {
      numhask-space = pkgs.haskell.lib.dontCheck pkgs.haskellPackages.numhask-space;
        };
  }

Но я не должен делать это правильно, потому что я получаю ошибку:

cabal2nix: user error (Failed to fetch source. Does this source exist? Source {sourceUrl = "/nix/store/w3pcvlj7b0k44v629k00kw2b0k86fcyj-numhask-space-0.3.0", sourceRevision = "", sourceHash = Guess "", sourceCabalDir = ""})

Короче говоря, как я могу переопределить этот haskell пакет, чтобы он не запускал тесты, и я мог установить его в своей среде разработки?

1 Ответ

1 голос
/ 11 апреля 2020

source-overrides переопределяет источники пакетов, то есть буквально атрибуты src, а не пакеты в целом. Вместо этого вы должны использовать аргумент overrides:

    overrides = self: super: {
      numhask-space = pkgs.haskell.lib.dontCheck super.numhask-space;
    };
...