Full Course Layout Change with a shuffle. (#54)
* Restructure entire course into a single library with multiple executable definitions. Makes working through the course a bit easier with respect to sandboxes, nix shells, and stack caching. Should be a side benefit of giving editor tooling a bit of an easier time. Lowers switch time between course levels.
* Readme updates to suit new structure.
Add comment to cabal file.
* Syntax error in Travis yml file.
Not sure where yet.
* Applied some linting suggestions to travis file
* Fixed missing comments in travis yml, removed duplicate executable entry in the cabal file
* Added changelog file, vcs entry to cabal file
* Fixing travis file, WIP.
* Still trying
* Added cabal.project file
* Still trying (Travis)
* Moved var declaration to higher level in travis.yml file.
* Forgo the complexity of hvrs script and go low-tech.
* Remove Haddocks from stack build.
Add extra-deps because what was a working stack build is now failing for some
reason, despite having the same version bounds and using the same LTS as before.
* Added more deps to extra-deps to appease the stackbeast.
* Updated base README
* Readme tweaks, level 03 test updates
* Moved Level07 to Level05, bumped other levels accordingly.
* Moved 'Main' to 'Core'.
Updated READMEs, first pass.
Updated Cabal file.
Updated Tests to handle change of Main to Core.
* Proof read #3616
Lots of small fixes for file paths, wording, some additional exercises. Fixed up
the tests to be more consistent as they've been reordered a few times and mostly
left to rot.
Readmes updated where needed.
New exercise added to level07 for using the general `ExceptT` type.
* Fix up some tests and avoid any more dynamic linking errors, I think
* Fix up cabal config for doctests, missing packages and some exposed-modules
* Removed use of Semigroup in tests to avoid CPP in cabal file for including semigroups package. Added bounds to base dependency for doctests test-suite
2018-05-08 02:02:51 +03:00
|
|
|
{ nixpkgs ? import <nixpkgs> {}
|
|
|
|
, compiler ? "default"
|
|
|
|
}:
|
2017-09-18 03:14:29 +03:00
|
|
|
let
|
|
|
|
inherit (nixpkgs) pkgs;
|
|
|
|
|
|
|
|
haskellPackages = if compiler == "default"
|
|
|
|
then pkgs.haskellPackages
|
|
|
|
else pkgs.haskell.packages.${compiler};
|
|
|
|
|
2018-12-07 03:16:13 +03:00
|
|
|
sources = {
|
|
|
|
tasty-wai = import ./nix/tasty-wai.nix;
|
|
|
|
waarg = import ./nix/waargonaut.nix;
|
|
|
|
};
|
|
|
|
|
|
|
|
waarg-deps = import "${sources.waarg}/waargonaut-deps.nix";
|
|
|
|
|
|
|
|
modifiedHaskellPackages = haskellPackages.override (old: {
|
|
|
|
overrides = pkgs.lib.composeExtensions
|
|
|
|
(old.overrides or (_: _: {}))
|
|
|
|
(self: super: (waarg-deps pkgs self super) // {
|
|
|
|
tasty-wai = self.callCabal2nix "tasty-wai" sources.tasty-wai {};
|
|
|
|
waargonaut = self.callCabal2nix "waargonaut" sources.waarg {};
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
drv = modifiedHaskellPackages.callPackage ./applied-fp-course.nix {};
|
2017-09-18 03:14:29 +03:00
|
|
|
|
|
|
|
in
|
2018-12-07 03:16:13 +03:00
|
|
|
drv
|