diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c78f1e1244ac6a2decf5b49934ac3c7b84e5c341..c05634c2a2fe7030a3ecbdb0d4e4d26eb789edbe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,9 +13,11 @@ build: - aarch64-darwin - x86_64-linux PACKAGE: + - cardano-api - cardano-cli - cardano-node - hydra-node + - hydra-tui devour: stage: devour diff --git a/README.md b/README.md index cbc20b5bf14d2faab2ac689f9acf47d49f199b0f..aa95af87c61bab0b8e8700d665d52cbd98bed49f 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ The following things are always expected to be here: * cardano-cli * cardano-node * hydra-node +* hydra-tui ## Updating the Package Set diff --git a/horizon.dhall b/horizon.dhall index 7096fd3cd6c7c4e41a415d0d7594f6c854a678e9..a5ee2e68ed5ce5a148391412821e8247b692a0ca 100644 --- a/horizon.dhall +++ b/horizon.dhall @@ -29,12 +29,14 @@ let packages = H.callHackage "hspec-junit-formatter" "1.1.0.2" , hydra-cardano-api = callHydra "hydra-cardano-api" , hydra-chain-observer = callHydra "hydra-chain-observer" + , hydra-cluster = callHydra "hydra-cluster" , hydra-explorer = callHydra "hydra-explorer" , hydra-prelude = callHydra "hydra-prelude" , hydra-plutus = callHydra "hydra-plutus" , hydra-plutus-extras = callHydra "hydra-plutus-extras" , hydra-node = callHydra "hydra-node" , hydra-test-utils = callHydra "hydra-test-utils" + , hydra-tui = callHydra "hydra-tui" , prometheus = H.callHackage "prometheus" "2.2.4" , iso8601-time = H.callHackage "iso8601-time" "0.1.5" , modern-uri = H.callHackage "modern-uri" "0.3.6.1" diff --git a/horizon.lock b/horizon.lock index dd47171e5be5923e841aada7628e577cafea6b81..f3106967fae5dbe3d8e68ad44d25f715c4aa6553 100644 --- a/horizon.lock +++ b/horizon.lock @@ -34,6 +34,10 @@ , mapValue = "bbdefe4c7b508f5ba34d1a337fabe8b012d700a8c55ff1634483c88f3d1118a5" } +, { mapKey = "hydra-cluster" + , mapValue = + "75ba619576da9ec6644ca305e2056c1c895248203257c15359bb31d220b56b99" + } , { mapKey = "hydra-explorer" , mapValue = "73391a510ae251a75ac6e93563449a44456e3ef88f94d61906592e1ad190329f" @@ -58,6 +62,10 @@ , mapValue = "715ee83e164aaa12d3d5273e405a82b8f18e2a24fdef0f542a6a6fa39982abab" } +, { mapKey = "hydra-tui" + , mapValue = + "a1120dd5aeeefb46237ac34f89ee387705c5dae2b656b9ab7f0adb62f0ecf6c9" + } , { mapKey = "iso8601-time" , mapValue = "973d6098c03af5f6f0de5dd2443273ecc3ab11fe0b45809f0e3ddee8ab6df0c3" diff --git a/overlay.nix b/overlay.nix index c8972bbe473289680bc08380226aa94146c2acf8..06d0641b9e03dbb8d1ca59c4803133328d34f2eb 100644 --- a/overlay.nix +++ b/overlay.nix @@ -20,6 +20,8 @@ final: prev: with pkgs.haskell.lib; { hydra-chain-observer = f final prev "hydra-chain-observer" (final.callPackage (./pkgs/hydra-chain-observer.nix) { }); + hydra-cluster = f final prev "hydra-cluster" (final.callPackage (./pkgs/hydra-cluster.nix) { }); + hydra-explorer = f final prev "hydra-explorer" (final.callPackage (./pkgs/hydra-explorer.nix) { }); hydra-node = f final prev "hydra-node" (final.callPackage (./pkgs/hydra-node.nix) { }); @@ -32,6 +34,8 @@ final: prev: with pkgs.haskell.lib; { hydra-test-utils = f final prev "hydra-test-utils" (final.callPackage (./pkgs/hydra-test-utils.nix) { }); + hydra-tui = f final prev "hydra-tui" (final.callPackage (./pkgs/hydra-tui.nix) { }); + iso8601-time = f final prev "iso8601-time" (final.callPackage (./pkgs/iso8601-time.nix) { }); modern-uri = f final prev "modern-uri" (final.callPackage (./pkgs/modern-uri.nix) { }); diff --git a/pkgs/hydra-cluster.nix b/pkgs/hydra-cluster.nix new file mode 100644 index 0000000000000000000000000000000000000000..0144ed9bea4b54de939db90d0ba5c21959351416 --- /dev/null +++ b/pkgs/hydra-cluster.nix @@ -0,0 +1,64 @@ +{ mkDerivation, HUnit, QuickCheck, aeson, async, base, bytestring +, cardano-ledger-api, cardano-slotting, containers, contra-tracer +, data-default, directory, fetchgit, filepath, hspec +, hspec-discover, hspec-golden-aeson, http-client, http-conduit +, hydra-cardano-api, hydra-chain-observer, hydra-explorer +, hydra-node, hydra-prelude, hydra-test-utils, io-classes +, iohk-monitoring, lens, lens-aeson, lib, optparse-applicative +, process, regex-tdfa, req, scientific, statistics, stm, temporary +, text, time, typed-process, unix, vector, websockets +}: +mkDerivation { + pname = "hydra-cluster"; + version = "0.17.0"; + src = fetchgit { + url = "https://github.com/input-output-hk/hydra"; + sha256 = "0fk4bjx7hh8hff9hjzdhdkm3px5a8z730xx2f0ly93cl9n93qfbs"; + rev = "aeb17ef49017937615dd67a4bc0da23bebdfd4bd"; + fetchSubmodules = true; + }; + postUnpack = "sourceRoot+=/hydra-cluster/; echo source root reset to $sourceRoot"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + aeson async base bytestring cardano-slotting containers + contra-tracer data-default directory filepath http-conduit + hydra-cardano-api hydra-node hydra-prelude hydra-test-utils + io-classes iohk-monitoring lens lens-aeson optparse-applicative + process QuickCheck req temporary text time typed-process unix + websockets + ]; + executableHaskellDepends = [ + directory filepath hydra-node hydra-prelude hydra-test-utils + optparse-applicative + ]; + executableToolDepends = [ hydra-node ]; + testHaskellDepends = [ + aeson async base bytestring cardano-ledger-api containers directory + filepath hspec hspec-golden-aeson http-client http-conduit + hydra-cardano-api hydra-explorer hydra-node hydra-prelude + hydra-test-utils io-classes lens lens-aeson process QuickCheck stm + text time + ]; + testToolDepends = [ + hspec-discover hydra-chain-observer hydra-explorer hydra-node + ]; + benchmarkHaskellDepends = [ + aeson base containers directory filepath HUnit hydra-cardano-api + hydra-node hydra-prelude hydra-test-utils io-classes lens + lens-aeson optparse-applicative process QuickCheck regex-tdfa + scientific statistics time vector + ]; + benchmarkToolDepends = [ hydra-node ]; + enableLibraryProfiling = true; + enableExecutableProfiling = true; + doHaddock = true; + jailbreak = true; + doCheck = false; + doBenchmark = false; + hyperlinkSource = false; + description = "Integration test suite using a local cluster of cardano and hydra nodes"; + license = lib.licenses.asl20; + broken = false; +} \ No newline at end of file diff --git a/pkgs/hydra-tui.nix b/pkgs/hydra-tui.nix new file mode 100644 index 0000000000000000000000000000000000000000..c1d0a9f9274340145fb917be348529828c6d818f --- /dev/null +++ b/pkgs/hydra-tui.nix @@ -0,0 +1,43 @@ +{ mkDerivation, aeson, async, base, blaze-builder, brick +, bytestring, containers, fetchgit, filepath, hspec, hspec-discover +, hydra-cardano-api, hydra-cluster, hydra-node, hydra-prelude +, hydra-test-utils, io-classes, lib, microlens, microlens-mtl +, microlens-th, optparse-applicative, regex-tdfa, req, text, time +, unix, vty, vty-unix, websockets +}: +mkDerivation { + pname = "hydra-tui"; + version = "0.17.0"; + src = fetchgit { + url = "https://github.com/input-output-hk/hydra"; + sha256 = "0fk4bjx7hh8hff9hjzdhdkm3px5a8z730xx2f0ly93cl9n93qfbs"; + rev = "aeb17ef49017937615dd67a4bc0da23bebdfd4bd"; + fetchSubmodules = true; + }; + postUnpack = "sourceRoot+=/hydra-tui/; echo source root reset to $sourceRoot"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = false; + libraryHaskellDepends = [ + aeson async base brick containers hydra-cardano-api hydra-node + hydra-prelude io-classes microlens microlens-mtl microlens-th + optparse-applicative req text time vty vty-unix websockets + ]; + executableHaskellDepends = [ hydra-prelude optparse-applicative ]; + testHaskellDepends = [ + blaze-builder bytestring filepath hspec hydra-cardano-api + hydra-cluster hydra-node hydra-prelude hydra-test-utils io-classes + optparse-applicative regex-tdfa unix vty vty-unix + ]; + testToolDepends = [ hspec-discover hydra-node ]; + enableLibraryProfiling = true; + enableExecutableProfiling = true; + doHaddock = true; + jailbreak = true; + doCheck = false; + doBenchmark = false; + hyperlinkSource = false; + description = "TUI for managing a Hydra node"; + license = lib.licenses.asl20; + broken = false; +} \ No newline at end of file