diff --git a/.envrc b/.envrc index 051d09d29..8392d159f 100644 --- a/.envrc +++ b/.envrc @@ -1 +1 @@ -eval "$(lorri direnv)" +use flake \ No newline at end of file diff --git a/.github/workflows/artifacts-nix.yaml b/.github/workflows/artifacts-nix.yaml index 27266b46a..524b89701 100644 --- a/.github/workflows/artifacts-nix.yaml +++ b/.github/workflows/artifacts-nix.yaml @@ -17,33 +17,33 @@ jobs: - ubuntu-latest steps: - - uses: actions/checkout@v2 - name: ๐Ÿ“ค Checkout - if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/main' - - - uses: cachix/install-nix-action@v16 - name: โ„๏ธ Set up Nix - with: - nix_path: nixpkgs=channel:nixos-unstable - - - uses: actions/cache@v2 - name: ๐Ÿ—„๏ธ Cache ~/.stack - with: - path: ~/.stack - key: ${{ matrix.os }}-stack-nix-4 - - - name: ๐Ÿ—๏ธ Build - run: | - nix-shell --command build - - - name: ๐Ÿบ Upload CLI Artifact - uses: actions/upload-artifact@v2 - with: - name: fission-cli-${{ matrix.os }}-nix - path: ./.stack-work/**/*-nix/**/bin/fission - - - name: ๐Ÿบ Upload Server Artifact - uses: actions/upload-artifact@v2 - with: - name: fission-server-${{ matrix.os }}-nix - path: ./.stack-work/**/*-nix/**/bin/fission-server + - uses: actions/checkout@v2 + name: ๐Ÿ“ค Checkout + if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/main' + + - uses: cachix/install-nix-action@v16 + name: โ„๏ธ Set up Nix + with: + nix_path: nixpkgs=channel:nixos-unstable + + - uses: actions/cache@v2 + name: ๐Ÿ—„๏ธ Cache ~/.stack + with: + path: ~/.stack + key: ${{ matrix.os }}-stack-nix-${{ hashFiles('stack.yaml.lock') }} + + - name: ๐Ÿ—๏ธ Build + run: | + nix-shell --command build + + - name: ๐Ÿบ Upload CLI Artifact + uses: actions/upload-artifact@v2 + with: + name: fission-cli-${{ matrix.os }}-nix + path: ./.stack-work/**/*-nix/**/bin/fission + + - name: ๐Ÿบ Upload Server Artifact + uses: actions/upload-artifact@v2 + with: + name: fission-server-${{ matrix.os }}-nix + path: ./.stack-work/**/*-nix/**/bin/fission-server diff --git a/.github/workflows/ci-nix.yaml b/.github/workflows/ci-nix.yaml index e04406a76..e776d99c5 100644 --- a/.github/workflows/ci-nix.yaml +++ b/.github/workflows/ci-nix.yaml @@ -17,21 +17,21 @@ jobs: - ubuntu-latest steps: - - uses: actions/checkout@v2 - name: ๐Ÿ“ค Checkout - if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/main' + - uses: actions/checkout@v2 + name: ๐Ÿ“ค Checkout + if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/main' - - uses: cachix/install-nix-action@v16 - name: โ„๏ธ Set up Nix - with: - nix_path: nixpkgs=channel:nixos-unstable + - uses: cachix/install-nix-action@v16 + name: โ„๏ธ Set up Nix + with: + nix_path: nixpkgs=channel:nixos-unstable - - uses: actions/cache@v2 - name: ๐Ÿ—„๏ธ Cache ~/.stack - with: - path: ~/.stack - key: ${{ matrix.os }}-stack-nix-ci-4 + - uses: actions/cache@v2 + name: ๐Ÿ—„๏ธ Cache ~/.stack + with: + path: ~/.stack + key: ${{ matrix.os }}-stack-nix-${{ hashFiles('stack.yaml.lock') }} - - name: ๐Ÿงช Test - run: | - nix-shell --command quality + - name: ๐Ÿงช Test + run: | + nix-shell --command quality diff --git a/.gitignore b/.gitignore index 0d8414746..71e7e0470 100644 --- a/.gitignore +++ b/.gitignore @@ -590,3 +590,4 @@ MigrationBackup/ fission-web-server/data/ fission-web-server/.env +.direnv/ diff --git a/README.md b/README.md index 1c3a9bf4c..56d08a305 100644 --- a/README.md +++ b/README.md @@ -48,3 +48,5 @@ Web server, database, 3rd party integrations # Building Fission is built inside of a pure Nix shell via the [Stack integration](https://docs.haskellstack.org/en/stable/nix_integration/). This means that you _should_ only need to type `stack build` to do a complete build of all packages. + +If you're using a nix shell, you can use `cachix` to prevent re-building dependencies (particularly on `aarch64-darwin`) via: `cachix use fission-codes`. \ No newline at end of file diff --git a/default.nix b/default.nix index ff7ca215a..873ece493 100644 --- a/default.nix +++ b/default.nix @@ -1,15 +1,13 @@ -{ haskellNixSrc ? builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz -}: - -let - haskellNix = import haskellNixSrc { }; - pkgs = import haskellNix.sources.nixpkgs-unstable haskellNix.nixpkgsArgs; - - pkgSet = pkgs.haskell-nix.mkStackPkgSet { - stack-pkgs = import ./nix/pkgs.nix; - pkg-def-extras = []; - modules = []; - }; - -in - pkgSet.config.hsPkgs +(import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } + ) + { + src = ./.; + }).defaultNix diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..45852c2cc --- /dev/null +++ b/flake.lock @@ -0,0 +1,60 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1654562072, + "narHash": "sha256-00r0/W+c3LOWMCw5l1uhZRJHY2CUPNQHqO2rnZCIuFk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a45d53b958df713f0072791b993ae57074c9bf99", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-22.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..6bc975224 --- /dev/null +++ b/flake.nix @@ -0,0 +1,67 @@ +{ + description = "Fission tools"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/release-22.05"; + flake-utils.url = "github:numtide/flake-utils"; + + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + }; + + outputs = { self, nixpkgs, flake-utils, ... }: + flake-utils.lib.eachDefaultSystem + (system: + let + + pkgs = nixpkgs.legacyPackages.${system}; + + # Inspired by https://www.tweag.io/blog/2022-06-02-haskell-stack-nix-shell/ + stack-wrapped = pkgs.symlinkJoin { + name = "stack"; + paths = [ pkgs.stack ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/stack \ + --add-flags "\ + --nix \ + --nix-pure \ + --nix-shell-file=nix/stack-integration.nix \ + " + ''; + }; + + # Wrapper commands for convenience + commands = import ./nix/commands.nix; + server-path = "~/.local/bin/fission-server"; + tasks = commands { + inherit pkgs; + inherit server-path; + inherit stack-wrapped; + }; + + # The default version of HLS (with binary cache) is built with GHC 9.0.1 + # We can get this version working with our current set up, but it builds + # from source (and takes a long time). + # + # The prebuilt package is marked as broken on aarch64-darwin + haskellPackages = pkgs.haskell.packages.ghc8107; + in + { + devShells.default = pkgs.mkShell { + name = "fission"; + buildInputs = [ + stack-wrapped + haskellPackages.haskell-language-server + pkgs.cachix + pkgs.nixpkgs-fmt + pkgs.stylish-haskell + tasks + ]; + NIX_PATH = "nixpkgs=" + pkgs.path; + }; + } + ); +} diff --git a/nix-tools b/nix-tools deleted file mode 120000 index ef08d771f..000000000 --- a/nix-tools +++ /dev/null @@ -1 +0,0 @@ -/nix/store/4akrhslfa6w2fr6c8mg8lsli9v5fvbqb-nix-tools \ No newline at end of file diff --git a/nix/commands.nix b/nix/commands.nix index a22d242fe..377f45e2e 100644 --- a/nix/commands.nix +++ b/nix/commands.nix @@ -1,136 +1,132 @@ -{ pkgs, unstable, server-path, server-port, ... }: - let - bash = "${pkgs.bash}/bin/bash"; - cachix = "${pkgs.cachix}/bin/cachix"; - git = "${pkgs.git}/bin/git"; - killall = "${pkgs.killall}/bin/killall"; - ssh = "${pkgs.openssh}/bin/ssh"; - stack = "${unstable.stack}/bin/stack"; - figlet = "${pkgs.figlet}/bin/figlet"; - lolcat = "${pkgs.lolcat}/bin/lolcat"; - - cmd = description: script: - { inherit description; - inherit script; - }; - - command = {name, script, description ? ""}: - let - package = - pkgs.writeScriptBin name '' - #!${bash} - echo "โš™๏ธ Running ${name}..." - ${script} - ''; - - bin = "${package}/bin/${name}"; - in - { package = package; - description = description; - bin = bin; - }; - - commands = defs: - let - names = - builtins.attrNames defs; - - helper = - let - lengths = map builtins.stringLength names; - maxLen = builtins.foldl' (acc: x: if x > acc then x else acc) 0 lengths; - maxPad = - let - go = acc: - if builtins.stringLength acc >= maxLen - then acc - else go (" " + acc); - in - go ""; - - folder = acc: name: - let - nameLen = builtins.stringLength name; - padLen = maxLen - nameLen; - padding = builtins.substring 0 padLen maxPad; - in - acc + " && echo '${name} ${padding}| ${(builtins.getAttr name defs).description}'"; - - lines = - builtins.foldl' folder "echo ''" names; - - in - pkgs.writeScriptBin "helpme" '' - #!${pkgs.stdenv.shell} - ${pkgs.figlet}/bin/figlet "Commands" | ${pkgs.lolcat}/bin/lolcat - ${toString lines} - ''; - - mapper = name: - let - element = - builtins.getAttr name defs; - - task = command { - inherit name; - description = element.description; - script = element.script; - }; - in - task.package; - - packages = - map mapper names; - - in - [helper] ++ packages; - - # This will be much better when we have a nix-build - server-install = cmd "Install the Fission Server" - "${stack} install --nix fission-web-server:fission-server"; - - server-start = cmd "Run the currently installed Fission Server" - "DEBUG=true nohup ${server-path} &"; - - server-debug = cmd "Run the Fission Server in debug verbose mode" - "DEBUG=true ${server-path}"; - - in - commands { - welcome = cmd "Print the pretty welcome" '' - echo "๐ŸŒˆโœจ Welcome to the glorious... " - ${figlet} "Fission Build Env" | ${lolcat} -a -s 50 - ''; - - build = cmd "Build entire project" "${stack} build --nix"; - cli-install = cmd "Install the Fission CLI" "${stack} install --nix fission-cli:fission"; - - inherit - server-install - server-start - server-debug; - - server-update = cmd "Update & run the current server to the latest on the current branch" '' - ${git} pull \ - && ${server-install.script} \ - && ${killall} fission-server \ - ; printf "๐Ÿšจ Don't forget to release a new version of the CLI ๐Ÿ“Ÿโœจ" \ - && ${server-start.script} - ''; - - quality = cmd "Run the complete test suite" "${stack} test --nix --test-arguments='--color=always'"; - repl = cmd "Enter the project REPL" "${stack} repl --nix --no-nix-pure"; - watch = cmd "Autobuild with file watcher" "${stack} build --nix --file-watch"; - - get-nt = cmd "Get haskell.nix nix-tools" - "nix build -f https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz pkgs.haskell-nix.nix-tools.ghc8104 --out-link nix-tools"; - - stack-to-nix = cmd "Generate Nix expressions for all Stack project components" - "./nix-tools/bin/stack-to-nix --output ./nix --stack-yaml stack.yaml"; - - ssh-staging = cmd "SSH into the staging environment" - "${ssh} fission@instance.runfission.net"; - - ssh-prod = cmd "SSH into the production environment" - "${ssh} fission@instance.runfission.com"; - } +{ pkgs, stack-wrapped, server-path, ... }: +let + bash = "${pkgs.bash}/bin/bash"; + cachix = "${pkgs.cachix}/bin/cachix"; + git = "${pkgs.git}/bin/git"; + killall = "${pkgs.killall}/bin/killall"; + ssh = "${pkgs.openssh}/bin/ssh"; + stack = "${stack-wrapped}/bin/stack"; + figlet = "${pkgs.figlet}/bin/figlet"; + lolcat = "${pkgs.lolcat}/bin/lolcat"; + + cmd = description: script: + { + inherit description; + inherit script; + }; + + command = { name, script, description ? "" }: + let + package = + pkgs.writeScriptBin name '' + #!${bash} + echo "โš™๏ธ Running ${name}..." + ${script} + ''; + + bin = "${package}/bin/${name}"; + in + { + package = package; + description = description; + bin = bin; + }; + + commands = defs: + let + names = + builtins.attrNames defs; + + helper = + let + lengths = map builtins.stringLength names; + maxLen = builtins.foldl' (acc: x: if x > acc then x else acc) 0 lengths; + maxPad = + let + go = acc: + if builtins.stringLength acc >= maxLen + then acc + else go (" " + acc); + in + go ""; + + folder = acc: name: + let + nameLen = builtins.stringLength name; + padLen = maxLen - nameLen; + padding = builtins.substring 0 padLen maxPad; + in + acc + " && echo '${name} ${padding}| ${(builtins.getAttr name defs).description}'"; + + lines = + builtins.foldl' folder "echo ''" names; + + in + pkgs.writeScriptBin "helpme" '' + #!${pkgs.stdenv.shell} + ${pkgs.figlet}/bin/figlet "Commands" | ${pkgs.lolcat}/bin/lolcat + ${toString lines} + ''; + + mapper = name: + let + element = + builtins.getAttr name defs; + + task = command { + inherit name; + description = element.description; + script = element.script; + }; + in + task.package; + + packages = + map mapper names; + + in + [ helper ] ++ packages; + + # This will be much better when we have a nix-build + server-install = cmd "Install the Fission Server" + "${stack} install fission-web-server:fission-server"; + + server-start = cmd "Run the currently installed Fission Server" + "DEBUG=true nohup ${server-path} &"; + + server-debug = cmd "Run the Fission Server in debug verbose mode" + "DEBUG=true ${server-path}"; + +in +commands { + welcome = cmd "Print the pretty welcome" '' + echo "๐ŸŒˆโœจ Welcome to the glorious... " + ${figlet} "Fission Build Env" | ${lolcat} -a -s 50 + ''; + + build = cmd "Build entire project" "${stack} build"; + cli-install = cmd "Install the Fission CLI" "${stack} install fission-cli:fission"; + + inherit + server-install + server-start + server-debug; + + server-update = cmd "Update & run the current server to the latest on the current branch" '' + ${git} pull \ + && ${server-install.script} \ + && ${killall} fission-server \ + ; printf "๐Ÿšจ Don't forget to release a new version of the CLI ๐Ÿ“Ÿโœจ" \ + && ${server-start.script} + ''; + + quality = cmd "Run the complete test suite" "${stack} test --test-arguments='--color=always'"; + repl = cmd "Enter the project REPL" "${stack} repl --no-nix-pure"; + watch = cmd "Autobuild with file watcher" "${stack} build --file-watch"; + + ssh-staging = cmd "SSH into the staging environment" + "${ssh} fission@instance.runfission.net"; + + ssh-prod = cmd "SSH into the production environment" + "${ssh} fission@instance.runfission.com"; +} diff --git a/nix/default.nix b/nix/default.nix deleted file mode 100644 index 769a99ced..000000000 --- a/nix/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ haskellNixSrc ? builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz -}: - -let - haskellNix = import haskellNixSrc { }; - pkgs = import haskellNix.sources.nixpkgs-2003 haskellNix.nixpkgsArgs; - - pkgSet = pkgs.haskell-nix.mkStackPkgSet { - stack-pkgs = import ./pkgs.nix; - pkg-def-extras = []; - modules = []; - }; - -in - pkgSet.config.hsPkgs diff --git a/nix/fission-cli.nix b/nix/fission-cli.nix deleted file mode 100644 index e7fb8009b..000000000 --- a/nix/fission-cli.nix +++ /dev/null @@ -1,187 +0,0 @@ -{ system - , compiler - , flags - , pkgs - , hsPkgs - , pkgconfPkgs - , errorHandler - , config - , ... }: - ({ - flags = {}; - package = { - specVersion = "2.2"; - identifier = { name = "fission-cli"; version = "2.10.3.0"; }; - license = "AGPL-3.0-or-later"; - copyright = "ยฉ 2020 Fission Internet Software Services for Open Networks Inc."; - maintainer = "brooklyn@fission.codes,\ndaniel@fission.codes,\nsteven@fission.codes,\njames@fission.codes"; - author = "Brooklyn Zelenka,\nDaniel Holmgren,\nSteven Vandevelde,\nJames Walker"; - homepage = "https://github.com/fission-suite/fission#readme"; - url = ""; - synopsis = ""; - description = ""; - buildType = "Simple"; - isLocal = true; - }; - components = { - "library" = { - depends = [ - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) - (hsPkgs."async" or (errorHandler.buildDepError "async")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."dimensions" or (errorHandler.buildDepError "dimensions")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-client" or (errorHandler.buildDepError "fission-web-client")) - (hsPkgs."fsnotify" or (errorHandler.buildDepError "fsnotify")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."github" or (errorHandler.buildDepError "github")) - (hsPkgs."haskeline" or (errorHandler.buildDepError "haskeline")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) - (hsPkgs."parallel" or (errorHandler.buildDepError "parallel")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."scientific" or (errorHandler.buildDepError "scientific")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."transformers-base" or (errorHandler.buildDepError "transformers-base")) - (hsPkgs."turtle" or (errorHandler.buildDepError "turtle")) - (hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string")) - (hsPkgs."versions" or (errorHandler.buildDepError "versions")) - (hsPkgs."wss-client" or (errorHandler.buildDepError "wss-client")) - (hsPkgs."wuss" or (errorHandler.buildDepError "wuss")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - exes = { - "fission" = { - depends = [ - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) - (hsPkgs."async" or (errorHandler.buildDepError "async")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."dimensions" or (errorHandler.buildDepError "dimensions")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-cli" or (errorHandler.buildDepError "fission-cli")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-client" or (errorHandler.buildDepError "fission-web-client")) - (hsPkgs."fsnotify" or (errorHandler.buildDepError "fsnotify")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."github" or (errorHandler.buildDepError "github")) - (hsPkgs."haskeline" or (errorHandler.buildDepError "haskeline")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) - (hsPkgs."parallel" or (errorHandler.buildDepError "parallel")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."scientific" or (errorHandler.buildDepError "scientific")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."transformers-base" or (errorHandler.buildDepError "transformers-base")) - (hsPkgs."turtle" or (errorHandler.buildDepError "turtle")) - (hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string")) - (hsPkgs."versions" or (errorHandler.buildDepError "versions")) - (hsPkgs."wss-client" or (errorHandler.buildDepError "wss-client")) - (hsPkgs."wuss" or (errorHandler.buildDepError "wuss")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - benchmarks = { - "fission-cli-benchmark" = { - depends = [ - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) - (hsPkgs."async" or (errorHandler.buildDepError "async")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."criterion" or (errorHandler.buildDepError "criterion")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."dimensions" or (errorHandler.buildDepError "dimensions")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-cli" or (errorHandler.buildDepError "fission-cli")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-client" or (errorHandler.buildDepError "fission-web-client")) - (hsPkgs."fsnotify" or (errorHandler.buildDepError "fsnotify")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."github" or (errorHandler.buildDepError "github")) - (hsPkgs."haskeline" or (errorHandler.buildDepError "haskeline")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) - (hsPkgs."parallel" or (errorHandler.buildDepError "parallel")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."scientific" or (errorHandler.buildDepError "scientific")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."transformers-base" or (errorHandler.buildDepError "transformers-base")) - (hsPkgs."turtle" or (errorHandler.buildDepError "turtle")) - (hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string")) - (hsPkgs."versions" or (errorHandler.buildDepError "versions")) - (hsPkgs."wss-client" or (errorHandler.buildDepError "wss-client")) - (hsPkgs."wuss" or (errorHandler.buildDepError "wuss")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - }; - } // rec { src = (pkgs.lib).mkDefault ../fission-cli; }) // { - cabal-generator = "hpack"; - } \ No newline at end of file diff --git a/nix/fission-core.nix b/nix/fission-core.nix deleted file mode 100644 index 753f709f3..000000000 --- a/nix/fission-core.nix +++ /dev/null @@ -1,213 +0,0 @@ -{ system - , compiler - , flags - , pkgs - , hsPkgs - , pkgconfPkgs - , errorHandler - , config - , ... }: - ({ - flags = {}; - package = { - specVersion = "2.2"; - identifier = { name = "fission-core"; version = "3.2.2.0"; }; - license = "AGPL-3.0-or-later"; - copyright = "ยฉ 2020 Fission Internet Software Services for Open Networks Inc."; - maintainer = "brooklyn@fission.codes,\ndaniel@fission.codes,\nsteven@fission.codes,\njames@fission.codes"; - author = "Brooklyn Zelenka,\nDaniel Holmgren,\nSteven Vandevelde,\nJames Walker"; - homepage = "https://github.com/fission-suite/fission#readme"; - url = ""; - synopsis = ""; - description = ""; - buildType = "Simple"; - isLocal = true; - }; - components = { - "library" = { - depends = [ - (hsPkgs."Glob" or (errorHandler.buildDepError "Glob")) - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."RSA" or (errorHandler.buildDepError "RSA")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."asn1-encoding" or (errorHandler.buildDepError "asn1-encoding")) - (hsPkgs."asn1-types" or (errorHandler.buildDepError "asn1-types")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base58string" or (errorHandler.buildDepError "base58string")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."cryptostore" or (errorHandler.buildDepError "cryptostore")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."envy" or (errorHandler.buildDepError "envy")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hashable" or (errorHandler.buildDepError "hashable")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."mime-types" or (errorHandler.buildDepError "mime-types")) - (hsPkgs."monad-control" or (errorHandler.buildDepError "monad-control")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."pem" or (errorHandler.buildDepError "pem")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random-bytestring" or (errorHandler.buildDepError "random-bytestring")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."word8" or (errorHandler.buildDepError "word8")) - (hsPkgs."world-peace" or (errorHandler.buildDepError "world-peace")) - (hsPkgs."x509" or (errorHandler.buildDepError "x509")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - tests = { - "fission-core-test" = { - depends = [ - (hsPkgs."Glob" or (errorHandler.buildDepError "Glob")) - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."RSA" or (errorHandler.buildDepError "RSA")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."asn1-encoding" or (errorHandler.buildDepError "asn1-encoding")) - (hsPkgs."asn1-types" or (errorHandler.buildDepError "asn1-types")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base58string" or (errorHandler.buildDepError "base58string")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."cryptostore" or (errorHandler.buildDepError "cryptostore")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."envy" or (errorHandler.buildDepError "envy")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hashable" or (errorHandler.buildDepError "hashable")) - (hsPkgs."hspec" or (errorHandler.buildDepError "hspec")) - (hsPkgs."hspec-core" or (errorHandler.buildDepError "hspec-core")) - (hsPkgs."hspec-expectations" or (errorHandler.buildDepError "hspec-expectations")) - (hsPkgs."hspec-wai" or (errorHandler.buildDepError "hspec-wai")) - (hsPkgs."hspec-wai-json" or (errorHandler.buildDepError "hspec-wai-json")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."mime-types" or (errorHandler.buildDepError "mime-types")) - (hsPkgs."monad-control" or (errorHandler.buildDepError "monad-control")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."pem" or (errorHandler.buildDepError "pem")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random-bytestring" or (errorHandler.buildDepError "random-bytestring")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) - (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) - (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) - (hsPkgs."tasty-rerun" or (errorHandler.buildDepError "tasty-rerun")) - (hsPkgs."tasty-smallcheck" or (errorHandler.buildDepError "tasty-smallcheck")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."word8" or (errorHandler.buildDepError "word8")) - (hsPkgs."world-peace" or (errorHandler.buildDepError "world-peace")) - (hsPkgs."x509" or (errorHandler.buildDepError "x509")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - benchmarks = { - "fission-core-benchmark" = { - depends = [ - (hsPkgs."Glob" or (errorHandler.buildDepError "Glob")) - (hsPkgs."HsOpenSSL" or (errorHandler.buildDepError "HsOpenSSL")) - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."RSA" or (errorHandler.buildDepError "RSA")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."asn1-encoding" or (errorHandler.buildDepError "asn1-encoding")) - (hsPkgs."asn1-types" or (errorHandler.buildDepError "asn1-types")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base58string" or (errorHandler.buildDepError "base58string")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."binary" or (errorHandler.buildDepError "binary")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."criterion" or (errorHandler.buildDepError "criterion")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."cryptostore" or (errorHandler.buildDepError "cryptostore")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."dns" or (errorHandler.buildDepError "dns")) - (hsPkgs."envy" or (errorHandler.buildDepError "envy")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hashable" or (errorHandler.buildDepError "hashable")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."memory" or (errorHandler.buildDepError "memory")) - (hsPkgs."mime-types" or (errorHandler.buildDepError "mime-types")) - (hsPkgs."monad-control" or (errorHandler.buildDepError "monad-control")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."pem" or (errorHandler.buildDepError "pem")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random-bytestring" or (errorHandler.buildDepError "random-bytestring")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."word8" or (errorHandler.buildDepError "word8")) - (hsPkgs."world-peace" or (errorHandler.buildDepError "world-peace")) - (hsPkgs."x509" or (errorHandler.buildDepError "x509")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - }; - } // rec { src = (pkgs.lib).mkDefault ../fission-core; }) // { - cabal-generator = "hpack"; - } \ No newline at end of file diff --git a/nix/fission-web-api.nix b/nix/fission-web-api.nix deleted file mode 100644 index 511cca33a..000000000 --- a/nix/fission-web-api.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ system - , compiler - , flags - , pkgs - , hsPkgs - , pkgconfPkgs - , errorHandler - , config - , ... }: - ({ - flags = {}; - package = { - specVersion = "2.2"; - identifier = { name = "fission-web-api"; version = "1.1.1.0"; }; - license = "AGPL-3.0-or-later"; - copyright = "ยฉ 2020 Fission Internet Software Services for Open Networks Inc."; - maintainer = "brooklyn@fission.codes,\ndaniel@fission.codes,\nsteven@fission.codes,\njames@fission.codes"; - author = "Brooklyn Zelenka,\nDaniel Holmgren,\nSteven Vandevelde,\nJames Walker"; - homepage = "https://github.com/fission-suite/fission#readme"; - url = ""; - synopsis = ""; - description = ""; - buildType = "Simple"; - isLocal = true; - }; - components = { - "library" = { - depends = [ - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."http-media" or (errorHandler.buildDepError "http-media")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-auth" or (errorHandler.buildDepError "servant-auth")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - ]; - buildable = true; - }; - }; - } // rec { src = (pkgs.lib).mkDefault ../fission-web-api; }) // { - cabal-generator = "hpack"; - } \ No newline at end of file diff --git a/nix/fission-web-client.nix b/nix/fission-web-client.nix deleted file mode 100644 index e9793b179..000000000 --- a/nix/fission-web-client.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ system - , compiler - , flags - , pkgs - , hsPkgs - , pkgconfPkgs - , errorHandler - , config - , ... }: - ({ - flags = {}; - package = { - specVersion = "2.2"; - identifier = { name = "fission-web-client"; version = "1.0.0.0"; }; - license = "AGPL-3.0-or-later"; - copyright = "ยฉ 2020 Fission Internet Software Services for Open Networks Inc."; - maintainer = "brooklyn@fission.codes,\ndaniel@fission.codes,\nsteven@fission.codes,\njames@fission.codes"; - author = "Brooklyn Zelenka,\nDaniel Holmgren,\nSteven Vandevelde,\nJames Walker"; - homepage = "https://github.com/fission-suite/fission#readme"; - url = ""; - synopsis = ""; - description = ""; - buildType = "Simple"; - isLocal = true; - }; - components = { - "library" = { - depends = [ - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - ]; - buildable = true; - }; - }; - } // rec { src = (pkgs.lib).mkDefault ../fission-web-client; }) // { - cabal-generator = "hpack"; - } \ No newline at end of file diff --git a/nix/fission-web-server.nix b/nix/fission-web-server.nix deleted file mode 100644 index faea59d3a..000000000 --- a/nix/fission-web-server.nix +++ /dev/null @@ -1,336 +0,0 @@ -{ system - , compiler - , flags - , pkgs - , hsPkgs - , pkgconfPkgs - , errorHandler - , config - , ... }: - ({ - flags = {}; - package = { - specVersion = "2.2"; - identifier = { name = "fission-web-server"; version = "2.13.1.0"; }; - license = "AGPL-3.0-or-later"; - copyright = "ยฉ 2020 Fission Internet Software Services for Open Networks Inc."; - maintainer = "brooklyn@fission.codes,\ndaniel@fission.codes,\nsteven@fission.codes,\njames@fission.codes"; - author = "Brooklyn Zelenka,\nDaniel Holmgren,\nSteven Vandevelde,\nJames Walker"; - homepage = "https://github.com/fission-suite/fission#readme"; - url = ""; - synopsis = ""; - description = ""; - buildType = "Simple"; - isLocal = true; - }; - components = { - "library" = { - depends = [ - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."amazonka" or (errorHandler.buildDepError "amazonka")) - (hsPkgs."amazonka-core" or (errorHandler.buildDepError "amazonka-core")) - (hsPkgs."amazonka-route53" or (errorHandler.buildDepError "amazonka-route53")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."bcrypt" or (errorHandler.buildDepError "bcrypt")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."case-insensitive" or (errorHandler.buildDepError "case-insensitive")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hostname" or (errorHandler.buildDepError "hostname")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-media" or (errorHandler.buildDepError "http-media")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."lens-aeson" or (errorHandler.buildDepError "lens-aeson")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."persistent-postgresql" or (errorHandler.buildDepError "persistent-postgresql")) - (hsPkgs."persistent-template" or (errorHandler.buildDepError "persistent-template")) - (hsPkgs."pretty-simple" or (errorHandler.buildDepError "pretty-simple")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random" or (errorHandler.buildDepError "random")) - (hsPkgs."raven-haskell" or (errorHandler.buildDepError "raven-haskell")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."resource-pool" or (errorHandler.buildDepError "resource-pool")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-auth-server" or (errorHandler.buildDepError "servant-auth-server")) - (hsPkgs."servant-auth-swagger" or (errorHandler.buildDepError "servant-auth-swagger")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."servant-swagger-ui-redoc" or (errorHandler.buildDepError "servant-swagger-ui-redoc")) - (hsPkgs."servant-websockets" or (errorHandler.buildDepError "servant-websockets")) - (hsPkgs."stm" or (errorHandler.buildDepError "stm")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."text" or (errorHandler.buildDepError "text")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."vector" or (errorHandler.buildDepError "vector")) - (hsPkgs."wai" or (errorHandler.buildDepError "wai")) - (hsPkgs."wai-cors" or (errorHandler.buildDepError "wai-cors")) - (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) - (hsPkgs."wai-logger" or (errorHandler.buildDepError "wai-logger")) - (hsPkgs."warp" or (errorHandler.buildDepError "warp")) - (hsPkgs."warp-tls" or (errorHandler.buildDepError "warp-tls")) - (hsPkgs."websockets" or (errorHandler.buildDepError "websockets")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - exes = { - "fission-server" = { - depends = [ - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."amazonka" or (errorHandler.buildDepError "amazonka")) - (hsPkgs."amazonka-core" or (errorHandler.buildDepError "amazonka-core")) - (hsPkgs."amazonka-route53" or (errorHandler.buildDepError "amazonka-route53")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."bcrypt" or (errorHandler.buildDepError "bcrypt")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."case-insensitive" or (errorHandler.buildDepError "case-insensitive")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-server" or (errorHandler.buildDepError "fission-web-server")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hostname" or (errorHandler.buildDepError "hostname")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-media" or (errorHandler.buildDepError "http-media")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."lens-aeson" or (errorHandler.buildDepError "lens-aeson")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."persistent-postgresql" or (errorHandler.buildDepError "persistent-postgresql")) - (hsPkgs."persistent-template" or (errorHandler.buildDepError "persistent-template")) - (hsPkgs."pretty-simple" or (errorHandler.buildDepError "pretty-simple")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random" or (errorHandler.buildDepError "random")) - (hsPkgs."raven-haskell" or (errorHandler.buildDepError "raven-haskell")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."resource-pool" or (errorHandler.buildDepError "resource-pool")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-auth-server" or (errorHandler.buildDepError "servant-auth-server")) - (hsPkgs."servant-auth-swagger" or (errorHandler.buildDepError "servant-auth-swagger")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."servant-swagger-ui-redoc" or (errorHandler.buildDepError "servant-swagger-ui-redoc")) - (hsPkgs."servant-websockets" or (errorHandler.buildDepError "servant-websockets")) - (hsPkgs."stm" or (errorHandler.buildDepError "stm")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."text" or (errorHandler.buildDepError "text")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."vector" or (errorHandler.buildDepError "vector")) - (hsPkgs."wai" or (errorHandler.buildDepError "wai")) - (hsPkgs."wai-cors" or (errorHandler.buildDepError "wai-cors")) - (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) - (hsPkgs."wai-logger" or (errorHandler.buildDepError "wai-logger")) - (hsPkgs."warp" or (errorHandler.buildDepError "warp")) - (hsPkgs."warp-tls" or (errorHandler.buildDepError "warp-tls")) - (hsPkgs."websockets" or (errorHandler.buildDepError "websockets")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - tests = { - "fission-web-server-test" = { - depends = [ - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."amazonka" or (errorHandler.buildDepError "amazonka")) - (hsPkgs."amazonka-core" or (errorHandler.buildDepError "amazonka-core")) - (hsPkgs."amazonka-route53" or (errorHandler.buildDepError "amazonka-route53")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."bcrypt" or (errorHandler.buildDepError "bcrypt")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."case-insensitive" or (errorHandler.buildDepError "case-insensitive")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-server" or (errorHandler.buildDepError "fission-web-server")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hostname" or (errorHandler.buildDepError "hostname")) - (hsPkgs."hspec" or (errorHandler.buildDepError "hspec")) - (hsPkgs."hspec-core" or (errorHandler.buildDepError "hspec-core")) - (hsPkgs."hspec-expectations" or (errorHandler.buildDepError "hspec-expectations")) - (hsPkgs."hspec-wai" or (errorHandler.buildDepError "hspec-wai")) - (hsPkgs."hspec-wai-json" or (errorHandler.buildDepError "hspec-wai-json")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-media" or (errorHandler.buildDepError "http-media")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."lens-aeson" or (errorHandler.buildDepError "lens-aeson")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."persistent-postgresql" or (errorHandler.buildDepError "persistent-postgresql")) - (hsPkgs."persistent-template" or (errorHandler.buildDepError "persistent-template")) - (hsPkgs."pretty-simple" or (errorHandler.buildDepError "pretty-simple")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random" or (errorHandler.buildDepError "random")) - (hsPkgs."raven-haskell" or (errorHandler.buildDepError "raven-haskell")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."resource-pool" or (errorHandler.buildDepError "resource-pool")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-auth-server" or (errorHandler.buildDepError "servant-auth-server")) - (hsPkgs."servant-auth-swagger" or (errorHandler.buildDepError "servant-auth-swagger")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."servant-swagger-ui-redoc" or (errorHandler.buildDepError "servant-swagger-ui-redoc")) - (hsPkgs."servant-websockets" or (errorHandler.buildDepError "servant-websockets")) - (hsPkgs."stm" or (errorHandler.buildDepError "stm")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) - (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) - (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) - (hsPkgs."tasty-rerun" or (errorHandler.buildDepError "tasty-rerun")) - (hsPkgs."tasty-smallcheck" or (errorHandler.buildDepError "tasty-smallcheck")) - (hsPkgs."text" or (errorHandler.buildDepError "text")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."vector" or (errorHandler.buildDepError "vector")) - (hsPkgs."wai" or (errorHandler.buildDepError "wai")) - (hsPkgs."wai-cors" or (errorHandler.buildDepError "wai-cors")) - (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) - (hsPkgs."wai-logger" or (errorHandler.buildDepError "wai-logger")) - (hsPkgs."warp" or (errorHandler.buildDepError "warp")) - (hsPkgs."warp-tls" or (errorHandler.buildDepError "warp-tls")) - (hsPkgs."websockets" or (errorHandler.buildDepError "websockets")) - (hsPkgs."world-peace" or (errorHandler.buildDepError "world-peace")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - benchmarks = { - "fission-web-server-benchmark" = { - depends = [ - (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) - (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) - (hsPkgs."aeson-casing" or (errorHandler.buildDepError "aeson-casing")) - (hsPkgs."amazonka" or (errorHandler.buildDepError "amazonka")) - (hsPkgs."amazonka-core" or (errorHandler.buildDepError "amazonka-core")) - (hsPkgs."amazonka-route53" or (errorHandler.buildDepError "amazonka-route53")) - (hsPkgs."base" or (errorHandler.buildDepError "base")) - (hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring")) - (hsPkgs."bcrypt" or (errorHandler.buildDepError "bcrypt")) - (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) - (hsPkgs."case-insensitive" or (errorHandler.buildDepError "case-insensitive")) - (hsPkgs."criterion" or (errorHandler.buildDepError "criterion")) - (hsPkgs."cryptonite" or (errorHandler.buildDepError "cryptonite")) - (hsPkgs."data-has" or (errorHandler.buildDepError "data-has")) - (hsPkgs."esqueleto" or (errorHandler.buildDepError "esqueleto")) - (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) - (hsPkgs."file-embed" or (errorHandler.buildDepError "file-embed")) - (hsPkgs."fission-core" or (errorHandler.buildDepError "fission-core")) - (hsPkgs."fission-web-api" or (errorHandler.buildDepError "fission-web-api")) - (hsPkgs."fission-web-server" or (errorHandler.buildDepError "fission-web-server")) - (hsPkgs."flow" or (errorHandler.buildDepError "flow")) - (hsPkgs."generic-lens" or (errorHandler.buildDepError "generic-lens")) - (hsPkgs."hostname" or (errorHandler.buildDepError "hostname")) - (hsPkgs."http-client" or (errorHandler.buildDepError "http-client")) - (hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls")) - (hsPkgs."http-media" or (errorHandler.buildDepError "http-media")) - (hsPkgs."http-types" or (errorHandler.buildDepError "http-types")) - (hsPkgs."ipfs" or (errorHandler.buildDepError "ipfs")) - (hsPkgs."lens" or (errorHandler.buildDepError "lens")) - (hsPkgs."lens-aeson" or (errorHandler.buildDepError "lens-aeson")) - (hsPkgs."monad-logger" or (errorHandler.buildDepError "monad-logger")) - (hsPkgs."monad-time" or (errorHandler.buildDepError "monad-time")) - (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) - (hsPkgs."path-pieces" or (errorHandler.buildDepError "path-pieces")) - (hsPkgs."persistent" or (errorHandler.buildDepError "persistent")) - (hsPkgs."persistent-postgresql" or (errorHandler.buildDepError "persistent-postgresql")) - (hsPkgs."persistent-template" or (errorHandler.buildDepError "persistent-template")) - (hsPkgs."pretty-simple" or (errorHandler.buildDepError "pretty-simple")) - (hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances")) - (hsPkgs."random" or (errorHandler.buildDepError "random")) - (hsPkgs."raven-haskell" or (errorHandler.buildDepError "raven-haskell")) - (hsPkgs."rescue" or (errorHandler.buildDepError "rescue")) - (hsPkgs."resource-pool" or (errorHandler.buildDepError "resource-pool")) - (hsPkgs."rio" or (errorHandler.buildDepError "rio")) - (hsPkgs."rio-orphans" or (errorHandler.buildDepError "rio-orphans")) - (hsPkgs."servant" or (errorHandler.buildDepError "servant")) - (hsPkgs."servant-auth-server" or (errorHandler.buildDepError "servant-auth-server")) - (hsPkgs."servant-auth-swagger" or (errorHandler.buildDepError "servant-auth-swagger")) - (hsPkgs."servant-client" or (errorHandler.buildDepError "servant-client")) - (hsPkgs."servant-client-core" or (errorHandler.buildDepError "servant-client-core")) - (hsPkgs."servant-server" or (errorHandler.buildDepError "servant-server")) - (hsPkgs."servant-swagger" or (errorHandler.buildDepError "servant-swagger")) - (hsPkgs."servant-swagger-ui-redoc" or (errorHandler.buildDepError "servant-swagger-ui-redoc")) - (hsPkgs."servant-websockets" or (errorHandler.buildDepError "servant-websockets")) - (hsPkgs."stm" or (errorHandler.buildDepError "stm")) - (hsPkgs."swagger2" or (errorHandler.buildDepError "swagger2")) - (hsPkgs."text" or (errorHandler.buildDepError "text")) - (hsPkgs."time" or (errorHandler.buildDepError "time")) - (hsPkgs."uuid" or (errorHandler.buildDepError "uuid")) - (hsPkgs."vector" or (errorHandler.buildDepError "vector")) - (hsPkgs."wai" or (errorHandler.buildDepError "wai")) - (hsPkgs."wai-cors" or (errorHandler.buildDepError "wai-cors")) - (hsPkgs."wai-extra" or (errorHandler.buildDepError "wai-extra")) - (hsPkgs."wai-logger" or (errorHandler.buildDepError "wai-logger")) - (hsPkgs."warp" or (errorHandler.buildDepError "warp")) - (hsPkgs."warp-tls" or (errorHandler.buildDepError "warp-tls")) - (hsPkgs."websockets" or (errorHandler.buildDepError "websockets")) - (hsPkgs."yaml" or (errorHandler.buildDepError "yaml")) - ]; - buildable = true; - }; - }; - }; - } // rec { src = (pkgs.lib).mkDefault ../fission-web-server; }) // { - cabal-generator = "hpack"; - } \ No newline at end of file diff --git a/nix/pkgs.nix b/nix/pkgs.nix deleted file mode 100644 index 226fd61bc..000000000 --- a/nix/pkgs.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - extras = hackage: - { - packages = { - "amazonka" = (((hackage.amazonka)."1.6.1").revisions).default; - "constraints-deriving" = (((hackage.constraints-deriving)."1.1.1.1").revisions).default; - "cryptostore" = (((hackage.cryptostore)."0.2.1.0").revisions).default; - "dimensions" = (((hackage.dimensions)."2.1.0.0").revisions).default; - "hfsevents" = (((hackage.hfsevents)."0.1.6").revisions).default; - "ipfs" = (((hackage.ipfs)."1.3.0.3").revisions).default; - "lzma-clib" = (((hackage.lzma-clib)."5.2.2").revisions).default; - "raven-haskell" = (((hackage.raven-haskell)."0.1.4.0").revisions).default; - "rescue" = (((hackage.rescue)."0.4.2.1").revisions).default; - "servant-auth" = (((hackage.servant-auth)."0.4.0.0").revisions).default; - "servant-auth-server" = (((hackage.servant-auth-server)."0.4.6.0").revisions).default; - "servant-auth-swagger" = (((hackage.servant-auth-swagger)."0.2.10.1").revisions).default; - "servant-swagger-ui-redoc" = (((hackage.servant-swagger-ui-redoc)."0.3.3.1.22.3").revisions).default; - "servant-websockets" = (((hackage.servant-websockets)."2.0.0").revisions).default; - "unliftio-core" = (((hackage.unliftio-core)."0.1.2.0").revisions).default; - fission-cli = ./fission-cli.nix; - fission-core = ./fission-core.nix; - fission-web-api = ./fission-web-api.nix; - fission-web-client = ./fission-web-client.nix; - fission-web-server = ./fission-web-server.nix; - }; - }; - resolver = "lts-17.6"; - modules = [ - ({ lib, ... }: - { packages = {}; }) - { packages = { "$everything" = { ghcOptions = [ "-haddock" ]; }; }; } - ]; - } \ No newline at end of file diff --git a/nix/sources.json b/nix/sources.json deleted file mode 100644 index 7c2f57068..000000000 --- a/nix/sources.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "darwin": { - "branch": "nixpkgs-20.09-darwin", - "description": "Nix Packages collection", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "068984c00e0d4e54b6684d98f6ac47c92dcb642e", - "sha256": "00j4xv4lhhqwry7jd67brnws4pwb8vn660n43pvxpkalbpxszwfg", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/068984c00e0d4e54b6684d98f6ac47c92dcb642e.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "niv": { - "branch": "master", - "description": "Easy dependency management for Nix projects", - "homepage": "https://github.com/nmattia/niv", - "owner": "nmattia", - "repo": "niv", - "rev": "e0ca65c81a2d7a4d82a189f1e23a48d59ad42070", - "sha256": "1pq9nh1d8nn3xvbdny8fafzw87mj7gsmp6pxkdl65w2g18rmcmzx", - "type": "tarball", - "url": "https://github.com/nmattia/niv/archive/e0ca65c81a2d7a4d82a189f1e23a48d59ad42070.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nixos": { - "branch": "nixos-21.05", - "description": "Nix Packages collection", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8b0b81dab17753ab344a44c04be90a61dc55badf", - "sha256": "0rj17jpjxjcibcd4qygpxbq79m4px6b35nqq9353pns8w7a984xx", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/8b0b81dab17753ab344a44c04be90a61dc55badf.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "unstable": { - "branch": "nixos-unstable", - "description": "Nix Packages collection", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bbbe2b35f736d039884e082ecc6d6e631e126029", - "sha256": "09356lp9r1wx311ak6d94bx35xnvj8cabvwqirklylql8q7f52lc", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/bbbe2b35f736d039884e082ecc6d6e631e126029.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} diff --git a/nix/sources.nix b/nix/sources.nix deleted file mode 100644 index 1938409dd..000000000 --- a/nix/sources.nix +++ /dev/null @@ -1,174 +0,0 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; name = name'; } - else - pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; - - fetch_tarball = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchTarball { name = name'; inherit (spec) url sha256; } - else - pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; - - fetch_git = name: spec: - let - ref = - if spec ? ref then spec.ref else - if spec ? branch then "refs/heads/${spec.branch}" else - if spec ? tag then "refs/tags/${spec.tag}" else - abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; - in - builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; - - fetch_local = spec: spec.path; - - fetch_builtin-tarball = name: throw - ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=tarball -a builtin=true''; - - fetch_builtin-url = name: throw - ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=file -a builtin=true''; - - # - # Various helpers - # - - # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 - sanitizeName = name: - ( - concatMapStrings (s: if builtins.isList s then "-" else s) - ( - builtins.split "[^[:alnum:]+._?=-]+" - ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) - ) - ); - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: system: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import {} - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs name spec - else if spec.type == "tarball" then fetch_tarball pkgs name spec - else if spec.type == "git" then fetch_git name spec - else if spec.type == "local" then fetch_local spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball name - else if spec.type == "builtin-url" then fetch_builtin-url name - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # If the environment variable NIV_OVERRIDE_${name} is set, then use - # the path directly as opposed to the fetched source. - replace = name: drv: - let - saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; - ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; - in - if ersatz == "" then drv else - # this turns the string into an actual Nix path (for both absolute and - # relative paths) - if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 - range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 - stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 - stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); - concatStrings = builtins.concatStringsSep ""; - - # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 - optionalAttrs = cond: as: if cond then as else {}; - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs ( - name: spec: - if builtins.hasAttr "outPath" spec - then abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = replace name (fetch config.pkgs name spec); } - ) config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null - , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) - , system ? builtins.currentSystem - , pkgs ? mkPkgs sources system - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; - -in -mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } diff --git a/nix/stack-integration.nix b/nix/stack-integration.nix new file mode 100644 index 000000000..b73fef16c --- /dev/null +++ b/nix/stack-integration.nix @@ -0,0 +1,23 @@ +{ ghc }: +with (import { }); +let + macos = + if stdenv.isDarwin then + [ + darwin.apple_sdk.frameworks.CoreServices + darwin.apple_sdk.frameworks.Foundation + darwin.apple_sdk.frameworks.Cocoa + ] + else + [ ]; +in +haskell.lib.buildStackProject { + inherit ghc; + name = "fission"; + buildInputs = [ + lzma + openssl + postgresql + zlib + ] ++ macos; +} diff --git a/shell.nix b/shell.nix index 1c6c8a240..8a7465a15 100644 --- a/shell.nix +++ b/shell.nix @@ -1,76 +1,13 @@ -{ rosetta ? false }: - let - sources = import ./nix/sources.nix; - commands = import ./nix/commands.nix; - - overrides = if rosetta then { system = "x86_64-darwin"; } else {}; - - nixos = import sources.nixos overrides; - darwin = import sources.darwin overrides; - unstable = import sources.unstable overrides; - - pkgs = if darwin.stdenv.isDarwin then darwin else nixos; - tasks = commands { - inherit pkgs; - inherit unstable; - inherit server-path; - inherit server-port; - }; - - server-path = "~/.local/bin/fission-server"; - server-port = 10235; - - deps = { - common = [ - unstable.niv - ]; - - crypto = [ - pkgs.openssl.dev - pkgs.openssl.out - ]; - - cli = [pkgs.ncurses.dev.out]; - - data = [ - pkgs.ipfs - pkgs.lzma.dev - pkgs.lzma.out - pkgs.zlib.dev - pkgs.zlib.out - pkgs.postgresql - ]; - - haskell = [ - unstable.haskell-language-server - unstable.stack - unstable.stylish-haskell - ]; - - macos = - if pkgs.stdenv.isDarwin then - [ unstable.darwin.apple_sdk.frameworks.CoreServices - unstable.darwin.apple_sdk.frameworks.Foundation - unstable.darwin.apple_sdk.frameworks.Cocoa - ] - else - []; - }; - - in - unstable.haskell.lib.buildStackProject { - name = "Fission"; - nativeBuildInputs = builtins.concatLists [ - deps.common - deps.crypto - deps.cli - deps.data - deps.macos - deps.haskell - tasks - ]; - - shellHook = '' - export LANG=C.UTF8 - ''; +(import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; } + ) + { + src = ./.; + }).shellNix.default diff --git a/stack.yaml b/stack.yaml index 1d131c3a7..5c6e223f6 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,4 @@ -resolver: lts-18.24 +resolver: lts-18.28 allow-newer: true # Needed for servant-ekg packages: @@ -31,8 +31,3 @@ extra-deps: ghc-options: "$everything": -haddock - -nix: - enable: true - pure: true - shell-file: shell.nix diff --git a/stack.yaml.lock b/stack.yaml.lock index eb5ad5dd2..2823383d9 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -5,113 +5,113 @@ packages: - completed: - hackage: amazonka-1.6.1@sha256:f58b63e83876f93aa03c54e54b3eb8ba9358af93819d41f4a5a8f8b7d8b8399c,3544 pantry-tree: - size: 992 sha256: d792656a70ee42df262a599bc6608bda069e33092d665c3438a6eeeaf7db4fb2 + size: 992 + hackage: amazonka-1.6.1@sha256:f58b63e83876f93aa03c54e54b3eb8ba9358af93819d41f4a5a8f8b7d8b8399c,3544 original: hackage: amazonka-1.6.1 - completed: - hackage: constraints-deriving-1.1.1.2@sha256:7e875b19b72920064e30ab722f01a7de2d4ee7840c2889c116297a4549262b72,4027 pantry-tree: - size: 3377 sha256: 49c39bb5d120a14f475964b6337288590f12374e94471e6e637c4ca0f5553988 + size: 3377 + hackage: constraints-deriving-1.1.1.2@sha256:7e875b19b72920064e30ab722f01a7de2d4ee7840c2889c116297a4549262b72,4027 original: hackage: constraints-deriving-1.1.1.2 - completed: - hackage: cryptostore-0.2.1.0@sha256:9896e2984f36a1c8790f057fd5ce3da4cbcaf8aa73eb2d9277916886978c5b19,3881 pantry-tree: - size: 8596 sha256: e392f8dded050690140636b81433fb350bd87dd21643dde9a2f0aa344cf038e5 + size: 8596 + hackage: cryptostore-0.2.1.0@sha256:9896e2984f36a1c8790f057fd5ce3da4cbcaf8aa73eb2d9277916886978c5b19,3881 original: hackage: cryptostore-0.2.1.0 - completed: - hackage: dimensions-2.1.1.0@sha256:ce33d4765e00e726ae7925f226fc685abd81afc7853cb861b4e04c186e90ad5a,2263 pantry-tree: - size: 1303 sha256: 5e45ec67acfd851e448db156b7c24859c8447c48f7670080b330c64fc9039a4b + size: 1303 + hackage: dimensions-2.1.1.0@sha256:ce33d4765e00e726ae7925f226fc685abd81afc7853cb861b4e04c186e90ad5a,2263 original: hackage: dimensions-2.1.1.0 - completed: - hackage: hfsevents-0.1.6@sha256:295b29e8a4ac51a0015f4fb92b4140139d7b13ed691318159a20f85ce785dac6,863 pantry-tree: - size: 438 sha256: 14370510ec9a045fdc5b7e614279a84e3540a968f8b5ad12b8796916c4d6d1ee + size: 438 + hackage: hfsevents-0.1.6@sha256:295b29e8a4ac51a0015f4fb92b4140139d7b13ed691318159a20f85ce785dac6,863 original: hackage: hfsevents-0.1.6 - completed: - hackage: lzma-clib-5.2.2@sha256:25eb43d5fd8a8ab58380f475b91fb1fa907381f8a81c8d8ba63ba428d97ae0cc,4900 pantry-tree: - size: 11577 sha256: ed5ce184eaad3b4239f86d1d478d0b5ed6a93af5aac72f19f376c1690585576d + size: 11577 + hackage: lzma-clib-5.2.2@sha256:25eb43d5fd8a8ab58380f475b91fb1fa907381f8a81c8d8ba63ba428d97ae0cc,4900 original: hackage: lzma-clib-5.2.2 - completed: - hackage: raven-haskell-0.1.4.0@sha256:64eca8650d140fc853a951af0cf4e2ce255b90491b9e3014d82be2e79593c43a,1251 pantry-tree: - size: 632 sha256: 19c2aaf9c09d341108777e3a4de975841f81518ed271b156983d25ec622dd266 + size: 632 + hackage: raven-haskell-0.1.4.0@sha256:64eca8650d140fc853a951af0cf4e2ce255b90491b9e3014d82be2e79593c43a,1251 original: hackage: raven-haskell-0.1.4.0 - completed: - hackage: rescue-0.4.2.1@sha256:53256f87722af6f91e9e4ed18741c5e2515a0432ae7e94b16e3edf73931ec0c3,5025 pantry-tree: - size: 1963 sha256: 74b6dfd972089dba05241803a450e808348c5db6dc204810cc01161266c72194 + size: 1963 + hackage: rescue-0.4.2.1@sha256:53256f87722af6f91e9e4ed18741c5e2515a0432ae7e94b16e3edf73931ec0c3,5025 original: hackage: rescue-0.4.2.1 - completed: - hackage: servant-ekg-0.3.1@sha256:19bd9dc3943983da8e79d6f607614c68faea4054fb889d508c8a2b67b6bdd448,2203 pantry-tree: - size: 552 sha256: 432766c31fdcd06fd2102d4d0ac63217c880d80d3bef4ad64b5b2ed95f8af355 + size: 552 + hackage: servant-ekg-0.3.1@sha256:19bd9dc3943983da8e79d6f607614c68faea4054fb889d508c8a2b67b6bdd448,2203 original: hackage: servant-ekg-0.3.1 - completed: - hackage: servant-multipart-client-0.12.1@sha256:d043063e2f33eab86840f87c4bdb16eb3fe4a5847a0b118e4f4265cf3ba4c9b3,1892 pantry-tree: - size: 400 sha256: cb02eea7894a94e5dedf5cb74fd5fc6b989711ebb46a0e14d77f74f3b89dcbe0 + size: 400 + hackage: servant-multipart-client-0.12.1@sha256:d043063e2f33eab86840f87c4bdb16eb3fe4a5847a0b118e4f4265cf3ba4c9b3,1892 original: hackage: servant-multipart-client-0.12.1 - completed: - hackage: servant-swagger-ui-redoc-0.3.4.1.22.3@sha256:538695996d0f925d2b7ac378c25eaff0cef6ca973afbdefb41db6b0ad133d0f0,1544 pantry-tree: - size: 381 sha256: 80f93d1bbdca9c08254642ed3b539172425d204cf1ffad288d02be33670f2d66 + size: 381 + hackage: servant-swagger-ui-redoc-0.3.4.1.22.3@sha256:538695996d0f925d2b7ac378c25eaff0cef6ca973afbdefb41db6b0ad133d0f0,1544 original: hackage: servant-swagger-ui-redoc-0.3.4.1.22.3 - completed: - hackage: servant-websockets-2.0.0@sha256:6e9e3600bced90fd52ed3d1bf632205cb21479075b20d6637153cc4567000234,2253 pantry-tree: - size: 523 sha256: 085c6620bff7671bef1d969652a349271c3703fbf10dd753cb63ee1cd700bca5 + size: 523 + hackage: servant-websockets-2.0.0@sha256:6e9e3600bced90fd52ed3d1bf632205cb21479075b20d6637153cc4567000234,2253 original: hackage: servant-websockets-2.0.0 - completed: - hackage: unliftio-core-0.1.2.0@sha256:b0a7652ffce2284a6cebe05c99eb60573a8fb6631163f34b0b30a80b4a78cb23,1081 pantry-tree: - size: 328 sha256: 9d970bf5f98e68e8fc129b04d6c9d8eb1e641c7556ffd0f0a168a259335b6fd7 + size: 328 + hackage: unliftio-core-0.1.2.0@sha256:b0a7652ffce2284a6cebe05c99eb60573a8fb6631163f34b0b30a80b4a78cb23,1081 original: hackage: unliftio-core-0.1.2.0 - completed: - hackage: powerdns-0.2.2@sha256:2e0d152c26e31127adcec24525c51c40faca04de8c67d1a914050d1882968871,2601 pantry-tree: - size: 828 sha256: a768e597f56bafe2c1b367dae70375ba86417f4ce82babbd9a6e3eb0512b0fd6 + size: 828 + hackage: powerdns-0.2.2@sha256:2e0d152c26e31127adcec24525c51c40faca04de8c67d1a914050d1882968871,2601 original: hackage: powerdns-0.2.2 - completed: - hackage: github-0.27@sha256:074e69ad24b94b1199331b156e5373e9d4fa4a4452e02217f3539fe94a21a838,6995 pantry-tree: - size: 7838 sha256: b1c7b80c48aa78664cbf787ca3752d7e0389e32ad12c7912680ed10fd5c513ec + size: 7838 + hackage: github-0.27@sha256:074e69ad24b94b1199331b156e5373e9d4fa4a4452e02217f3539fe94a21a838,6995 original: hackage: github-0.27 snapshots: - completed: - size: 587821 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/24.yaml - sha256: 06d844ba51e49907bd29cb58b4a5f86ee7587a4cd7e6cf395eeec16cba619ce8 - original: lts-18.24 + sha256: 428ec8d5ce932190d3cbe266b9eb3c175cd81e984babf876b64019e2cbe4ea68 + size: 590100 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/28.yaml + original: lts-18.28