all-hies/sources.nix
Silvan Mosberger b8fb659620
Project revamp (#64)
* Remove update command

Will be replaced with haskell.nix

* Project revamp using haskell.nix

- Only unstable HIE
- Only GHC 8.6.5 and 8.8.3 (or more in the future), but on Linux for both glibc 2.27 (NixOS 19.09) and glibc 2.30 (NixOS 20.03/unstable)
- Using haskell.nix for the builds. This makes evaluation slower, but makes things simpler overall.
- No global installation intended anymore, instead you add HIE to your projects shell.nix file (to be documented in future commits)

Co-authored-by: galagora <45048741+galagora@users.noreply.github.com>

* Remove old files not needed anymore with the revamp

* Add new haskell.nix-generated files

* Add haskell.nix template

* Add nixpkgs infra template

* Build, push and test using GitHub Actions

This builds and pushes all necessary configurations using GitHub Actions
automatically. Also tests the templates

* Update Readme for revamp

* Add template documentation

* Add warning for unsupported versions

* Add haskell.nix + stack template

* Minor Readme changes

* Remove check-cache script

* Don't CI on pushes to haskell.nix

* Use same haskell.nix version for stack/cabal + cleanups

Co-authored-by: galagora <45048741+galagora@users.noreply.github.com>
2020-07-25 15:25:19 +02:00

36 lines
1.2 KiB
Nix

let
haskellNixVersion = "af5998fe8d6b201d2a9be09993f1b9fae74e0082";
haskellNixSrc = fetchTarball {
url = "https://github.com/input-output-hk/haskell.nix/tarball/${haskellNixVersion}";
sha256 = "0z5w99wkkpg2disvwjnsyp45w0bhdkrhvnrpz5nbwhhp21c71mbn";
};
haskellNix = import haskellNixSrc {};
glibcSpecificPkgs = {
"glibc-2.30" = import haskellNix.sources.nixpkgs-2003 haskellNix.nixpkgsArgs;
"glibc-2.27" = import haskellNix.sources.nixpkgs-1909 haskellNix.nixpkgsArgs;
};
pkgs = glibcSpecificPkgs."glibc-2.30";
hie = rec {
# unstable-2020-05-23
version = "fe630a1e31232013549518909e511924e19af4af";
src = fetchTarball {
url = "https://github.com/haskell/haskell-ide-engine/archive/${version}.tar.gz";
sha256 = "1lbbzk9kj39h79wb8imv5s22y592cyyrk06y24glrcxh5bzghb9l";
};
};
# String gets written to the generated directory, so CI can quickly know
# whether materialization files need to be updated
materializationId = builtins.toFile "materialization-id" ''
These materialization files were generated with
haskell.nix ${haskellNixVersion}
haskell-ide-engine ${hie.version}
'';
in {
inherit glibcSpecificPkgs pkgs hie materializationId;
}