지속적인 통합을 사용하여 다른 버전의 의존성을 가진 Haskell 라이브러리를 테스트하고 싶습니다. Hydra (http://nixos.org/hydra)로 이것을 수행하는 쉬운 방법이 있습니까?Hydra로 여러 개의 Haskell 의존성 버전 테스트하기
한 가지 해결책은 관심있는 종속성의 버전을 무시하고 다른 종속성에 Nixpkgs 버전을 사용하는 것입니다. 그러나, 다른 모든 Haskell 패키지가 재정의 된 패키지와 함께 호출되도록 보장하면서 하나의 Haskell 패키지 버전을 재정의하는 방법을 이해할 수는 없습니다.
여기에 release.nix
의 하스켈 종속성을 무시하려는 시도가 단순화되었습니다. 참조 된 Nix 표현식은 cabal2nix로 생성되었습니다. 빌드는 mson에 의존하는 aeson에 의존하는 json-assertions에 달려 있습니다. aeson은 오버라이드 된 mtl과 함께 호출되지 않기 때문에이 표현식은 두 가지 버전의 mtl을 지정합니다. mtl의 두 버전은 빌드를 실패하게 만듭니다.
let pkgs = import <nixpkgs> {};
in {
example = pkgs.haskellPackages.cabal.mkDerivation (self: {
pname = "example";
version = "0.1.0.0";
isExecutable = true;
src = ./.;
buildDepends = [ (pkgs.haskellPackages.ghcWithPackages (self:
[ self.cabalInstall_1_18_0_3
(self.callPackage (import ./mtl_2_2.nix) {
transformers = self.callPackage (import ./transformers_0_4_2_0.nix) {};
})
(self.callPackage (import ./jsonAssertions_1_0_4.nix) {})
]))
];
});
}
또 다른 해결책은 하스켈은 Nixpkgs에있는 것보다 다른 패키지의 호환 세트 공개 닉스 표현식을 사용하는 것입니다. 나는 아무 것도 발견하지 못했다.
예를 들어 사용할 수있는 종속성의 여러 버전에 대해 Hydra를 사용하여 Haskell 패키지를 테스트하는 온라인 프로젝트가 있습니까?