haskell.nix/build.nix
Rodney Lorrimar 2e49d28de0 Reduce closure size of nix-tools (#178)
* Buildkite: Add a test for nix-tools closure size

The limit is a rather generous 500MB.

* nix-tools: Reduce closure size

1. Run justStackExecutables on hpack to remove dependency on ghc and
   libraries.

   Ideally we would be using the component builder on hpack.

2. Replace nix-prefetch-scripts with nix-prefetch-git. stack.yaml
   supports mercurial repositories but I've never seen it used.
2019-06-15 07:18:06 +02:00

44 lines
1.6 KiB
Nix

# This file contains the package set used by the release.nix jobset.
#
# It is separate from default.nix because that file is the public API
# of Haskell.nix, which shouldn't have tests, etc.
{ pkgs ? import nixpkgs nixpkgsArgs
, nixpkgs ? ./nixpkgs
# Provide args to the nixpkgs instantiation.
, system ? builtins.currentSystem
, crossSystem ? null
, config ? {}
, nixpkgsArgs ? { inherit system crossSystem config; }
}:
let
haskell = import ./default.nix { inherit pkgs; };
in {
inherit (haskell) nix-tools source-pins;
tests = import ./test/default.nix { inherit haskell; };
# Scripts for keeping Hackage and Stackage up to date, and CI tasks.
maintainer-scripts = pkgs.dontRecurseIntoAttrs {
update-hackage = haskell.callPackage ./scripts/update-hackage.nix {};
update-stackage = haskell.callPackage ./scripts/update-stackage.nix {};
update-pins = haskell.callPackage ./scripts/update-pins.nix {};
update-docs = haskell.callPackage ./scripts/update-docs.nix {
generatedOptions = import ./scripts/options-doc.nix {
# nixpkgs unstable changes "Option has no description" from an
# error into a warning. That is quite helpful when hardly any
# of our options are documented, thanks @oxij.
pkgs = import (pkgs.fetchFromGitHub {
owner = "NixOS";
repo = "nixpkgs";
rev = "4ab1c14714fc97a27655f3a6877386da3cb237bc";
sha256 = "16lcj9552q2jfxc27j6116qkf2vl2dcj7vhg5gdq4qi51d891yhn";
}) {};
};
};
check-hydra = haskell.callPackage ./scripts/check-hydra.nix {};
check-closure-size = haskell.callPackage ./scripts/check-closure-size.nix {};
};
}