Skip to content

Commit

Permalink
The start of the great simplifying (hopefully)
Browse files Browse the repository at this point in the history
Gonna try mono-morphising the Beam stuff and poly ... uh, morphising
app-level stuff. There's more yet to do.
  • Loading branch information
bradparker committed Dec 31, 2018
1 parent 20d0a92 commit 81ce1db
Show file tree
Hide file tree
Showing 44 changed files with 993 additions and 1,076 deletions.
2 changes: 2 additions & 0 deletions .gitignore
@@ -1,5 +1,7 @@
.envrc
.ghc.environment.*
database/pgdata
dist
dist-newstyle
logs
result
18 changes: 3 additions & 15 deletions .travis/shell.nix
@@ -1,18 +1,6 @@
let
compiler = "default";

nixpkgs = import ../nix/packages {
inherit compiler;
};

nixpkgs = import ../nix/packages;
tools = import ./tools.nix nixpkgs;

env = (import ../. {
inherit compiler;
}).env;
package = import ../.;
in
nixpkgs.lib.overrideDerivation env (drv: {
nativeBuildInputs =
drv.nativeBuildInputs ++
tools;
})
(nixpkgs.haskell.lib.addBuildDepends package tools).env
6 changes: 1 addition & 5 deletions default.nix
@@ -1,8 +1,4 @@
{ compiler ? "default"
}:
let
nixpkgs = import ./nix/packages {
inherit compiler;
};
nixpkgs = import ./nix/packages;
in
nixpkgs.haskellPackages.callPackage ./package.nix {}
20 changes: 20 additions & 0 deletions nix/packages/base-noprelude/default.nix
@@ -0,0 +1,20 @@
{ lib
, fetchFromGitHub
, ...
}:
self:
super:
let
base-noprelude-source = fetchFromGitHub {
owner = "haskell-hvr";
repo = "base-noprelude";
rev = lib.fileContents ./rev;
sha256 = lib.fileContents ./sha;
};
in
{
base-noprelude = self.callPackage (self.haskellSrc2nix {
name = "base-noprelude";
src = base-noprelude-source;
}) {};
}
1 change: 1 addition & 0 deletions nix/packages/base-noprelude/rev
@@ -0,0 +1 @@
e5aabbef8187cbc41a16b2565d93f9d7bc60d68e
1 change: 1 addition & 0 deletions nix/packages/base-noprelude/sha
@@ -0,0 +1 @@
0jj9z2jqcpmdn51mca7807gcym8k4sbd906z0ckr33vblkaa6vd2
2 changes: 1 addition & 1 deletion nix/packages/beam/rev
@@ -1 +1 @@
5604d871f6d1e7625e9ff25b7b6fe694d20aaa9f
2489a213cdee6341de46a3aa015c35067f4d6076
2 changes: 1 addition & 1 deletion nix/packages/beam/sha
@@ -1 +1 @@
0av6i8mwx65znj6xii6c8znz4074n14r3v5imxbhypi88kv232hg
1rv7xz5i0n8wfyzsz612yry2xsgp1hgp9m4pc95nfg5yp1481y97
29 changes: 13 additions & 16 deletions nix/packages/default.nix
@@ -1,19 +1,16 @@
{ compiler ? "default"
}:
let
haskellPackages = compiler: nixpkgs:
if compiler == "default"
then nixpkgs.haskellPackages
else nixpkgs.haskell.packages.${compiler};
in
import ./nixpkgs {
config = {
packageOverrides = nixpkgs: {
haskellPackages = (haskellPackages compiler nixpkgs).override {
overrides = self: super:
(import ./beam nixpkgs self super) //
(import ./validation nixpkgs self super);
import ./nixpkgs {
config = {
packageOverrides = nixpkgs: {
haskellPackages = nixpkgs.haskellPackages.override {
overrides = self: super: {
inherit (import ./beam nixpkgs self super)
beam-core
beam-postgres
beam-migrate;
inherit (import ./base-noprelude nixpkgs self super)
base-noprelude;
};
};
};
}
};
}
2 changes: 1 addition & 1 deletion nix/packages/nixpkgs/rev
@@ -1 +1 @@
e0d250e5cf6d179e1ccc775472d89718f61fcfd1
2018654322acefa7e9fcbe45d2541489b0a88fdd
2 changes: 1 addition & 1 deletion nix/packages/nixpkgs/sha
@@ -1 +1 @@
1iqpjz4czcpghbv924a5h4jvfmj6c8q6sl3b1z7blz3mi740aivs
02n49f32cvrbzj938wlndiay6h1k2qbrz12j8gm58qj3vy8ig9c1
17 changes: 0 additions & 17 deletions nix/packages/validation/default.nix

This file was deleted.

1 change: 0 additions & 1 deletion nix/packages/validation/rev

This file was deleted.

1 change: 0 additions & 1 deletion nix/packages/validation/sha

This file was deleted.

1 change: 0 additions & 1 deletion nix/tools.nix
Expand Up @@ -8,5 +8,4 @@ nixpkgs:
nixpkgs.haskellPackages.ghcid
nixpkgs.haskellPackages.hindent
nixpkgs.haskellPackages.hlint
nixpkgs.haskellPackages.hpack
]
40 changes: 19 additions & 21 deletions package.nix
@@ -1,12 +1,12 @@
{ mkDerivation, aeson, base-noprelude, beam-core, beam-postgres
, bytestring, conduit, containers, data-default, hpack, hspec
, hspec-wai, hspec-wai-json, http-types, insert-ordered-containers
, jose, lens, monad-control, optparse-applicative
, postgresql-simple, relude, resource-pool, scrypt, servant
, servant-auth, servant-auth-server, servant-auth-swagger
, servant-server, servant-swagger, servant-swagger-ui
, servant-swagger-ui-core, stdenv, swagger2, text, time
, transformers, validation, vector, wai, wai-extra, warp
, bytestring, conduit, containers, data-default, hspec, hspec-wai
, hspec-wai-json, http-types, insert-ordered-containers, jose, lens
, monad-control, mtl, optparse-applicative, postgresql-simple
, relude, resource-pool, scrypt, servant, servant-auth
, servant-auth-server, servant-auth-swagger, servant-server
, servant-swagger, servant-swagger-ui, servant-swagger-ui-core
, stdenv, swagger2, text, time, transformers, validation, vector
, wai, wai-extra, warp
}:
mkDerivation {
pname = "realworld-conduit";
Expand All @@ -17,33 +17,31 @@ mkDerivation {
libraryHaskellDepends = [
aeson base-noprelude beam-core beam-postgres bytestring conduit
containers data-default http-types insert-ordered-containers jose
lens monad-control optparse-applicative postgresql-simple relude
resource-pool scrypt servant servant-auth servant-auth-server
servant-auth-swagger servant-server servant-swagger
servant-swagger-ui servant-swagger-ui-core swagger2 text time
transformers validation vector wai wai-extra warp
lens monad-control mtl optparse-applicative postgresql-simple
relude resource-pool scrypt servant servant-auth
servant-auth-server servant-auth-swagger servant-server
servant-swagger servant-swagger-ui servant-swagger-ui-core swagger2
text time transformers validation vector wai wai-extra warp
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [
aeson base-noprelude beam-core beam-postgres bytestring conduit
containers data-default http-types insert-ordered-containers jose
lens monad-control optparse-applicative postgresql-simple relude
resource-pool scrypt servant servant-auth servant-auth-server
servant-auth-swagger servant-server servant-swagger
servant-swagger-ui servant-swagger-ui-core swagger2 text time
transformers validation vector wai wai-extra warp
lens monad-control mtl optparse-applicative postgresql-simple
relude resource-pool scrypt servant servant-auth
servant-auth-server servant-auth-swagger servant-server
servant-swagger servant-swagger-ui servant-swagger-ui-core swagger2
text time transformers validation vector wai wai-extra warp
];
testHaskellDepends = [
aeson base-noprelude beam-core beam-postgres bytestring conduit
containers data-default hspec hspec-wai hspec-wai-json http-types
insert-ordered-containers jose lens monad-control
insert-ordered-containers jose lens monad-control mtl
optparse-applicative postgresql-simple relude resource-pool scrypt
servant servant-auth servant-auth-server servant-auth-swagger
servant-server servant-swagger servant-swagger-ui
servant-swagger-ui-core swagger2 text time transformers validation
vector wai wai-extra warp
];
preConfigure = "hpack";
description = "Exemplary fullstack Medium.com clone powered by Servant and Beam";
license = stdenv.lib.licenses.bsd3;
}
164 changes: 0 additions & 164 deletions package.yaml

This file was deleted.

0 comments on commit 81ce1db

Please sign in to comment.