diff --git a/README.md b/README.md index 09891ef..1e4ed45 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# protobufs.nix +# proto.nix Nix utilities for generating language-specific bindings from [Google Protocol Buffers](https://developers.google.com/protocol-buffers) `.proto` files. @@ -7,6 +7,90 @@ The intended goal is to enable [Bazel-like](https://blog.bazel.build/2017/02/27/protocol-buffers.html) Google Protobuf workflows with Nix. +Quick example showing how to build a Haskell Cabal and Markdown documentation package from a .proto schema: + +```nix +let + example-hs-pb = proto-nix.haskellProto { + src = ./.; + protos = ["example.proto"]; + cabalPackageName = "addressbook-pb"; + } + + example-api-docs = proto-nix.docProto { + src = ./.; + protos = ["example.proto"]; + } +``` + +## Overview + +### src + +Directory containing the implementation of PB Nix utilities (functions and flake-parts modules). + +See the [build.nix](./src/build.nix) for available build outputs. + +```shell +# Open the Nix REPL to inspect the Flake outputs +$ nix repl +# Inspects the `lib` functions +nix-repl> :lf . +nix-repl> lib.x86_64-linux. +lib.x86_64-linux.haskellProto +lib.x86_64-linux.docProto +``` + +### google-pb + +Directory containing the `protoc` generated libraries for [standard Google .proto schemas](https://github.com/protocolbuffers/protobuf/tree/main/src). + +See the [build.nix](./google-pb/build.nix) for available build outputs. + +```shell +# Builds the Google's descriptor.proto Haskell library +$ nix build .#descriptor-hs-pb +# Inspects the result +$ find result/ +result/ +result/descriptor-pb.cabal +result/src +result/src/Proto +result/src/Proto/Google +result/src/Proto/Google/Protobuf +result/src/Proto/Google/Protobuf/Descriptor.hs +result/src/Proto/Google/Protobuf/Descriptor_Fields.hs +``` + +### tests + +Directory containing some tests and demonstration on how to use proto-nix. + +```shell +# Builds the AddressBook canonical API Haskell library +$ nix build .#address-book-hs-pb +# Inspects the result +$ find result/ +result/ +result/addressbook-pb.cabal +result/addressbook.proto +result/src +result/src/Proto +result/src/Proto/Addressbook_Fields.hs +result/src/Proto/Addressbook.hs +``` + +### docs + +Directory containing proto.nix (also auto generated) documentation. + +```shell +# Builds the proto-nix book +$ nix build .#proto-nix-book +# Opens the generated documentation with Chrome +$ chromium result/index.html +``` + ## Getting started ### Installing Nix @@ -75,46 +159,4 @@ shellcheck...........................................(no files to check)Skipped typos....................................................................Passed ``` -to run all the code quality tooling specified in the [pre-commit-check.nix config file](./pre-commit-check.nix) - -## Library reference - -With the following Flake... - -```nix -{ - description = "My AddressBook application"; - - inputs = { - haskell-nix.url = "github:input-output-hk/haskell.nix"; - nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; - flake-utils.url = "github:numtide/flake-utils"; - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - protobufs-nix.url = "github:mlabs-haskell/protobufs.nix"; - mlabs-tooling.url = "github:mlabs-haskell/mlabs-tooling.nix"; - }; -``` - -### haskellProto - -```nix -inherit (inputs.protobufs-nix) haskellProto googleHsPbs googleHsPbsExtraHackage - -addressBookHsPb = haskellProto { - inherit pkgs; - src = "${inputs.protobufs-nix}/test-proto"; - proto = "addressbook.proto"; - cabalBuildDepends = [ googleHsPbs.timestamp-pb ]; - cabalPackageName = "addressbook-pb"; -}; - -addressBookAppHsProj = hnix.cabalProject' [ - mlabs-tooling.lib.mkHackageMod - ({ - src = ./.; - compiler-nix-name = "ghc924"; - extraHackage = protobufs-nix.googlePbExtraHackage; - }) -]; -addressBookAppHsFlake = addressBookAppHsProj.flake { }; -``` +to run all the code quality tooling specified in the [Pre Commit hooks config file](./pre-commit.nix) diff --git a/docs/.envrc b/docs/.envrc new file mode 100644 index 0000000..378d8c9 --- /dev/null +++ b/docs/.envrc @@ -0,0 +1 @@ +use flake ..#dev-docs diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md new file mode 100644 index 0000000..a6a0c15 --- /dev/null +++ b/docs/SUMMARY.md @@ -0,0 +1,4 @@ +# Summary + +- [AddressBook API](address-book-api.md) +- [Google API](google-api.md) diff --git a/docs/book.toml b/docs/book.toml new file mode 100644 index 0000000..e12d5fb --- /dev/null +++ b/docs/book.toml @@ -0,0 +1,7 @@ +[book] +authors = [ +] +language = "en" +multilingual = false +src = "." +title = "proto.nix documentation" \ No newline at end of file diff --git a/docs/build.nix b/docs/build.nix new file mode 100644 index 0000000..3ddcee9 --- /dev/null +++ b/docs/build.nix @@ -0,0 +1,21 @@ +_: { + perSystem = { pkgs, config, ... }: + { + devShells.dev-docs = pkgs.mkShell { + name = "docs-env"; + packages = [ pkgs.mdbook ]; + }; + + packages.proto-nix-book = pkgs.stdenv.mkDerivation { + src = ./.; + name = "proto-nix-book"; + buildInputs = [ pkgs.mdbook ]; + buildPhase = '' + cp ${config.packages.address-book-docs}/api.md address-book-api.md; + cp ${config.packages.google-pb-docs}/api.md google-api.md; + mdbook build . --dest-dir $out + ''; + }; + + }; +} diff --git a/flake.lock b/flake.lock index 96fefac..84b06b2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,22 +1,5 @@ { "nodes": { - "CHaP": { - "flake": false, - "locked": { - "lastModified": 1666576849, - "narHash": "sha256-FDFmN3TzQsUjNxGlKKTFpLOUOnvsQMNI4o3MahJw9zA=", - "owner": "input-output-hk", - "repo": "cardano-haskell-packages", - "rev": "97aab5bc3f59108d97a6bb0c4d07ae1b79b005ca", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "repo", - "repo": "cardano-haskell-packages", - "type": "github" - } - }, "HTTP": { "flake": false, "locked": { @@ -33,98 +16,6 @@ "type": "github" } }, - "HTTP_2": { - "flake": false, - "locked": { - "lastModified": 1451647621, - "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", - "owner": "phadej", - "repo": "HTTP", - "rev": "9bc0996d412fef1787449d841277ef663ad9a915", - "type": "github" - }, - "original": { - "owner": "phadej", - "repo": "HTTP", - "type": "github" - } - }, - "HTTP_3": { - "flake": false, - "locked": { - "lastModified": 1451647621, - "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", - "owner": "phadej", - "repo": "HTTP", - "rev": "9bc0996d412fef1787449d841277ef663ad9a915", - "type": "github" - }, - "original": { - "owner": "phadej", - "repo": "HTTP", - "type": "github" - } - }, - "blank": { - "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "blank", - "type": "github" - } - }, - "blank_2": { - "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "blank", - "type": "github" - } - }, - "blank_3": { - "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "blank", - "type": "github" - } - }, - "blank_4": { - "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "blank", - "type": "github" - } - }, "cabal-32": { "flake": false, "locked": { @@ -142,2725 +33,708 @@ "type": "github" } }, - "cabal-32_2": { + "cabal-34": { "flake": false, "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { "owner": "haskell", - "ref": "3.2", + "ref": "3.4", "repo": "cabal", "type": "github" } }, - "cabal-32_3": { + "cabal-36": { "flake": false, "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "lastModified": 1669081697, + "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", "owner": "haskell", "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", "type": "github" }, "original": { "owner": "haskell", - "ref": "3.2", + "ref": "3.6", "repo": "cabal", "type": "github" } }, - "cabal-34": { + "cardano-shell": { "flake": false, "locked": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", - "owner": "haskell", - "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "cabal-34_2": { + "flake-compat": { "flake": false, "locked": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", - "owner": "haskell", - "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "cabal-34_3": { + "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", - "owner": "haskell", - "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "cabal-36": { - "flake": false, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, "locked": { - "lastModified": 1641652457, - "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", - "owner": "haskell", - "repo": "cabal", - "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.6", - "repo": "cabal", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "cabal-36_2": { - "flake": false, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "hci-effects", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1641652457, - "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", - "owner": "haskell", - "repo": "cabal", - "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.6", - "repo": "cabal", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, - "cabal-36_3": { - "flake": false, + "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1641652457, - "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", - "owner": "haskell", - "repo": "cabal", - "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { - "owner": "haskell", - "ref": "3.6", - "repo": "cabal", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "cardano-haskell-packages": { + "ghc-8.6.5-iohk": { "flake": false, "locked": { - "lastModified": 1670900592, - "narHash": "sha256-SZlQp3W0WdxB00gO5A0krgDw7CLESm5jWZ6S+GPxCxA=", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", "owner": "input-output-hk", - "repo": "cardano-haskell-packages", - "rev": "052db7f6a2d5d24cfce829868d1a54e339dea229", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "repo", - "repo": "cardano-haskell-packages", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "cardano-shell": { + "ghc98X": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", - "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", - "type": "github" + "lastModified": 1696643148, + "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", + "ref": "ghc-9.8", + "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", + "revCount": 61642, + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "owner": "input-output-hk", - "repo": "cardano-shell", - "type": "github" + "ref": "ghc-9.8", + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "cardano-shell_2": { + "ghc99": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", - "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "lastModified": 1697054644, + "narHash": "sha256-kKarOuXUaAH3QWv7ASx+gGFMHaHKe0pK5Zu37ky2AL4=", + "ref": "refs/heads/master", + "rev": "f383a242c76f90bcca8a4d7ee001dcb49c172a9a", + "revCount": 62040, + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cardano-shell", + "owner": "hercules-ci", + "repo": "gitignore.nix", "type": "github" } }, - "cardano-shell_3": { + "hackage": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1701994987, + "narHash": "sha256-FxWBtTOmLXRPV8CV9S3+PtCVwYQyjbyFzzCM9iE5UMY=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "hackage.nix", + "rev": "d647d66c6d0f04f2734b87c9f7da4eb52fac4006", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "repo": "hackage.nix", "type": "github" } }, - "devshell": { + "haskell-nix": { "inputs": { - "flake-utils": [ - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], + "HTTP": "HTTP", + "cabal-32": "cabal-32", + "cabal-34": "cabal-34", + "cabal-36": "cabal-36", + "cardano-shell": "cardano-shell", + "flake-compat": "flake-compat", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", + "ghc98X": "ghc98X", + "ghc99": "ghc99", + "hackage": "hackage", + "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", + "hls-2.2": "hls-2.2", + "hls-2.3": "hls-2.3", + "hls-2.4": "hls-2.4", + "hpc-coveralls": "hpc-coveralls", + "hydra": "hydra", + "iserv-proxy": "iserv-proxy", "nixpkgs": [ "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] + "nixpkgs-unstable" + ], + "nixpkgs-2003": "nixpkgs-2003", + "nixpkgs-2105": "nixpkgs-2105", + "nixpkgs-2111": "nixpkgs-2111", + "nixpkgs-2205": "nixpkgs-2205", + "nixpkgs-2211": "nixpkgs-2211", + "nixpkgs-2305": "nixpkgs-2305", + "nixpkgs-unstable": "nixpkgs-unstable", + "old-ghc-nix": "old-ghc-nix", + "stackage": "stackage" }, "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "lastModified": 1701996616, + "narHash": "sha256-OTZVrJg3+A1/H1Tc+0q02GPxMAKwHa7tnBcvgjQDe/Y=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "5e83e49b5739e7d346f5a02312fe91dd233260c7", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "haskell.nix", "type": "github" } }, - "devshell_2": { + "hci-effects": { "inputs": { - "flake-utils": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "lastModified": 1701009247, + "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", "type": "github" } }, - "devshell_3": { - "inputs": { - "flake-utils": [ - "mlabs-tooling", - "plutus", - "std", - "flake-utils" - ], - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "std", - "nixpkgs" - ] - }, + "hls-1.10": { + "flake": false, "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", "type": "github" } }, - "devshell_4": { - "inputs": { - "flake-utils": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "nixpkgs" - ] - }, + "hls-2.0": { + "flake": false, "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "lastModified": 1687698105, + "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "783905f211ac63edf982dd1889c671653327e441", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "haskell", + "ref": "2.0.0.1", + "repo": "haskell-language-server", "type": "github" } }, - "dmerge": { - "inputs": { - "nixlib": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "haskell-nix", - "tullia", - "std", - "yants" - ] - }, + "hls-2.2": { + "flake": false, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", "type": "github" } }, - "dmerge_2": { - "inputs": { - "nixlib": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "yants" - ] - }, + "hls-2.3": { + "flake": false, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", "type": "github" } }, - "dmerge_3": { - "inputs": { - "nixlib": [ - "mlabs-tooling", - "plutus", - "std", - "nixpkgs" - ], - "yants": [ - "mlabs-tooling", - "plutus", - "std", - "yants" - ] - }, + "hls-2.4": { + "flake": false, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1696939266, + "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "haskell", + "ref": "2.4.0.0", + "repo": "haskell-language-server", "type": "github" } }, - "dmerge_4": { - "inputs": { - "nixlib": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "yants" - ] - }, + "hpc-coveralls": { + "flake": false, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "sevanspowell", + "repo": "hpc-coveralls", "type": "github" } }, - "ema": { + "http2-grpc-native": { "flake": false, "locked": { - "lastModified": 1668972953, - "narHash": "sha256-WyTqCQg9xPqB2wC16PdjocaIL81MBLtjgC3eCzhN5hE=", - "owner": "EmaApps", - "repo": "ema", - "rev": "61faae56aa0f3c6ca815f344684cc566f6341662", + "lastModified": 1657722007, + "narHash": "sha256-yvwCkJBvfM51sp8FfbJe4IGpJpmi2Aag9WamuHLYHBo=", + "owner": "bladyjoker", + "repo": "http2-grpc-haskell", + "rev": "182cbbd50e8968f696f9f5583827073da86cd872", "type": "github" }, "original": { - "owner": "EmaApps", - "repo": "ema", + "owner": "bladyjoker", + "repo": "http2-grpc-haskell", "type": "github" } }, - "emanote": { + "hydra": { "inputs": { - "ema": "ema", - "flake-parts": "flake-parts", - "haskell-flake": "haskell-flake", - "heist": "heist", - "heist-extra": "heist-extra", + "nix": "nix", "nixpkgs": [ - "mlabs-tooling", + "haskell-nix", + "hydra", + "nix", "nixpkgs" ] }, "locked": { - "lastModified": 1670780484, - "narHash": "sha256-U/TqZ69T0owzlPbNlaLo8FkUdA6ifHT6wTk01VisaS0=", - "owner": "srid", - "repo": "emanote", - "rev": "465a22b13bc3c608bce28725b7de59089bb03683", + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", "type": "github" }, "original": { - "owner": "srid", - "ref": "master", - "repo": "emanote", - "type": "github" + "id": "hydra", + "type": "indirect" } }, - "flake-compat": { + "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", - "type": "github" + "lastModified": 1691634696, + "narHash": "sha256-MZH2NznKC/gbgBu8NgIibtSUZeJ00HTLJ0PlWKCBHb0=", + "ref": "hkm/remote-iserv", + "rev": "43a979272d9addc29fbffc2e8542c5d96e993d73", + "revCount": 14, + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" }, "original": { - "owner": "input-output-hk", - "repo": "flake-compat", - "type": "github" + "ref": "hkm/remote-iserv", + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" } }, - "flake-compat_2": { + "lowdown-src": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "kristapsdz", + "repo": "lowdown", "type": "github" } }, - "flake-compat_3": { - "flake": false, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": "nixpkgs", + "nixpkgs-regression": "nixpkgs-regression" + }, "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "flake-compat", + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", "type": "github" } }, - "flake-compat_4": { - "flake": false, + "nixpkgs": { "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", "type": "github" } }, - "flake-compat_5": { - "flake": false, + "nixpkgs-2003": { "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "flake-compat", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-compat_6": { - "flake": false, + "nixpkgs-2105": { "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-compat_7": { - "flake": false, + "nixpkgs-2111": { "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, + "nixpkgs-2205": { "locked": { - "lastModified": 1668450977, - "narHash": "sha256-cfLhMhnvXn6x1vPm+Jow3RiFAUSCw/l1utktCw5rVA4=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "d591857e9d7dd9ddbfba0ea02b43b927c3c0f1fa", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "nixpkgs" - ] - }, + "nixpkgs-2211": { "locked": { - "lastModified": 1664391900, - "narHash": "sha256-hQWV36ptF8pQY9J+finEOYUxhfSjbB6aDHXw/4go+44=", - "owner": "mlabs-haskell", - "repo": "flake-parts", - "rev": "a8a2d7085a2ffbf06c7b11767018dd7a4c5d4e1b", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "ref": "fix-for-ifd", - "repo": "flake-parts", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-utils": { + "nixpkgs-2305": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "lastModified": 1695416179, + "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "flake-utils_10": { + "nixpkgs-lib": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "dir": "lib", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "flake-utils_11": { + "nixpkgs-regression": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "flake-utils_12": { + "nixpkgs-stable": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", "type": "github" } }, - "flake-utils_13": { + "nixpkgs-unstable": { "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" - } - }, - "flake-utils_14": { - "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" - } - }, - "flake-utils_15": { - "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_16": { - "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" - } - }, - "flake-utils_17": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "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" - } - }, - "flake-utils_4": { - "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_5": { - "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" - } - }, - "flake-utils_6": { - "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_7": { - "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" - } - }, - "flake-utils_8": { - "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_9": { - "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" - } - }, - "ghc-8.6.5-iohk": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, - "ghc-8.6.5-iohk_2": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, - "ghc-8.6.5-iohk_3": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore-nix": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gomod2nix": { - "inputs": { - "nixpkgs": "nixpkgs_2", - "utils": "utils" - }, - "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", - "type": "github" - }, - "original": { - "owner": "tweag", - "repo": "gomod2nix", - "type": "github" - } - }, - "gomod2nix_2": { - "inputs": { - "nixpkgs": "nixpkgs_6", - "utils": "utils_2" - }, - "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", - "type": "github" - }, - "original": { - "owner": "tweag", - "repo": "gomod2nix", - "type": "github" - } - }, - "gomod2nix_3": { - "inputs": { - "nixpkgs": "nixpkgs_12", - "utils": "utils_3" - }, - "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", - "type": "github" - }, - "original": { - "owner": "tweag", - "repo": "gomod2nix", - "type": "github" - } - }, - "hackage": { - "flake": false, - "locked": { - "lastModified": 1671409472, - "narHash": "sha256-XPTmsbgw4eaNzGsk5iCg+KMC5bgZViIuF0rDovyrZ28=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "ffecef84eaacdce9c02820ae46f57f203b41ab07", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", - "type": "github" - } - }, - "hackage-nix": { - "flake": false, - "locked": { - "lastModified": 1667178734, - "narHash": "sha256-0GwFFm9S+2ulW3nFFEONPu7QlM8igY6dwdxhrsjZURM=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "e24596503629164425c339135fd19a0edbcd6d2f", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", - "type": "github" - } - }, - "hackage_2": { - "flake": false, - "locked": { - "lastModified": 1670891293, - "narHash": "sha256-GeM+cYlkCAjLdOu+he9bmaL/hBj3XrVSrNUP4p4OQdg=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "a63a92060aa872b284db85fb914a7732931a0132", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", - "type": "github" - } - }, - "haskell-flake": { - "locked": { - "lastModified": 1668167720, - "narHash": "sha256-5wDTR6xt9BB3BjgKR+YOjOkZgMyDXKaX79g42sStzDU=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "4fc511d93a55fedf815c1647ad146c26d7a2054e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-language-server": { - "flake": false, - "locked": { - "lastModified": 1663135728, - "narHash": "sha256-ghyyig0GZXRXS56FxH8unpDceU06i/uGBCBmRwneZPw=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "ddb21a0c8d4e657c4b81ce250239bccf28fc9524", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "1.8.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "haskell-nix": { - "inputs": { - "HTTP": "HTTP", - "cabal-32": "cabal-32", - "cabal-34": "cabal-34", - "cabal-36": "cabal-36", - "cardano-shell": "cardano-shell", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", - "hackage": "hackage", - "hpc-coveralls": "hpc-coveralls", - "hydra": "hydra", - "iserv-proxy": "iserv-proxy", - "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003", - "nixpkgs-2105": "nixpkgs-2105", - "nixpkgs-2111": "nixpkgs-2111", - "nixpkgs-2205": "nixpkgs-2205", - "nixpkgs-2211": "nixpkgs-2211", - "nixpkgs-unstable": "nixpkgs-unstable", - "old-ghc-nix": "old-ghc-nix", - "stackage": "stackage", - "tullia": "tullia" - }, - "locked": { - "lastModified": 1671411088, - "narHash": "sha256-k1hfa96yZinHI9fCztseFvUL+N7ezRMIRNXKvgqv75c=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "d44f7325d753d2d7b3dd4f95e2040f6776e38772", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "haskell-nix_2": { - "inputs": { - "HTTP": "HTTP_2", - "cabal-32": "cabal-32_2", - "cabal-34": "cabal-34_2", - "cabal-36": "cabal-36_2", - "cardano-shell": "cardano-shell_2", - "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_6", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", - "hackage": "hackage_2", - "hpc-coveralls": "hpc-coveralls_2", - "hydra": "hydra_2", - "iserv-proxy": "iserv-proxy_2", - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_2", - "nixpkgs-2105": "nixpkgs-2105_2", - "nixpkgs-2111": "nixpkgs-2111_2", - "nixpkgs-2205": "nixpkgs-2205_2", - "nixpkgs-2211": "nixpkgs-2211_2", - "nixpkgs-unstable": "nixpkgs-unstable_2", - "old-ghc-nix": "old-ghc-nix_2", - "stackage": "stackage_2", - "tullia": "tullia_2" - }, - "locked": { - "lastModified": 1670892685, - "narHash": "sha256-8wGGO9GsW9Fdyf84c4tm6E/QL3tJIGZGi/njO9pluAg=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "bc1444ec292a42eb63b574412223837fe9aca57c", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "haskell-nix_3": { - "inputs": { - "HTTP": "HTTP_3", - "cabal-32": "cabal-32_3", - "cabal-34": "cabal-34_3", - "cabal-36": "cabal-36_3", - "cardano-shell": "cardano-shell_3", - "flake-compat": "flake-compat_5", - "flake-utils": "flake-utils_10", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", - "hackage": [ - "mlabs-tooling", - "plutus", - "hackage-nix" - ], - "hpc-coveralls": "hpc-coveralls_3", - "hydra": "hydra_3", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_3", - "nixpkgs-2105": "nixpkgs-2105_3", - "nixpkgs-2111": "nixpkgs-2111_3", - "nixpkgs-2205": "nixpkgs-2205_3", - "nixpkgs-unstable": "nixpkgs-unstable_3", - "old-ghc-nix": "old-ghc-nix_3", - "stackage": "stackage_3" - }, - "locked": { - "lastModified": 1667366313, - "narHash": "sha256-P12NMyexQDaSp5jyqOn4tWZ9XTzpdRTgwb7dZy1cTDc=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "69a42f86208cbe7dcbfc32bc7ddde76ed8eeb5ed", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "heist": { - "flake": false, - "locked": { - "lastModified": 1668990382, - "narHash": "sha256-5GEnEdDmUBSxrF0IWwiu5eNvtublv0rY7OEpvaU1NG0=", - "owner": "snapframework", - "repo": "heist", - "rev": "88105c85996b8d621922b38e67b9460b36ccad51", - "type": "github" - }, - "original": { - "owner": "snapframework", - "repo": "heist", - "type": "github" - } - }, - "heist-extra": { - "flake": false, - "locked": { - "lastModified": 1668486579, - "narHash": "sha256-VmyGntVH/tVosftplC4O0JhYA34kXeq1Wu/RbJr132Y=", - "owner": "srid", - "repo": "heist-extra", - "rev": "da94abfa68f67933baef9b529fe8d2a4edc572d5", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "heist-extra", - "type": "github" - } - }, - "hpc-coveralls": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", - "type": "github" - }, - "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "type": "github" - } - }, - "hpc-coveralls_2": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", - "type": "github" - }, - "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "type": "github" - } - }, - "hpc-coveralls_3": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", - "type": "github" - }, - "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "type": "github" - } - }, - "http2-grpc-native": { - "flake": false, - "locked": { - "lastModified": 1657722007, - "narHash": "sha256-yvwCkJBvfM51sp8FfbJe4IGpJpmi2Aag9WamuHLYHBo=", - "owner": "bladyjoker", - "repo": "http2-grpc-haskell", - "rev": "182cbbd50e8968f696f9f5583827073da86cd872", - "type": "github" - }, - "original": { - "owner": "bladyjoker", - "repo": "http2-grpc-haskell", - "type": "github" - } - }, - "hydra": { - "inputs": { - "nix": "nix", - "nixpkgs": [ - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", - "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" - } - }, - "hydra_2": { - "inputs": { - "nix": "nix_2", - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", - "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" - } - }, - "hydra_3": { - "inputs": { - "nix": "nix_3", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", - "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" - } - }, - "iohk-nix": { - "flake": false, - "locked": { - "lastModified": 1670489000, - "narHash": "sha256-JewWjqVJSt+7eZQT9bGdhlSsS9dmsSKsMzK9g11tcLU=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "61510bb482eaca8cb7d61f40f5d375d95ea1fbf7", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "type": "github" - } - }, - "iohk-nix_2": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1666358508, - "narHash": "sha256-ediFkDOBP7yVquw1XtHiYfuXKoEnvKGjTIAk9mC6qxo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "4848df60660e21fbb3fe157d996a8bac0a9cf2d6", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "type": "github" - } - }, - "iserv-proxy": { - "flake": false, - "locked": { - "lastModified": 1639165170, - "narHash": "sha256-QsWL/sBDL5GM8IXd/dE/ORiL4RvteEN+aok23tXgAoc=", - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", - "revCount": 7, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" - }, - "original": { - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", - "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" - } - }, - "iserv-proxy_2": { - "flake": false, - "locked": { - "lastModified": 1639165170, - "narHash": "sha256-QsWL/sBDL5GM8IXd/dE/ORiL4RvteEN+aok23tXgAoc=", - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", - "revCount": 7, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" - }, - "original": { - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", - "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" - } - }, - "lowdown-src": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, - "lowdown-src_2": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, - "lowdown-src_3": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, - "mdbook-kroki-preprocessor": { - "flake": false, - "locked": { - "lastModified": 1661755005, - "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", - "type": "github" - }, - "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "type": "github" - } - }, - "mdbook-kroki-preprocessor_2": { - "flake": false, - "locked": { - "lastModified": 1661755005, - "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", - "type": "github" - }, - "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "type": "github" - } - }, - "mdbook-kroki-preprocessor_3": { - "flake": false, - "locked": { - "lastModified": 1661755005, - "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", - "type": "github" - }, - "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "type": "github" - } - }, - "mdbook-kroki-preprocessor_4": { - "flake": false, - "locked": { - "lastModified": 1661755005, - "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", - "type": "github" - }, - "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "type": "github" - } - }, - "mlabs-tooling": { - "inputs": { - "cardano-haskell-packages": "cardano-haskell-packages", - "emanote": "emanote", - "flake-parts": "flake-parts_2", - "haskell-nix": "haskell-nix_2", - "iohk-nix": "iohk-nix", - "nixpkgs": "nixpkgs_9", - "plutus": "plutus" - }, - "locked": { - "lastModified": 1671582351, - "narHash": "sha256-SrNXbfheBuXTW8brxg//fHSbV249UlpWTQAg+3UPAHk=", - "owner": "mlabs-haskell", - "repo": "mlabs-tooling.nix", - "rev": "2376c911c6f8b6dcf46f479afddd671b3d37de78", - "type": "github" - }, - "original": { - "owner": "mlabs-haskell", - "repo": "mlabs-tooling.nix", - "type": "github" - } - }, - "n2c": { - "inputs": { - "flake-utils": "flake-utils_5", - "nixpkgs": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "n2c_2": { - "inputs": { - "flake-utils": "flake-utils_9", - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "n2c_3": { - "inputs": { - "flake-utils": "flake-utils_13", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "n2c_4": { - "inputs": { - "flake-utils": "flake-utils_16", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix": { - "inputs": { - "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs", - "nixpkgs-regression": "nixpkgs-regression" - }, - "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", - "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", - "type": "github" - } - }, - "nix-nomad": { - "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": [ - "haskell-nix", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix", - "nixpkgs": [ - "haskell-nix", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "haskell-nix", - "tullia", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", - "type": "github" - }, - "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", - "type": "github" - } - }, - "nix-nomad_2": { - "inputs": { - "flake-compat": "flake-compat_4", - "flake-utils": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix_2", - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", - "type": "github" - }, - "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", - "type": "github" - } - }, - "nix-nomad_3": { - "inputs": { - "flake-compat": "flake-compat_6", - "flake-utils": [ - "mlabs-tooling", - "plutus", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix_3", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "mlabs-tooling", - "plutus", - "tullia", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", - "type": "github" - }, - "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", - "type": "github" - } - }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix2container_2": { - "inputs": { - "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix2container_3": { - "inputs": { - "flake-utils": "flake-utils_14", - "nixpkgs": "nixpkgs_13" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix_2": { - "inputs": { - "lowdown-src": "lowdown-src_2", - "nixpkgs": "nixpkgs_5", - "nixpkgs-regression": "nixpkgs-regression_2" - }, - "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", - "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", - "type": "github" - } - }, - "nix_3": { - "inputs": { - "lowdown-src": "lowdown-src_3", - "nixpkgs": "nixpkgs_10", - "nixpkgs-regression": "nixpkgs-regression_3" - }, - "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", - "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", - "type": "github" - } - }, - "nixago": { - "inputs": { - "flake-utils": [ - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixago_2": { - "inputs": { - "flake-utils": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixago_3": { - "inputs": { - "flake-utils": [ - "mlabs-tooling", - "plutus", - "std", - "flake-utils" - ], - "nixago-exts": [ - "mlabs-tooling", - "plutus", - "std", - "blank" - ], - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixago_4": { - "inputs": { - "flake-utils": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs-2003": { - "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2003_2": { - "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2003_3": { - "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2105": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2105_2": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2105_3": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2111": { - "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2111_2": { - "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2111_3": { - "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2205": { - "locked": { - "lastModified": 1663981975, - "narHash": "sha256-TKaxWAVJR+a5JJauKZqibmaM5e/Pi5tBDx9s8fl/kSE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "309faedb8338d3ae8ad8f1043b3ccf48c9cc2970", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2205_2": { - "locked": { - "lastModified": 1663981975, - "narHash": "sha256-TKaxWAVJR+a5JJauKZqibmaM5e/Pi5tBDx9s8fl/kSE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "309faedb8338d3ae8ad8f1043b3ccf48c9cc2970", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2205_3": { - "locked": { - "lastModified": 1663981975, - "narHash": "sha256-TKaxWAVJR+a5JJauKZqibmaM5e/Pi5tBDx9s8fl/kSE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "309faedb8338d3ae8ad8f1043b3ccf48c9cc2970", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2211": { - "locked": { - "lastModified": 1669997163, - "narHash": "sha256-vhjC0kZMFoN6jzK0GR+tBzKi5KgBXgehadfidW8+Va4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6f87491a54d8d64d30af6663cb3bf5d2ee7db958", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2211_2": { - "locked": { - "lastModified": 1669997163, - "narHash": "sha256-vhjC0kZMFoN6jzK0GR+tBzKi5KgBXgehadfidW8+Va4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6f87491a54d8d64d30af6663cb3bf5d2ee7db958", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "dir": "lib", - "lastModified": 1665349835, - "narHash": "sha256-UK4urM3iN80UXQ7EaOappDzcisYIuEURFRoGQ/yPkug=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "34c5293a71ffdb2fe054eb5288adc1882c1eb0b1", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-regression": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_2": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_3": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1671271954, - "narHash": "sha256-cSvu+bnvN08sOlTBWbBrKaBHQZq8mvk8bgpt0ZJ2Snc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d513b448cc2a6da2c8803e3c197c9fc7e67b19e3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1663905476, - "narHash": "sha256-0CSwRKaYravh9v6qSlBpM0gNg0UhKT2lL7Yn6Zbx7UM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e14f9fb57315f0d4abde222364f19f88c77d2b79", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_2": { - "locked": { - "lastModified": 1663905476, - "narHash": "sha256-0CSwRKaYravh9v6qSlBpM0gNg0UhKT2lL7Yn6Zbx7UM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e14f9fb57315f0d4abde222364f19f88c77d2b79", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_3": { - "locked": { - "lastModified": 1663905476, - "narHash": "sha256-0CSwRKaYravh9v6qSlBpM0gNg0UhKT2lL7Yn6Zbx7UM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e14f9fb57315f0d4abde222364f19f88c77d2b79", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1663905476, - "narHash": "sha256-0CSwRKaYravh9v6qSlBpM0gNg0UhKT2lL7Yn6Zbx7UM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e14f9fb57315f0d4abde222364f19f88c77d2b79", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "lastModified": 1695318763, + "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", "type": "github" }, "original": { "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_14": { - "locked": { - "lastModified": 1665087388, - "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", - "type": "github" - }, - "original": { - "owner": "nixos", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_15": { - "locked": { - "lastModified": 1671271357, - "narHash": "sha256-xRJdLbWK4v2SewmSStYrcLa0YGJpleufl44A19XSW8k=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "40f79f003b6377bd2f4ed4027dde1f8f922995dd", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1665087388, - "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1665087388, - "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1670841420, - "narHash": "sha256-mSEia1FzrsHbfqjorMyYiX8NXdDVeR1Pw1k55jMJlJY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "33e0d99cbedf2acfd7340d2150837fbb28039a64", - "type": "github" - }, - "original": { + "lastModified": 1697723726, + "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", - "type": "github" - } - }, - "old-ghc-nix": { - "flake": false, - "locked": { - "lastModified": 1631092763, - "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", - "owner": "angerman", - "repo": "old-ghc-nix", - "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", "type": "github" }, "original": { - "owner": "angerman", - "ref": "master", - "repo": "old-ghc-nix", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "old-ghc-nix_2": { - "flake": false, + "nixpkgs_3": { "locked": { - "lastModified": 1631092763, - "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", - "owner": "angerman", - "repo": "old-ghc-nix", - "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", "type": "github" }, "original": { - "owner": "angerman", - "ref": "master", - "repo": "old-ghc-nix", + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, - "old-ghc-nix_3": { + "old-ghc-nix": { "flake": false, "locked": { "lastModified": 1631092763, @@ -2877,71 +751,20 @@ "type": "github" } }, - "plutus": { - "inputs": { - "CHaP": "CHaP", - "gitignore-nix": "gitignore-nix", - "hackage-nix": "hackage-nix", - "haskell-language-server": "haskell-language-server", - "haskell-nix": "haskell-nix_3", - "iohk-nix": "iohk-nix_2", - "nixpkgs": "nixpkgs_11", - "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "sphinxcontrib-haddock": "sphinxcontrib-haddock", - "std": "std_3", - "tullia": "tullia_3" - }, - "locked": { - "lastModified": 1670888424, - "narHash": "sha256-tLzbC5TMhzI4SAitO5ZXC4mN3HR6NDAFROJynnJIEFI=", - "owner": "input-output-hk", - "repo": "plutus", - "rev": "8b6dacf70fa57fcc63d05cc2b07c20e92ff61480", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "plutus", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_17", + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils", "gitignore": "gitignore", - "nixpkgs": "nixpkgs_15", + "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1671391305, - "narHash": "sha256-U+v+K4C1NV6RXYMhCoUIZE8u8Y6vYrtwXgpBOilDzCE=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "74966fec0b7f5d137ebe9897f32db94360fd3d5b", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-utils": "flake-utils_11", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1663082609, - "narHash": "sha256-lmCCIu4dj59qbzkGKHQtolhpIEQMeAd2XUbXVPqgPYo=", + "lastModified": 1700922917, + "narHash": "sha256-ej2fch/T584b5K9sk1UhmZF7W6wEfDHuoUYpFN8dtvM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "60cad1a326df17a8c6cf2bb23436609fdd83024e", + "rev": "e5ee5c5f3844550c01d2131096c7271cec5e9b78", "type": "github" }, "original": { @@ -2953,11 +776,11 @@ "protobuf": { "flake": false, "locked": { - "lastModified": 1671262900, - "narHash": "sha256-0H2GpgsUaZKCpg4AaWHBo0JTU/pW7AviZ5DH+KaPIzk=", + "lastModified": 1701997425, + "narHash": "sha256-q2nSlQv8IvvDseD4Oi87d+FDkaHloFHESUWR4z2L/1w=", "owner": "protocolbuffers", "repo": "protobuf", - "rev": "535069ec1b3343da9ba274759313233c4cad35cf", + "rev": "4955fc46b67099515aa73226ad8120fe237fdd61", "type": "github" }, "original": { @@ -2968,10 +791,10 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", + "flake-parts": "flake-parts", "haskell-nix": "haskell-nix", + "hci-effects": "hci-effects", "http2-grpc-native": "http2-grpc-native", - "mlabs-tooling": "mlabs-tooling", "nixpkgs": [ "haskell-nix", "nixpkgs-unstable" @@ -2980,62 +803,14 @@ "protobuf": "protobuf" } }, - "sphinxcontrib-haddock": { - "flake": false, - "locked": { - "lastModified": 1594136664, - "narHash": "sha256-O9YT3iCUBHP3CEF88VDLLCO2HSP3HqkNA2q2939RnVY=", - "owner": "michaelpj", - "repo": "sphinxcontrib-haddock", - "rev": "f3956b3256962b2d27d5a4e96edb7951acf5de34", - "type": "github" - }, - "original": { - "owner": "michaelpj", - "repo": "sphinxcontrib-haddock", - "type": "github" - } - }, "stackage": { "flake": false, "locked": { - "lastModified": 1671322242, - "narHash": "sha256-fP6gs6GNzPYFU1csKVFy5e0OzgL36SUgJYr9VUByYZc=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "5b58f654a14856fc74dfa66749f9819ae24f5596", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", - "type": "github" - } - }, - "stackage_2": { - "flake": false, - "locked": { - "lastModified": 1670890221, - "narHash": "sha256-kV7irjUr4Ot3b2MwTcgVKYuEe+legxhGh4ApBeESy1s=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "56f59c2d4ecdb237348a0774274f38874f81a3ca", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", - "type": "github" - } - }, - "stackage_3": { - "flake": false, - "locked": { - "lastModified": 1667351848, - "narHash": "sha256-gXjvvU0hW8NtbuFyCy+hzp669sEMAubS0zhMIPg/QOg=", + "lastModified": 1701994185, + "narHash": "sha256-Fwpm0zn5Tkk3pN9C1pNsf9ibyv44LIHWMBqQPukLlwo=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "128fd7fcb43c96ae422b4b1b3d485a40432848de", + "rev": "b53a2a00d0500cd3edf216579e105891f01d6b92", "type": "github" }, "original": { @@ -3044,377 +819,18 @@ "type": "github" } }, - "std": { - "inputs": { - "blank": "blank", - "devshell": "devshell", - "dmerge": "dmerge", - "flake-utils": "flake-utils_4", - "makes": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", - "microvm": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "n2c": "n2c", - "nixago": "nixago", - "nixpkgs": "nixpkgs_4", - "yants": "yants" - }, - "locked": { - "lastModified": 1665513321, - "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", - "owner": "divnix", - "repo": "std", - "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "std", - "type": "github" - } - }, - "std_2": { - "inputs": { - "blank": "blank_2", - "devshell": "devshell_2", - "dmerge": "dmerge_2", - "flake-utils": "flake-utils_8", - "makes": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "blank" - ], - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_2", - "microvm": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "blank" - ], - "n2c": "n2c_2", - "nixago": "nixago_2", - "nixpkgs": "nixpkgs_8", - "yants": "yants_2" - }, - "locked": { - "lastModified": 1665513321, - "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", - "owner": "divnix", - "repo": "std", - "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "std", - "type": "github" - } - }, - "std_3": { - "inputs": { - "blank": "blank_3", - "devshell": "devshell_3", - "dmerge": "dmerge_3", - "flake-utils": "flake-utils_12", - "makes": [ - "mlabs-tooling", - "plutus", - "std", - "blank" - ], - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_3", - "microvm": [ - "mlabs-tooling", - "plutus", - "std", - "blank" - ], - "n2c": "n2c_3", - "nixago": "nixago_3", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ], - "yants": "yants_3" - }, - "locked": { - "lastModified": 1665252656, - "narHash": "sha256-RHktFB35O/KjK2P21E+TtCR8sIpoowGFGZPC0KOT0rg=", - "owner": "divnix", - "repo": "std", - "rev": "2240a587e19e1610d967a72e5409176bc6908244", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "std", - "type": "github" - } - }, - "std_4": { - "inputs": { - "blank": "blank_4", - "devshell": "devshell_4", - "dmerge": "dmerge_4", - "flake-utils": "flake-utils_15", - "makes": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "blank" - ], - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_4", - "microvm": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "blank" - ], - "n2c": "n2c_4", - "nixago": "nixago_4", - "nixpkgs": "nixpkgs_14", - "yants": "yants_4" - }, - "locked": { - "lastModified": 1665513321, - "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", - "owner": "divnix", - "repo": "std", - "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "std", - "type": "github" - } - }, - "tullia": { - "inputs": { - "nix-nomad": "nix-nomad", - "nix2container": "nix2container", - "nixpkgs": [ - "haskell-nix", - "nixpkgs" - ], - "std": "std" - }, - "locked": { - "lastModified": 1668711738, - "narHash": "sha256-CBjky16o9pqsGE1bWu6nRlRajgSXMEk+yaFQLibqXcE=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "ead1f515c251f0e060060ef0e2356a51d3dfe4b0", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "tullia", - "type": "github" - } - }, - "tullia_2": { - "inputs": { - "nix-nomad": "nix-nomad_2", - "nix2container": "nix2container_2", - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "nixpkgs" - ], - "std": "std_2" - }, - "locked": { - "lastModified": 1668711738, - "narHash": "sha256-CBjky16o9pqsGE1bWu6nRlRajgSXMEk+yaFQLibqXcE=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "ead1f515c251f0e060060ef0e2356a51d3dfe4b0", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "tullia", - "type": "github" - } - }, - "tullia_3": { - "inputs": { - "nix-nomad": "nix-nomad_3", - "nix2container": "nix2container_3", - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "nixpkgs" - ], - "std": "std_4" - }, - "locked": { - "lastModified": 1670354948, - "narHash": "sha256-TF5KX7Al0xz6I+Cx84zeeWthSASlxTeJZmPBLSZ3e9c=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "b40dc577bb43b440645fb081d88df72b20a4bd57", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "gh-comment", - "repo": "tullia", - "type": "github" - } - }, - "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" - } - }, - "utils_2": { - "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" - } - }, - "utils_3": { - "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" - } - }, - "yants": { - "inputs": { - "nixpkgs": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660507851, - "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", - "owner": "divnix", - "repo": "yants", - "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_2": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660507851, - "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", - "owner": "divnix", - "repo": "yants", - "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_3": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660507851, - "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", - "owner": "divnix", - "repo": "yants", - "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_4": { - "inputs": { - "nixpkgs": [ - "mlabs-tooling", - "plutus", - "tullia", - "std", - "nixpkgs" - ] - }, + "systems": { "locked": { - "lastModified": 1660507851, - "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", - "owner": "divnix", - "repo": "yants", - "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "divnix", - "repo": "yants", + "owner": "nix-systems", + "repo": "default", "type": "github" } } diff --git a/flake.nix b/flake.nix index 9569b63..749c35e 100644 --- a/flake.nix +++ b/flake.nix @@ -1,114 +1,41 @@ { - description = "protobufs.nix"; + description = "proto.nix"; inputs = { haskell-nix.url = "github:input-output-hk/haskell.nix"; + nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + protobuf = { url = "github:protocolbuffers/protobuf"; flake = false; }; + # TODO(bladyjoker): Merge with upstream and use that. http2-grpc-native = { url = "github:bladyjoker/http2-grpc-haskell"; flake = false; }; - mlabs-tooling.url = "github:mlabs-haskell/mlabs-tooling.nix"; - }; - - outputs = { self, nixpkgs, haskell-nix, flake-utils, pre-commit-hooks, protobuf, mlabs-tooling, ... }: - flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" ] - (system: - let - inherit self haskell-nix; - - pkgs = import nixpkgs { - inherit system; - }; - - pkgsWithHaskellNix = import nixpkgs { - inherit system; - inherit (haskell-nix) config; - overlays = [ haskell-nix.overlay ]; - }; - hnix = pkgsWithHaskellNix.haskell-nix; - - # pre-commit-hooks.nix - fourmolu = pkgs.haskell.packages.ghc924.fourmolu; - - protoHooks = preCommitHooks { inherit pkgs; }; - - pre-commit-check = pre-commit-hooks.lib.${system}.run (import ./pre-commit-check.nix { - inherit fourmolu protoHooks; - }); - - # preCommitTools = pre-commit-hooks.outputs.packages.${system}; - preCommitDevShell = pkgs.mkShell { - name = "pre-commit-env"; - inherit (pre-commit-check) shellHook; - }; + flake-parts.url = "github:hercules-ci/flake-parts"; - # Proto env - protoDevShell = import ./src/dev-shell.nix { - inherit pkgs; - inherit (pre-commit-check) shellHook; - }; - - # Actual library - haskellProto = import ./src/haskell-proto.nix; - - devShell = import ./src/dev-shell.nix; - - preCommitHooks = import ./src/pre-commit-hooks.nix; - - googleHsProtos = import ./src/google-haskell-protos.nix { inherit pkgs protobuf; }; - - # Haskell AddressBook - addressBookHsPb = haskellProto { - inherit pkgs; - src = ./test-proto; - proto = "addressbook.proto"; - cabalBuildDepends = with googleHsProtos; [ googleHsPbs.timestamp-pb ]; - cabalPackageName = "addressbook-pb"; - }; - - addressBookHsProj = hnix.cabalProject' [ - mlabs-tooling.lib.mkHackageMod - ({ - src = addressBookHsPb; - compiler-nix-name = "ghc924"; # TODO(bladyjoker): Test with other GHC versions - extraHackage = googleHsProtos.googleHsPbsExtraHackage; - }) - ]; - addressBookHsFlake = addressBookHsProj.flake { }; - - # Utilities - # INFO: Will need this; renameAttrs = rnFn: pkgs.lib.attrsets.mapAttrs' (n: value: { name = rnFn n; inherit value; }); - in - rec { - # Useful for nix repl - inherit pkgs; - - # Library - lib = { - inherit haskellProto preCommitHooks devShell; - inherit (googleHsProtos) googleHsPbs googleHsPbsExtraHackage; - }; - - # Standard flake attributes - packages = { }; - - devShells = rec { - dev-pre-commit = preCommitDevShell; - dev-proto = protoDevShell; - default = preCommitDevShell; - }; + hci-effects.url = "github:hercules-ci/hercules-ci-effects"; + }; - # nix flake check --impure --keep-going --allow-import-from-derivation - checks = { inherit pre-commit-check; } // devShells // packages // addressBookHsFlake.packages // googleHsProtos.googleHsPbs; - } - ) // { - # Instruction for the Hercules CI to build on x86_64-linux only, to avoid errors about systems without agents. - herculesCI.ciSystems = [ "x86_64-linux" ]; + outputs = inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + ./pkgs.nix + ./settings.nix + ./pre-commit.nix + ./hercules-ci.nix + ./src/build.nix + ./src/dev-shell.nix + ./google-pb/build.nix + ./tests/api/build.nix + ./docs/build.nix + ]; + debug = true; + systems = [ "x86_64-linux" "x86_64-darwin" ]; }; } + diff --git a/google-pb/build.nix b/google-pb/build.nix new file mode 100644 index 0000000..7824a71 --- /dev/null +++ b/google-pb/build.nix @@ -0,0 +1,71 @@ +# Haskell https://github.com/google/proto-lens/blob/master/proto-lens-protobuf-types/proto-lens-protobuf-types.cabal +{ inputs, ... }: +{ + perSystem = { config, proto-nix, ... }: + { + packages = { + + any-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/any.proto" ]; + cabalPackageName = "any-pb"; + }; + + compiler-plugin-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/compiler/plugin.proto" ]; + cabalBuildDepends = [ config.packages.descriptor-hs-pb ]; + cabalPackageName = "compiler-plugin-pb"; + }; + + descriptor-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/descriptor.proto" ]; + cabalPackageName = "descriptor-pb"; + }; + + duration-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/duration.proto" ]; + cabalPackageName = "duration-pb"; + }; + + empty-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/empty.proto" ]; + cabalPackageName = "empty-pb"; + }; + + wrappers-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/wrappers.proto" ]; + cabalPackageName = "wrappers-pb"; + }; + + struct-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/struct.proto" ]; + cabalPackageName = "struct-pb"; + }; + + timestamp-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/timestamp.proto" ]; + cabalPackageName = "timestamp-pb"; + }; + + google-hs-pb = proto-nix.haskellProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/any.proto" "google/protobuf/compiler/plugin.proto" "google/protobuf/descriptor.proto" "google/protobuf/duration.proto" "google/protobuf/empty.proto" "google/protobuf/wrappers.proto" "google/protobuf/struct.proto" "google/protobuf/timestamp.proto" ]; + cabalPackageName = "google-pb"; + }; + + google-pb-docs = proto-nix.docProto { + src = "${inputs.protobuf}/src"; + protos = [ "google/protobuf/any.proto" "google/protobuf/compiler/plugin.proto" "google/protobuf/descriptor.proto" "google/protobuf/duration.proto" "google/protobuf/empty.proto" "google/protobuf/wrappers.proto" "google/protobuf/struct.proto" "google/protobuf/timestamp.proto" ]; + }; + + }; + + }; +} diff --git a/hercules-ci.nix b/hercules-ci.nix new file mode 100644 index 0000000..275568e --- /dev/null +++ b/hercules-ci.nix @@ -0,0 +1,26 @@ +{ inputs, ... }: { + imports = [ + inputs.hci-effects.flakeModule # Adds hercules-ci and herculesCI options + ]; + + hercules-ci.flake-update = { + enable = true; + updateBranch = "updated-flake-lock"; + # Next two parameters should always be set explicitly + createPullRequest = true; + autoMergeMethod = null; + when = { + # Perform update by Sundays at 12:45 + minute = 45; + hour = 12; + dayOfWeek = "Sun"; + }; + }; + + hercules-ci.github-pages.branch = "main"; + perSystem = { config, ... }: { + hercules-ci.github-pages.settings.contents = config.packages.proto-nix-book; + }; + + herculesCI.ciSystems = [ "x86_64-linux" ]; +} diff --git a/pkgs.nix b/pkgs.nix new file mode 100644 index 0000000..2bc77e5 --- /dev/null +++ b/pkgs.nix @@ -0,0 +1,15 @@ +# Repo-wide Nixpkgs with a ton of overlays +{ inputs, ... }: +{ + perSystem = { pkgs, system, ... }: { + + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + inherit (inputs.haskell-nix) config; + overlays = [ + inputs.haskell-nix.overlay + ]; + }; + + }; +} diff --git a/pre-commit-check.nix b/pre-commit-check.nix deleted file mode 100644 index a04bec1..0000000 --- a/pre-commit-check.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ fourmolu, protoHooks }: { - src = ./.; - settings = { }; - - hooks = { - nixpkgs-fmt.enable = true; - nix-linter.enable = true; - cabal-fmt.enable = true; - fourmolu.enable = true; - shellcheck.enable = true; - hlint.enable = true; - typos.enable = true; - markdownlint.enable = true; - } // protoHooks; - - tools = { inherit fourmolu; }; -} diff --git a/pre-commit.nix b/pre-commit.nix new file mode 100644 index 0000000..5c94086 --- /dev/null +++ b/pre-commit.nix @@ -0,0 +1,34 @@ +_: { + imports = [ + ./src/pre-commit-hooks.nix + ]; + perSystem = { config, ... }: + { + devShells.dev-pre-commit = config.pre-commit.devShell; + devShells.default = config.pre-commit.devShell; + + pre-commit = { + settings = { + excludes = [ + ]; + + hooks = { + nixpkgs-fmt.enable = true; + deadnix.enable = true; + cabal-fmt.enable = true; + fourmolu.enable = true; + shellcheck.enable = true; + hlint.enable = true; + typos.enable = true; + markdownlint.enable = true; + protolint.enable = true; + txtpbfmt.enable = true; + }; + + settings = { + ormolu.cabalDefaultExtensions = true; + }; + }; + }; + }; +} diff --git a/settings.nix b/settings.nix new file mode 100644 index 0000000..3566aa2 --- /dev/null +++ b/settings.nix @@ -0,0 +1,30 @@ +# Repo wide settings +{ lib, flake-parts-lib, ... }: { + + options = { + + perSystem = flake-parts-lib.mkPerSystemOption + ({ config, pkgs, ... }: { + options.settings = { + + proto-lens-protoc = lib.mkOption { + type = lib.types.package; + description = "Haskell protoc plugin to use"; + }; + + }; + + config = { + + settings = { + # WARN(bladyjoker): Using recent versions fails because `ghc-source-gen` is marked as broken. + # Unfortunately, this means yet another GHC in your Nix store -.- + proto-lens-protoc = pkgs.haskell.packages.ghc810.proto-lens-protoc; + }; + }; + + }); + + }; + +} diff --git a/src/build.nix b/src/build.nix new file mode 100644 index 0000000..a6922e1 --- /dev/null +++ b/src/build.nix @@ -0,0 +1,48 @@ +{ config, flake-parts-lib, lib, ... }: { + + # Makes a system agnostic option (dunno why I needed this). + options.proto-nix = lib.mkOption { + type = lib.types.anything; # probably not the best type + default = { }; + }; + + # Makes it available in the system agnostic `proto-nix` argument. + # TODO(bladyjoker): This is not available in module function argument :shrug: + config._module.args.proto-nix = config.proto-nix; + + # Sets the above set option to system ones. + config.proto-nix = lib.genAttrs config.systems (system: (config.perSystem system).proto-nix); + + # Makes `lib.x86_64-linux.xyz` available + config.flake.lib = config.proto-nix // { + preCommitModule = ./pre-commit-hooks.nix; + }; + + options = { + + # Makes a per system `proto-nix` option. + perSystem = flake-parts-lib.mkPerSystemOption + ({ pkgs, config, ... }: { + + options.proto-nix = lib.mkOption { + type = lib.types.anything; + default = { }; + }; + + # Sets a per system `proto-nix` option. + config = { + proto-nix = { + # NOTE(bladyjoker): If you need to add a function the export externally and use internally via config.proto-nix, add it here. + haskellProto = import ./haskell-proto.nix pkgs config.settings.proto-lens-protoc; + docProto = import ./doc-proto.nix pkgs; + }; + + # Makes it available in the per system `proto-nix` argument. + _module.args.proto-nix = config.proto-nix; + + }; + + }); + + }; +} diff --git a/src/dev-shell.nix b/src/dev-shell.nix index 0cc13ca..d191d7f 100644 --- a/src/dev-shell.nix +++ b/src/dev-shell.nix @@ -1,12 +1,17 @@ -{ pkgs, shellHook }: -pkgs.mkShell { - name = "protobufs-nix-proto-env"; - buildInputs = [ - pkgs.protobuf - pkgs.protolint - pkgs.txtpbfmt - pkgs.haskellPackages.proto-lens-protoc - ]; +_: +{ + perSystem = { pkgs, config, ... }: + { - inherit shellHook; + devShells.dev-proto-nix = pkgs.mkShell { + name = "dev-proto-nix"; + buildInputs = [ + pkgs.protobuf + pkgs.protolint + pkgs.txtpbfmt + config.settings.proto-lens-protoc + ]; + + }; + }; } diff --git a/src/doc-proto.nix b/src/doc-proto.nix new file mode 100644 index 0000000..e1471bc --- /dev/null +++ b/src/doc-proto.nix @@ -0,0 +1,12 @@ +pkgs: { src, protos ? [ ], docType ? "markdown" }: +pkgs.stdenv.mkDerivation { + inherit src; + name = "proto-docs"; + buildInputs = [ + pkgs.protobuf + ]; + buildPhase = '' + mkdir $out; + protoc --plugin=${pkgs.protoc-gen-doc}/bin/protoc-gen-doc ${builtins.concatStringsSep " " protos} --doc_out=$out --doc_opt=${docType},api.md; + ''; +} diff --git a/src/google-haskell-protos.nix b/src/google-haskell-protos.nix deleted file mode 100644 index a5d5c2b..0000000 --- a/src/google-haskell-protos.nix +++ /dev/null @@ -1,81 +0,0 @@ -# Haskell https://github.com/google/proto-lens/blob/master/proto-lens-protobuf-types/proto-lens-protobuf-types.cabal -{ pkgs, protobuf }: -let - haskellProto = import ./haskell-proto.nix; - - anyHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/any.proto"; - cabalPackageName = "any-pb"; - }; - - compilerPluginHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/compiler/plugin.proto"; - cabalBuildDepends = [ descriptorHsPb ]; - cabalPackageName = "compiler-plugin-pb"; - }; - - descriptorHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/descriptor.proto"; - cabalPackageName = "descriptor-pb"; - }; - - durationHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/duration.proto"; - cabalPackageName = "duration-pb"; - }; - - emptyHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/empty.proto"; - cabalPackageName = "empty-pb"; - }; - - wrappersHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/wrappers.proto"; - cabalPackageName = "wrappers-pb"; - }; - - structHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/struct.proto"; - cabalPackageName = "struct-pb"; - }; - - timestampHsPb = haskellProto { - inherit pkgs; - src = "${protobuf}/src"; - proto = "google/protobuf/timestamp.proto"; - cabalPackageName = "timestamp-pb"; - }; - - # Google base protobufs - googleHsPbs' = [ - timestampHsPb - structHsPb - wrappersHsPb - emptyHsPb - durationHsPb - descriptorHsPb - compilerPluginHsPb - anyHsPb - ]; - - # Indexed by name for convenience - googleHsPbs = with builtins; listToAttrs (map (value: { inherit (value) name; inherit value; }) googleHsPbs'); - - # Formatted for haskell-nix - googleHsPbsExtraHackage = with builtins; map toString googleHsPbs'; -in -{ inherit googleHsPbs googleHsPbsExtraHackage; } diff --git a/src/haskell-proto.nix b/src/haskell-proto.nix index 4873558..7755650 100644 --- a/src/haskell-proto.nix +++ b/src/haskell-proto.nix @@ -1,4 +1,4 @@ -{ src, pkgs, proto, cabalPackageName, cabalPackageVersion ? "0.1.0.0", cabalBuildDepends ? [ ], useGoogleProtosFromHackage ? false }: +pkgs: proto-lens-protoc: { src, protos, cabalPackageName, cabalPackageVersion ? "0.1.0.0", cabalBuildDepends ? [ ], useGoogleProtosFromHackage ? false }: let depPackageNames = builtins.map (dep: dep.name) cabalBuildDepends; cabalTemplate = pkgs.writeTextFile { @@ -29,15 +29,14 @@ pkgs.stdenv.mkDerivation { name = cabalPackageName; buildInputs = [ pkgs.protobuf - pkgs.haskellPackages.proto-lens-protoc - pkgs.cabal-install ]; buildPhase = '' set -vox mkdir src - protoc --plugin=protoc-gen-haskell=${pkgs.haskellPackages.proto-lens-protoc}/bin/proto-lens-protoc \ + protoc --plugin=protoc-gen-haskell=${proto-lens-protoc}/bin/proto-lens-protoc \ --proto_path=${src} \ - --haskell_out=src ${src}/${proto} + --haskell_out=src \ + ${builtins.concatStringsSep " " (builtins.map (proto: "${src}/${proto}") protos)} EXPOSED_MODULES=$(find src -name "*.hs" | while read f; do grep -Eo 'module\s+\S+\s+' $f | head -n 1 | sed -r 's/module\s+//' | sed -r 's/\s+//'; done | tr '\n' ' ') echo "Found generated modules $EXPOSED_MODULES" diff --git a/src/pre-commit-hooks.nix b/src/pre-commit-hooks.nix index 96c9983..cd3b240 100644 --- a/src/pre-commit-hooks.nix +++ b/src/pre-commit-hooks.nix @@ -1,17 +1,27 @@ -{ pkgs }: -{ - protolint = { - enable = true; - description = "Run protolint on all Google Protobuf files"; - name = "protolint"; - entry = "${pkgs.protolint}/bin/protolint lint -fix"; - files = "\\.proto$"; - }; - txtpbfmt = { - enable = true; - description = "Run txtpbfmt on all text Google Protobuf files"; - name = "txtpbfmt"; - entry = "${pkgs.txtpbfmt}/bin/txtpbfmt"; - files = "\\.(textproto|textpb)"; - }; +{ inputs, ... }: { + imports = [ + inputs.pre-commit-hooks.flakeModule # Adds perSystem.pre-commit options + ]; + perSystem = { pkgs, ... }: + { + pre-commit.settings.hooks = { + + protolint = { + enable = true; + description = "Run protolint on all Google Protobuf files"; + name = "protolint"; + entry = "${pkgs.protolint}/bin/protolint lint -fix"; + files = "\\.proto$"; + }; + + txtpbfmt = { + enable = true; + description = "Run txtpbfmt on all text Google Protobuf files"; + name = "txtpbfmt"; + entry = "${pkgs.txtpbfmt}/bin/txtpbfmt"; + files = "\\.(textproto|textpb)"; + }; + + }; + }; } diff --git a/test-proto/.envrc b/test-proto/.envrc deleted file mode 100644 index c84e6b1..0000000 --- a/test-proto/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake ..#dev-proto diff --git a/tests/.envrc b/tests/.envrc new file mode 100644 index 0000000..ac779ad --- /dev/null +++ b/tests/.envrc @@ -0,0 +1 @@ +use flake ..#dev-proto-nix diff --git a/test-proto/addressbook.proto b/tests/api/addressbook.proto similarity index 100% rename from test-proto/addressbook.proto rename to tests/api/addressbook.proto diff --git a/tests/api/build.nix b/tests/api/build.nix new file mode 100644 index 0000000..668467f --- /dev/null +++ b/tests/api/build.nix @@ -0,0 +1,21 @@ +_: +{ + perSystem = { config, proto-nix, ... }: + { + packages = { + address-book-hs-pb = proto-nix.haskellProto { + src = ./.; + protos = [ "addressbook.proto" ]; + cabalBuildDepends = [ config.packages.timestamp-hs-pb ]; + cabalPackageName = "addressbook-pb"; + }; + + address-book-docs = proto-nix.docProto { + src = ./.; + protos = [ "addressbook.proto" ]; + }; + + }; + + }; +}