diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4363d7b3a..99871a5c6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -12,9 +12,6 @@ on: jobs: publish: runs-on: ubuntu-latest - strategy: - matrix: - image: [marlowe-playground-server, marlowe-playground-client] steps: - name: Checkout uses: actions/checkout@v3 @@ -32,23 +29,33 @@ jobs: - name: Build image and copy to local Docker registry run: | - nix develop --command std //marlowe-playground/oci-images/${{ matrix.image }}:load + nix build .#oci-images.x86_64-linux.all.copyToDockerDaemon + ./result/bin/copy-to-docker-daemon - name: Authenticate with container registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin - name: Tag and push images run: | - IMAGE_ID=ghcr.io/${{ github.repository_owner }}/${{ matrix.image }} - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - # Strip git ref prefix from version - TAG=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') - # Use Docker `latest` tag convention - [ "$TAG" == "main" ] && TAG=latest - # Use date + short hash for production releases - [ "$TAG" == "production" ] && TAG="$(date +'%Y-%m-%d')-$(git rev-parse --short "${{ github.ref }}")" - echo IMAGE_ID=$IMAGE_ID - echo TAG=$TAG - docker tag ${{ matrix.image }} $IMAGE_ID:$TAG - docker push $IMAGE_ID:$TAG + tagAndPush() { + IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$1 + # Change all uppercase to lowercase + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + # Strip git ref prefix from version + TAG=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') + # Strip "runtime@v" prefix from tag name + [[ "${{ github.ref }}" == "refs/tags/"* ]] && TAG=$(echo $TAG | sed -e 's/^runtime@v//') + + # Use Docker `latest` tag convention + [ "$TAG" == "main" ] && TAG=latest + + # Use date + short hash for production releases + [ "$TAG" == "production" ] && TAG="$(date +'%Y-%m-%d')-$(git rev-parse --short "${{ github.ref }}")" + + echo IMAGE_ID=$IMAGE_ID + echo TAG=$TAG + docker tag $1:latest $IMAGE_ID:$TAG + docker push $IMAGE_ID:$TAG + } + tagAndPush "marlowe-playground-server" + tagAndPush "marlowe-playground-client" \ No newline at end of file diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 43141f87c..cfa83f1f4 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -28,13 +28,15 @@ Please do make use of this, since problems due to mismatched versions of tools a The shell comes with some tools for fixing various simple problems that the CI will complain about. Specifically: -- `fix-nixfmt` will re-format nix files -- `fix-prettier` will re-format JS, CSS and HTML files. -- `fix-stylish-haskell` will re-format all the Haskell sources correctly. -- `fix-purs-tidy` will re-format all the Purescript sources correctly. -- `fix-png-optimization` will optimize all PNGs in the repository. - -If you're not inside the nix shell all the time and you want to run one of these, you can use `nix run .#fix-purs-tidy` instead. +For example you can run the formatters via `pre-commit`, like so: + +``` +pre-commit run shellcheck +pre-commit run stylish-haskell +pre-commit run nixpkgs-fmt +pre-commit run prettier +pre-commit run purs-tidy +``` === How to build the code during development diff --git a/README.adoc b/README.adoc index 1c17b9e4a..cd931d54b 100644 --- a/README.adoc +++ b/README.adoc @@ -73,24 +73,11 @@ If you use Nix, these tools are provided for you via `shell.nix`, and you do *no * If you want to build our Haskell packages with https://haskellstack.org/[`stack`], then install it. [[building-with-nix]] -==== Using Std - -This project is managed by https://github.com/divnix/std[`std`]. It provides a -CLI and TUI for navigating all buildable artifacts in the project. To use it, -you must enter the project dev shell. You can do this by running the command -`nix develop` from the repo root, or if you are a direnv user, run `direnv -allow` in the repo root and direnv will automatically load the dev shell for -you when you `cd` into the repo and refresh it when it changes. - -Upon entering the dev shell, you will be shown a MOD (message of the day) that -lists the available commands. You can also launch the std TUI with the `std` -command. It will display a navigable menu of all build actions defined for this -project. You can invoke any of the commands from the TUI, or directly using the -`std` CLI. For instance, to build the `marlowe-playground-server`, run the -command `std //marlowe-playground/packages/marlowe-playground-server:build`. - -You can get tab-completion for the `std` CLI by running the command -`source <(std _carapace)`. +==== Using Nix + +Run `nix develop` to enter the shell. + +From there, you can type `info` to get a list of available commands. ==== How to build the Haskell packages with `cabal` diff --git a/flake.lock b/flake.lock index 2135e2f2c..f22ff80cb 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1681300654, - "narHash": "sha256-W0YOpCxZhch3qG4LdTNNsdvsfInJPLKSJT5EtepWJdY=", + "lastModified": 1692114433, + "narHash": "sha256-l6UoBkt1SUUBga/u0qpQeuNTN2YgtdZMBJSw29Wb0xU=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "53dca426faff8402e8dcaaca358470b842f527fc", + "rev": "73093fde5e26b9f7594a2219d339175005256475", "type": "github" }, "original": { @@ -48,18 +48,20 @@ "type": "github" } }, - "blank_2": { + "blst": { + "flake": false, "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "lastModified": 1656163412, + "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" }, "original": { - "owner": "divnix", - "repo": "blank", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" } }, @@ -145,84 +147,7 @@ "type": "github" } }, - "devshell": { - "inputs": { - "nixpkgs": "nixpkgs", - "systems": "systems" - }, - "locked": { - "lastModified": 1688380630, - "narHash": "sha256-8ilApWVb1mAi4439zS3iFeIT0ODlbrifm/fegWwgHjA=", - "owner": "numtide", - "repo": "devshell", - "rev": "f9238ec3d75cefbb2b42a44948c4e8fb1ae9a205", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_2": { - "inputs": { - "flake-utils": [ - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "dmerge": { - "inputs": { - "nixlib": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "haskell-nix", - "tullia", - "std", - "yants" - ] - }, - "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "data-merge", - "type": "github" - } - }, - "dmerge_2": { "inputs": { "haumea": [ "std", @@ -254,13 +179,15 @@ } }, "easy-purescript-nix": { - "flake": false, + "inputs": { + "flake-utils": "flake-utils" + }, "locked": { - "lastModified": 1666686938, - "narHash": "sha256-/UOLRdnEhIOcxcm5ouOipOiSgHRzJde0ccAx4xB1dnU=", + "lastModified": 1689933391, + "narHash": "sha256-jUuy2OzmxegEn0KT3u1uf87eGGA33+of9HodIqS3PLY=", "owner": "justinwoo", "repo": "easy-purescript-nix", - "rev": "da7acb2662961fd355f0a01a25bd32bf33577fa8", + "rev": "5dcea83eecb56241ed72e3631d47e87bb11e45b9", "type": "github" }, "original": { @@ -289,27 +216,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "owner": "edolstra", "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { @@ -319,28 +230,33 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1679360468, - "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", - "owner": "hamishmack", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", "repo": "flake-utils", - "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { - "owner": "hamishmack", - "ref": "hkm/nested-hydraJobs", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", "type": "github" }, "original": { @@ -351,26 +267,30 @@ }, "flake-utils_3": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", + "lastModified": 1679360468, + "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", + "owner": "hamishmack", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", "type": "github" }, "original": { - "owner": "numtide", + "owner": "hamishmack", + "ref": "hkm/nested-hydraJobs", "repo": "flake-utils", "type": "github" } }, "flake-utils_4": { + "inputs": { + "systems": "systems_3" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -381,11 +301,11 @@ }, "flake-utils_5": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -414,7 +334,8 @@ "gitignore": { "inputs": { "nixpkgs": [ - "pre-commit-hooks", + "iogx", + "pre-commit-hooks-nix", "nixpkgs" ] }, @@ -432,55 +353,53 @@ "type": "github" } }, - "gomod2nix": { - "inputs": { - "nixpkgs": "nixpkgs_3", - "utils": "utils" - }, + "hackage": { + "flake": false, "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", + "lastModified": 1692318155, + "narHash": "sha256-e4npK3xeIIIzq1MDFYhpT3cR37DtEttOdGE7uFi71PQ=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "0a259b13134e5ac7f9ca408365fd240bd4b42645", "type": "github" }, "original": { - "owner": "tweag", - "repo": "gomod2nix", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "hackage": { + "haskell-language-server-1_8_0_0": { "flake": false, "locked": { - "lastModified": 1681259105, - "narHash": "sha256-dxyauxwCwA8ZNyRSRx2J9X44hPNXy9Rf0Nogqtohkag=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "c23bc9ea5ec54b17357671bef540b45cea978cdb", + "lastModified": 1663402129, + "narHash": "sha256-El5wZDn0br/My7cxstRzUyO7VUf1q5V44T55NEQONnI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "855a88238279b795634fa6144a4c0e8acc7e9644", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "855a88238279b795634fa6144a4c0e8acc7e9644", "type": "github" } }, - "haskell-language-server": { + "haskell-language-server-1_9_0_0": { "flake": false, "locked": { - "lastModified": 1627623934, - "narHash": "sha256-RjPRzpcfL2UNGp2IYEh3rIrBeSnpdafdJhMAvrtXrbA=", + "lastModified": 1672051165, + "narHash": "sha256-j3XRQTWa7jsVlimaxFZNnlE9IzWII9Prj1/+otks5FQ=", "owner": "haskell", "repo": "haskell-language-server", - "rev": "e7c5e90b6df5dff2760d76169eddaea3bdd6a831", + "rev": "1916b5782d9f3204d25a1d8f94da4cfd83ae2607", "type": "github" }, "original": { "owner": "haskell", - "ref": "1.3.0", "repo": "haskell-language-server", + "rev": "1916b5782d9f3204d25a1d8f94da4cfd83ae2607", "type": "github" } }, @@ -492,16 +411,19 @@ "cabal-36": "cabal-36", "cardano-shell": "cardano-shell", "flake-compat": "flake-compat", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_3", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", "hackage": [ + "iogx", "hackage" ], "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", "hpc-coveralls": "hpc-coveralls", "hydra": "hydra", "iserv-proxy": "iserv-proxy", "nixpkgs": [ + "iogx", "haskell-nix", "nixpkgs-unstable" ], @@ -510,17 +432,17 @@ "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", - "tullia": "tullia" + "stackage": "stackage" }, "locked": { - "lastModified": 1681347051, - "narHash": "sha256-69gSPLmS5lTTMueqlL4cuV8obaziIT/+MbsT2cHwiow=", + "lastModified": 1692319830, + "narHash": "sha256-KD5SPPtJETa83lWr5WwhWWRbSelGhGSkeZ7cqweJfoc=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "37808bb7adc1693ccd5f4e45ef378a0ebb39f9e8", + "rev": "90e45988f1ad35d55e890cef16d7b1a5de5e6196", "type": "github" }, "original": { @@ -531,7 +453,7 @@ }, "haumea": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1685133229, @@ -565,6 +487,23 @@ "type": "github" } }, + "hls-2.0": { + "flake": false, + "locked": { + "lastModified": 1687698105, + "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "783905f211ac63edf982dd1889c671653327e441", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.0.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, "hpc-coveralls": { "flake": false, "locked": { @@ -585,6 +524,7 @@ "inputs": { "nix": "nix", "nixpkgs": [ + "iogx", "haskell-nix", "hydra", "nix", @@ -607,9 +547,8 @@ "incl": { "inputs": { "nixlib": [ - "haskell-nix", - "tullia", "std", + "haumea", "nixpkgs" ] }, @@ -627,41 +566,54 @@ "type": "github" } }, - "incl_2": { + "iogx": { "inputs": { - "nixlib": [ - "std", - "haumea", - "nixpkgs" - ] + "CHaP": "CHaP", + "easy-purescript-nix": "easy-purescript-nix", + "flake-utils": "flake-utils_2", + "hackage": "hackage", + "haskell-language-server-1_8_0_0": "haskell-language-server-1_8_0_0", + "haskell-language-server-1_9_0_0": "haskell-language-server-1_9_0_0", + "haskell-nix": "haskell-nix", + "iohk-nix": "iohk-nix", + "nixpkgs": [ + "iogx", + "haskell-nix", + "nixpkgs-2305" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "sphinxcontrib-haddock": "sphinxcontrib-haddock" }, "locked": { - "lastModified": 1669263024, - "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", - "owner": "divnix", - "repo": "incl", - "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "lastModified": 1693312063, + "narHash": "sha256-YHbFsI809plXJVJdC3spTggAuizeJaMKM+xiPJZ0qRs=", + "owner": "input-output-hk", + "repo": "iogx", + "rev": "2e851fb87acd46e67643019db6f8a2bb669e95fb", "type": "github" }, "original": { - "owner": "divnix", - "repo": "incl", + "owner": "input-output-hk", + "repo": "iogx", "type": "github" } }, "iohk-nix": { "inputs": { + "blst": "blst", "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ] + "iogx", + "nixpkgs" + ], + "secp256k1": "secp256k1", + "sodium": "sodium" }, "locked": { - "lastModified": 1680659925, - "narHash": "sha256-2MW2IEYCe6uE55ljxQ4I2KP9JGtEKd6OPCHiHrEJQbQ=", + "lastModified": 1691469905, + "narHash": "sha256-TV0p1dFGYAMl1dLJEfe/tNFjxvV2H7VgHU1I43q+b84=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "335752283302344536e09095d09e4ac7538067b2", + "rev": "2f3760f135616ebc477d3ed74eba9b63c22f83a0", "type": "github" }, "original": { @@ -673,11 +625,11 @@ "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1670983692, - "narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=", + "lastModified": 1688517130, + "narHash": "sha256-hUqfxSlo+ffqVdkSZ1EDoB7/ILCL25eYkcCXW9/P3Wc=", "ref": "hkm/remote-iserv", - "rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300", - "revCount": 10, + "rev": "9151db2a9a61d7f5fe52ff8836f18bbd0fd8933c", + "revCount": 13, "type": "git", "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" }, @@ -705,37 +657,8 @@ }, "n2c": { "inputs": { - "flake-utils": [ - "haskell-nix", - "tullia", - "std", - "flake-utils" - ], - "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_4", - "nixpkgs": "nixpkgs_6" + "flake-utils": "flake-utils_5", + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1688922987, @@ -754,7 +677,7 @@ "nix": { "inputs": { "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "nixpkgs-regression": "nixpkgs-regression" }, "locked": { @@ -772,107 +695,18 @@ "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" - } - }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "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" - } - }, "nixpkgs": { "locked": { - "lastModified": 1677383253, - "narHash": "sha256-UfpzWfSxkfXHnb4boXZNaKsAcUrZT9Hw+tao1oZxd08=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9952d6bc395f5841262b006fbace8dd7e143b634", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } @@ -927,11 +761,11 @@ }, "nixpkgs-2205": { "locked": { - "lastModified": 1672580127, - "narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0874168639713f547c05947c76124f78441ea46c", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { @@ -943,11 +777,11 @@ }, "nixpkgs-2211": { "locked": { - "lastModified": 1675730325, - "narHash": "sha256-uNvD7fzO5hNlltNQUAFBPlcEjNG5Gkbhl/ROiX+GZU4=", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b7ce17b1ebf600a72178f6302c77b6382d09323f", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { @@ -957,118 +791,87 @@ "type": "github" } }, - "nixpkgs-regression": { + "nixpkgs-2305": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1690680713, + "narHash": "sha256-NXCWA8N+GfSQyoN7ZNiOgq/nDJKOp5/BHEpiZP8sUZw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-stable": { + "nixpkgs-regression": { "locked": { - "lastModified": 1668984258, - "narHash": "sha256-0gDMJ2T3qf58xgcSbYoXiRGUkPWmKyr5C3vcathWhKs=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cf63ade6f74bbc9d2a017290f1b2e33e8fbfa70a", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.05", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs-stable": { "locked": { - "lastModified": 1675758091, - "narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { + "nixpkgs-unstable": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "lastModified": 1690720142, + "narHash": "sha256-GywuiZjBKfFkntQwpNQfL+Ksa2iGjPprBGL0/psgRZM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "rev": "3acb5c4264c490e7714d503c7166a3fde0c51324", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_2": { "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", "type": "github" }, "original": { "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "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_6": { + "nixpkgs_3": { "locked": { "lastModified": 1677612629, "narHash": "sha256-yC+9LfhfwOd5sXFW8TLnDmqVMNYiHXYPGy9BbdpRqfU=", @@ -1083,7 +886,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_4": { "locked": { "lastModified": 1681001314, "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", @@ -1098,22 +901,23 @@ "type": "github" } }, - "nosys": { + "nixpkgs_5": { "locked": { - "lastModified": 1667881534, - "narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=", - "owner": "divnix", - "repo": "nosys", - "rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f", + "lastModified": 1675940568, + "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", "type": "github" }, "original": { - "owner": "divnix", - "repo": "nosys", + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nosys_2": { + "nosys": { "locked": { "lastModified": 1668010795, "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", @@ -1168,7 +972,7 @@ "std", "nixpkgs" ], - "nosys": "nosys_2", + "nosys": "nosys", "yants": [ "std", "yants" @@ -1205,23 +1009,20 @@ "type": "github" } }, - "pre-commit-hooks": { + "pre-commit-hooks-nix": { "inputs": { - "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_5", + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_4", "gitignore": "gitignore", - "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ], + "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1669152228, - "narHash": "sha256-FEDReoTLWJHXcNso7aaAlAUU7uOqIR6Hc/C/nqlfooE=", + "lastModified": 1692274144, + "narHash": "sha256-BxTQuRUANQ81u8DJznQyPmRsg63t4Yc+0kcyq6OLz8s=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "078b0dee35e2da01334af682ec347463b70a9986", + "rev": "7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa", "type": "github" }, "original": { @@ -1232,97 +1033,92 @@ }, "root": { "inputs": { - "CHaP": "CHaP", - "devshell": "devshell", - "easy-purescript-nix": "easy-purescript-nix", - "hackage": "hackage", - "haskell-language-server": "haskell-language-server", - "haskell-nix": "haskell-nix", - "iohk-nix": "iohk-nix", - "n2c": "n2c_2", - "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ], + "iogx": "iogx", + "n2c": "n2c", "npmlock2nix": "npmlock2nix", - "pre-commit-hooks": "pre-commit-hooks", - "std": "std_2" + "std": "std" } }, - "stackage": { + "secp256k1": { "flake": false, "locked": { - "lastModified": 1681085376, - "narHash": "sha256-kSg4N5g9Jj8u+G7HdMZR5IIvm40s9EBmkD0pMDTJTLc=", + "lastModified": 1683999695, + "narHash": "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=", + "owner": "bitcoin-core", + "repo": "secp256k1", + "rev": "acf5c55ae6a94e5ca847e07def40427547876101", + "type": "github" + }, + "original": { + "owner": "bitcoin-core", + "ref": "v0.3.2", + "repo": "secp256k1", + "type": "github" + } + }, + "sodium": { + "flake": false, + "locked": { + "lastModified": 1675156279, + "narHash": "sha256-0uRcN5gvMwO7MCXVYnoqG/OmeBFi8qRVnDWJLnBb9+Y=", "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "2f9242acfd8fbbc4bbdc5e5504ac8e5b36839b7f", + "repo": "libsodium", + "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "stackage.nix", + "repo": "libsodium", + "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", "type": "github" } }, - "std": { - "inputs": { - "arion": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "blank": "blank", - "devshell": "devshell_2", - "dmerge": "dmerge", - "flake-utils": "flake-utils_3", - "incl": "incl", - "makes": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "microvm": [ - "haskell-nix", - "tullia", - "std", - "blank" - ], - "n2c": "n2c", - "nixago": "nixago", - "nixpkgs": "nixpkgs_5", - "nosys": "nosys", - "yants": "yants" + "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": 1674526466, - "narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=", - "owner": "divnix", - "repo": "std", - "rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826", + "lastModified": 1692317324, + "narHash": "sha256-AofEuurJHrfMljrCAkMKTWBC5xGluhBZiAfHQ73224Y=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "4812a420235589a74f9278cca81f6dbf74ffb42f", "type": "github" }, "original": { - "owner": "divnix", - "repo": "std", + "owner": "input-output-hk", + "repo": "stackage.nix", "type": "github" } }, - "std_2": { + "std": { "inputs": { "arion": [ "std", "blank" ], - "blank": "blank_2", + "blank": "blank", "devshell": [ - "devshell" + "std", + "blank" ], - "dmerge": "dmerge_2", + "dmerge": "dmerge", "haumea": "haumea", - "incl": "incl_2", + "incl": "incl", "makes": [ "std", "blank" @@ -1338,24 +1134,21 @@ "std", "blank" ], - "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ], + "nixpkgs": "nixpkgs_5", "paisano": "paisano", "paisano-tui": "paisano-tui", "terranix": [ "std", "blank" ], - "yants": "yants_2" + "yants": "yants" }, "locked": { - "lastModified": 1688885544, - "narHash": "sha256-hM3KsUTNWGdSZtDogNmEcgWcADPlEkyWYRUeo3XOXQM=", + "lastModified": 1692726684, + "narHash": "sha256-ypu4dW8aACbeCfsrlg48oubBrXaEPMZmFg4bUtPKTco=", "owner": "divnix", "repo": "std", - "rev": "74e13ed4f6851112158a6709cbb75160b0e5718d", + "rev": "20d62929c4369aa1e32d7845f9ebea975c53b314", "type": "github" }, "original": { @@ -1379,69 +1172,37 @@ "type": "github" } }, - "tullia": { - "inputs": { - "nix-nomad": "nix-nomad", - "nix2container": "nix2container", - "nixpkgs": [ - "haskell-nix", - "nixpkgs" - ], - "std": "std" - }, + "systems_2": { "locked": { - "lastModified": 1675695930, - "narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "621365f2c725608f381b3ad5b57afef389fd4c31", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "tullia", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "utils": { + "systems_3": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, "yants": { - "inputs": { - "nixpkgs": [ - "haskell-nix", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1667096281, - "narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=", - "owner": "divnix", - "repo": "yants", - "rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_2": { "inputs": { "nixpkgs": [ "std", diff --git a/flake.nix b/flake.nix index a997f2871..60e0b754c 100644 --- a/flake.nix +++ b/flake.nix @@ -1,150 +1,46 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#31-flakenix + { description = "Marlowe Playground"; + + inputs = { - nixpkgs = { - url = "github:NixOS/nixpkgs"; - follows = "haskell-nix/nixpkgs-unstable"; - }; - haskell-nix = { - url = "github:input-output-hk/haskell.nix"; - inputs.hackage.follows = "hackage"; - }; - haskell-language-server = { - url = "github:haskell/haskell-language-server?ref=1.3.0"; - flake = false; - }; - CHaP = { - url = "github:input-output-hk/cardano-haskell-packages?ref=repo"; - flake = false; - }; - hackage = { - url = "github:input-output-hk/hackage.nix"; - flake = false; - }; - easy-purescript-nix = { - url = "github:justinwoo/easy-purescript-nix"; - flake = false; - }; - iohk-nix = { - url = "github:input-output-hk/iohk-nix"; - inputs.nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; - }; - pre-commit-hooks = { - url = "github:cachix/pre-commit-hooks.nix"; - inputs.nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; - }; - std = { - url = "github:divnix/std"; - inputs.nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; - inputs.devshell.follows = "devshell"; - inputs.n2c.follows = "n2c"; - }; - devshell.url = "github:numtide/devshell"; + + iogx.url = "github:input-output-hk/iogx"; + n2c.url = "github:nlewo/nix2container"; + npmlock2nix = { url = "github:nix-community/npmlock2nix"; flake = false; }; - }; - - # Managed by std - outputs = inputs: - - # Produces the flake outputs. - inputs.std.growOn - # The first argument tells std where to look for "cells", and what type - # of cells to grow. - { - inherit inputs; - - # All nix files reside in this folder. Each subfolder is a "cell", - # which is a logical grouping of functionality. - # - # Our two cells are: - # automation - # CI jobs and dev shells. - # marlowe-playground - # Backend and frontend for the Marlowe Playground. - cellsFrom = ./nix/cells; - - # Each cell contains "cell blocks". - # Block names are arbitrary. - # Each block can be thought of as providing a "feature" to its cell. - # Cell blocks have types. - # Each cell block must be either: - # A nix file named after the cell block - # A directory named after the cell block and containing a default.nix - # Not all cells have the same cell blocks. - # All cell blocks belong in a cell. - # - # In this repository we have six cell blocks, listed below with their type: - # devshells :: devshells - # Development shells available via nix develop - # packages :: installables - # Derivations available via nix build - # library :: functions - # Everything that is not a derivation goes here - # Includes functions, attrsets and simple literal values shared across cells - # These are not exposed to the flake - # scripts :: functions - # Scripts that are available in the dev shell - # tests :: functions - # Scripts that are available in the dev shell - # ciJobs :: installables - # Jobsets for our Hydra CI - # - # std provides a TUI to interact with the cell blocks. - # Available interactions are determined by the cell block's type. - cellBlocks = [ - (inputs.std.blockTypes.devshells "devshells") - (inputs.std.blockTypes.installables "packages") - (inputs.std.blockTypes.functions "library") - (inputs.std.blockTypes.installables "scripts") - (inputs.std.blockTypes.installables "tests") - (inputs.std.blockTypes.installables "ciJobs") - (inputs.std.blockTypes.runnables "operables") - (inputs.std.blockTypes.containers "oci-images") - ]; - } - - # The growOn function takes a variadic number of "soil" arguments, which - # provide a compatability layer for standard flake attributes. We - # translate (a.k.a. "harvest") the cell blocks into flake attributes. - # Successive arguments will be recursively merged. - { - # harvest the packages cell block from the marlowe-playground cell. - packages = inputs.std.harvest inputs.self [ "marlowe-playground" "packages" ]; - - # harvest the devshells cell block from the marlowe-playground cell. - devShells = inputs.std.harvest inputs.self [ "marlowe-playground" "devshells" ]; + std.url = "github:divnix/std"; + std.inputs.n2c.follows = "n2c"; + }; - # harvest the tests cell block from the marlowe-playground cell. - checks = inputs.std.harvest inputs.self [ "marlowe-playground" "tests" ]; - # harvest the ciJobs cell block from the automation cell. - hydraJobs = inputs.std.harvest inputs.self [ "automation" "ciJobs" ]; + outputs = inputs: inputs.iogx.lib.mkFlake { + inherit inputs; + repoRoot = ./.; + nixpkgsConfig = { + permittedInsecurePackages = [ + # These is required by SASS, which we should move away from! + "python-2.7.18.6" + "nodejs-14.21.3" + "openssl-1.1.1u" + ]; + }; + }; - # harvest the oci-images cell block from the marlowe-playground cell. - oci-images = inputs.std.harvest inputs.self [ "marlowe-playground" "oci-images" ]; - } - { - # harvest the scripts cell block from the marlowe-playground cell. - packages = inputs.std.harvest inputs.self [ "marlowe-playground" "scripts" ]; - }; - # --- Flake Local Nix Configuration ---------------------------- nixConfig = { - # This sets the flake to use the IOG nix cache. - # Nix should ask for permission before using it, - # but remove it here if you do not want it to. extra-substituters = [ "https://cache.iog.io" - "https://cache.zw3rk.com" ]; extra-trusted-public-keys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" - "loony-tools:pr9m4BkM/5/eSTZlkQyRt57Jz7OMBxNSUiMC4FkcNfk=" ]; allow-import-from-derivation = true; }; diff --git a/marlowe-playground-client/spago-packages.nix b/marlowe-playground-client/spago-packages.nix index e57092000..3becb8d34 100644 --- a/marlowe-playground-client/spago-packages.nix +++ b/marlowe-playground-client/spago-packages.nix @@ -1,1612 +1,1613 @@ # This file was generated by Spago2Nix -{ pkgs ? import {} }: +{ pkgs ? import { } }: let inputs = { "aff" = pkgs.stdenv.mkDerivation { - name = "aff"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-aff.git"; - rev = "2d44d9f9d0d6a416a4103fba2fb39e5160f80e36"; - sha256 = "1d38l16s8hvfqq5w40w21j5089svdiggkraw3rwrl6ml7lijjqx4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "aff"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-aff.git"; + rev = "2d44d9f9d0d6a416a4103fba2fb39e5160f80e36"; + sha256 = "1d38l16s8hvfqq5w40w21j5089svdiggkraw3rwrl6ml7lijjqx4"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "aff-promise" = pkgs.stdenv.mkDerivation { - name = "aff-promise"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/nwolverson/purescript-aff-promise.git"; - rev = "3aa74e68e3e4c3e38d821375703e0b2f49d831eb"; - sha256 = "10gv3b05dxnlmr9zmigqs1hz4xqrx7da30aqh12kqg3zrg49k9cc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "aff-promise"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/nwolverson/purescript-aff-promise.git"; + rev = "3aa74e68e3e4c3e38d821375703e0b2f49d831eb"; + sha256 = "10gv3b05dxnlmr9zmigqs1hz4xqrx7da30aqh12kqg3zrg49k9cc"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "affjax" = pkgs.stdenv.mkDerivation { - name = "affjax"; - version = "v13.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-affjax.git"; - rev = "87a8ffce89a476c1425370eb4b2b7e15408e0d1c"; - sha256 = "02hd0pfa1lb06a8qg2mqmkhyn3cz8hbvh6r9h2i6xcfqh0r8jg7s"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "affjax"; + version = "v13.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-affjax.git"; + rev = "87a8ffce89a476c1425370eb4b2b7e15408e0d1c"; + sha256 = "02hd0pfa1lb06a8qg2mqmkhyn3cz8hbvh6r9h2i6xcfqh0r8jg7s"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "affjax-web" = pkgs.stdenv.mkDerivation { - name = "affjax-web"; - version = "v1.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-affjax-web.git"; - rev = "f53a865f4012e4c8bafdd52c6ba39697df68c9d9"; - sha256 = "0nv43h8w72mr7x469sh3r4qz1zcv7srfyyfar9d00xbdshrvgdnh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "affjax-web"; + version = "v1.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-affjax-web.git"; + rev = "f53a865f4012e4c8bafdd52c6ba39697df68c9d9"; + sha256 = "0nv43h8w72mr7x469sh3r4qz1zcv7srfyyfar9d00xbdshrvgdnh"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "ansi" = pkgs.stdenv.mkDerivation { - name = "ansi"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/hdgarrood/purescript-ansi.git"; - rev = "7d898732d643a977a78004851112a4417909e126"; - sha256 = "1aml84m5p1s14kj29m39182byg44nf275p4cinx3kgwhv1gj0qcp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "ansi"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/hdgarrood/purescript-ansi.git"; + rev = "7d898732d643a977a78004851112a4417909e126"; + sha256 = "1aml84m5p1s14kj29m39182byg44nf275p4cinx3kgwhv1gj0qcp"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "argonaut" = pkgs.stdenv.mkDerivation { - name = "argonaut"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut.git"; - rev = "7505a47f2edb0c9cacaac4f11dcedf4723a3e9c8"; - sha256 = "18yxhlrwri6q858krz1klyq29fx8nvfm16c04wm2rn91mgyasn6x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "argonaut"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-argonaut.git"; + rev = "7505a47f2edb0c9cacaac4f11dcedf4723a3e9c8"; + sha256 = "18yxhlrwri6q858krz1klyq29fx8nvfm16c04wm2rn91mgyasn6x"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "argonaut-codecs" = pkgs.stdenv.mkDerivation { - name = "argonaut-codecs"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-codecs.git"; - rev = "176a5dddae28fda9a2ff31ed4bf1efcc148513a4"; - sha256 = "08ys445222syysxh24la8bc8l20lwwqi4vdfa3ph2a60l1lx3kp8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "argonaut-codecs"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-argonaut-codecs.git"; + rev = "176a5dddae28fda9a2ff31ed4bf1efcc148513a4"; + sha256 = "08ys445222syysxh24la8bc8l20lwwqi4vdfa3ph2a60l1lx3kp8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "argonaut-core" = pkgs.stdenv.mkDerivation { - name = "argonaut-core"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-core.git"; - rev = "68da81dd80ec36d3b013eff46dc067a972c22e5d"; - sha256 = "0hxl17ddbflkk0hchjgk5xj6j9fwp3b182w4g073p0dwscdl4f08"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "argonaut-core"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-argonaut-core.git"; + rev = "68da81dd80ec36d3b013eff46dc067a972c22e5d"; + sha256 = "0hxl17ddbflkk0hchjgk5xj6j9fwp3b182w4g073p0dwscdl4f08"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "argonaut-generic" = pkgs.stdenv.mkDerivation { - name = "argonaut-generic"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-generic.git"; - rev = "2df4080f036762df91a24b22842e389395ef0bdd"; - sha256 = "0f3bkmv37nk89vscvivdr971sjydqiw7lwk9hfdfms05id8jdjkw"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "argonaut-generic"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-argonaut-generic.git"; + rev = "2df4080f036762df91a24b22842e389395ef0bdd"; + sha256 = "0f3bkmv37nk89vscvivdr971sjydqiw7lwk9hfdfms05id8jdjkw"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "argonaut-traversals" = pkgs.stdenv.mkDerivation { - name = "argonaut-traversals"; - version = "v10.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-argonaut-traversals.git"; - rev = "8d2403d8d57afb568933dbb36063d5670ce770a0"; - sha256 = "0v965bcl1hdp1hacbzxcm35kxxclixj0kpsdm816gs7m548z6l43"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "argonaut-traversals"; + version = "v10.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-argonaut-traversals.git"; + rev = "8d2403d8d57afb568933dbb36063d5670ce770a0"; + sha256 = "0v965bcl1hdp1hacbzxcm35kxxclixj0kpsdm816gs7m548z6l43"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "arraybuffer-types" = pkgs.stdenv.mkDerivation { - name = "arraybuffer-types"; - version = "v3.0.2"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-arraybuffer-types.git"; - rev = "9b0b7a0f9ee034e039f3d3a2a9c3f74eb7c9264a"; - sha256 = "1q3111jk6jj64bxy86lc7ik6q5mgdz87bc086wj5rm57dmlivlxx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "arraybuffer-types"; + version = "v3.0.2"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-arraybuffer-types.git"; + rev = "9b0b7a0f9ee034e039f3d3a2a9c3f74eb7c9264a"; + sha256 = "1q3111jk6jj64bxy86lc7ik6q5mgdz87bc086wj5rm57dmlivlxx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "arrays" = pkgs.stdenv.mkDerivation { - name = "arrays"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-arrays.git"; - rev = "d20bae2f76db6cf29b7b75e26e82b8a54c32295e"; - sha256 = "1ciz796yrdfnqiskjjhh6r3bn9mks1dm5zin7kwzh1nfy1i4w9pz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "arrays"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-arrays.git"; + rev = "d20bae2f76db6cf29b7b75e26e82b8a54c32295e"; + sha256 = "1ciz796yrdfnqiskjjhh6r3bn9mks1dm5zin7kwzh1nfy1i4w9pz"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "assert" = pkgs.stdenv.mkDerivation { - name = "assert"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-assert.git"; - rev = "27c0edb57d2ee497eb5fab664f5601c35b613eda"; - sha256 = "02qpcsijil64qq4kcikv2ynxl85zkryvv0vmzjm6752956ymzi0j"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "assert"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-assert.git"; + rev = "27c0edb57d2ee497eb5fab664f5601c35b613eda"; + sha256 = "02qpcsijil64qq4kcikv2ynxl85zkryvv0vmzjm6752956ymzi0j"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "avar" = pkgs.stdenv.mkDerivation { - name = "avar"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-avar.git"; - rev = "d00f5784d9cc8f079babd62740f5c52b87e5caa5"; - sha256 = "132g0ccmjr8328xpaycww8b5wmx1vi3li4irxxqcjk5wi47i8c9h"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "avar"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-avar.git"; + rev = "d00f5784d9cc8f079babd62740f5c52b87e5caa5"; + sha256 = "132g0ccmjr8328xpaycww8b5wmx1vi3li4irxxqcjk5wi47i8c9h"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "bifunctors" = pkgs.stdenv.mkDerivation { - name = "bifunctors"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-bifunctors.git"; - rev = "16ba2fb6dd7f05528ebd9e2f9ca3a068b325e5b3"; - sha256 = "1qz5aaiq5w4g1rhjb63z47h6nqhw8hw23x1zw5alam047pq4vfkg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "bifunctors"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-bifunctors.git"; + rev = "16ba2fb6dd7f05528ebd9e2f9ca3a068b325e5b3"; + sha256 = "1qz5aaiq5w4g1rhjb63z47h6nqhw8hw23x1zw5alam047pq4vfkg"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "bigints" = pkgs.stdenv.mkDerivation { - name = "bigints"; - version = "v7.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/sharkdp/purescript-bigints.git"; - rev = "e73f55b866e437c7bf04c7d262de7c205c47bbca"; - sha256 = "0msh5sv6g0k69fi0qv4xi1g89bfwai099f0ycjb8a69mnjq8x21n"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "bigints"; + version = "v7.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/sharkdp/purescript-bigints.git"; + rev = "e73f55b866e437c7bf04c7d262de7c205c47bbca"; + sha256 = "0msh5sv6g0k69fi0qv4xi1g89bfwai099f0ycjb8a69mnjq8x21n"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "catenable-lists" = pkgs.stdenv.mkDerivation { - name = "catenable-lists"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-catenable-lists.git"; - rev = "09abe1f4888bc00841ad2b59e56a9e7ce7ebd4ab"; - sha256 = "0fn6caspdnb0nrlj31sy7d5hxrhndfz7a2b9wfkxf5bv5vpjyawb"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "catenable-lists"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-catenable-lists.git"; + rev = "09abe1f4888bc00841ad2b59e56a9e7ce7ebd4ab"; + sha256 = "0fn6caspdnb0nrlj31sy7d5hxrhndfz7a2b9wfkxf5bv5vpjyawb"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "console" = pkgs.stdenv.mkDerivation { - name = "console"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-console.git"; - rev = "3b83d7b792d03872afeea5e62b4f686ab0f09842"; - sha256 = "0fr5l1myhscp910mybp04cg6g8f2hy3ikjfc8fkqlb2dm2cqzdfs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "console"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-console.git"; + rev = "3b83d7b792d03872afeea5e62b4f686ab0f09842"; + sha256 = "0fr5l1myhscp910mybp04cg6g8f2hy3ikjfc8fkqlb2dm2cqzdfs"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "const" = pkgs.stdenv.mkDerivation { - name = "const"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-const.git"; - rev = "ab9570cf2b6e67f7e441178211db1231cfd75c37"; - sha256 = "0mcpwqqf5bcwxlzk53smvsjjz1ymlnq0ypphg6sc83ibw70g64f6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "const"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-const.git"; + rev = "ab9570cf2b6e67f7e441178211db1231cfd75c37"; + sha256 = "0mcpwqqf5bcwxlzk53smvsjjz1ymlnq0ypphg6sc83ibw70g64f6"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "contravariant" = pkgs.stdenv.mkDerivation { - name = "contravariant"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-contravariant.git"; - rev = "9ad3e105b8855bcc25f4e0893c784789d05a58de"; - sha256 = "1xkd3rfs8v20w7mj6sj6dmhfb2vb1zpmjv245xj1rahk3g16qm7m"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "contravariant"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-contravariant.git"; + rev = "9ad3e105b8855bcc25f4e0893c784789d05a58de"; + sha256 = "1xkd3rfs8v20w7mj6sj6dmhfb2vb1zpmjv245xj1rahk3g16qm7m"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "control" = pkgs.stdenv.mkDerivation { - name = "control"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-control.git"; - rev = "a6033808790879a17b2729e73747a9ed3fb2264e"; - sha256 = "05sdgywprwpav62d2bvlb80yd39brxhnmhhl1f116mm9hw5clqia"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "control"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-control.git"; + rev = "a6033808790879a17b2729e73747a9ed3fb2264e"; + sha256 = "05sdgywprwpav62d2bvlb80yd39brxhnmhhl1f116mm9hw5clqia"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "coroutines" = pkgs.stdenv.mkDerivation { - name = "coroutines"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-coroutines.git"; - rev = "7aa4174c1a981ad0a43dba1d3efad78d76838f5a"; - sha256 = "0yrycc48901m0vjadh4i4si1crgdjj7w0drmxyqrbv61krc23p8k"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "coroutines"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-coroutines.git"; + rev = "7aa4174c1a981ad0a43dba1d3efad78d76838f5a"; + sha256 = "0yrycc48901m0vjadh4i4si1crgdjj7w0drmxyqrbv61krc23p8k"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "datetime" = pkgs.stdenv.mkDerivation { - name = "datetime"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-datetime.git"; - rev = "a6a0cf1b0324964ad1854bc3377ed8766ba90e6f"; - sha256 = "1idjljxy8rjlw3wiypk1c9cc1fc4g9kf7drzdy6a0yjdg7504gad"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "datetime"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-datetime.git"; + rev = "a6a0cf1b0324964ad1854bc3377ed8766ba90e6f"; + sha256 = "1idjljxy8rjlw3wiypk1c9cc1fc4g9kf7drzdy6a0yjdg7504gad"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "datetime-iso" = pkgs.stdenv.mkDerivation { - name = "datetime-iso"; - version = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-datetime-iso"; - rev = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; - sha256 = "0c7hjas2f1iva6z0j7lxn4arpqr4dfi2brndqr1k1wy4gq5zl7nc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "datetime-iso"; + version = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; + src = pkgs.fetchgit { + url = "https://github.com/input-output-hk/purescript-datetime-iso"; + rev = "a5de49e1e4b75d1731b7ec08e07f94eb6985d452"; + sha256 = "0c7hjas2f1iva6z0j7lxn4arpqr4dfi2brndqr1k1wy4gq5zl7nc"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "decimals" = pkgs.stdenv.mkDerivation { - name = "decimals"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/sharkdp/purescript-decimals.git"; - rev = "dfee90a706c44b41b0ef8f5b26d4633323942937"; - sha256 = "0s64bahw64lc7izhfq42s1imii3fkav8h6v9v4v8ma60g8agqiba"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "decimals"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/sharkdp/purescript-decimals.git"; + rev = "dfee90a706c44b41b0ef8f5b26d4633323942937"; + sha256 = "0s64bahw64lc7izhfq42s1imii3fkav8h6v9v4v8ma60g8agqiba"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "distributive" = pkgs.stdenv.mkDerivation { - name = "distributive"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-distributive.git"; - rev = "6005e513642e855ebf6f884d24a35c2803ca252a"; - sha256 = "0x6cfsx9ff66kvw9l10pxd5vv16r91mmfxrfc68w1xfdfi81lhdx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "distributive"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-distributive.git"; + rev = "6005e513642e855ebf6f884d24a35c2803ca252a"; + sha256 = "0x6cfsx9ff66kvw9l10pxd5vv16r91mmfxrfc68w1xfdfi81lhdx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "dom-indexed" = pkgs.stdenv.mkDerivation { - name = "dom-indexed"; - version = "v11.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-dom-indexed.git"; - rev = "b462b7391f89cda71d8559cc6f0a49755fae6a99"; - sha256 = "18h6dafjr6lpcxv69fapyvhghkxkij5fy06m2ybyxj1dj9fh1hmf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "dom-indexed"; + version = "v11.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-halogen/purescript-dom-indexed.git"; + rev = "b462b7391f89cda71d8559cc6f0a49755fae6a99"; + sha256 = "18h6dafjr6lpcxv69fapyvhghkxkij5fy06m2ybyxj1dj9fh1hmf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "effect" = pkgs.stdenv.mkDerivation { - name = "effect"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-effect.git"; - rev = "a192ddb923027d426d6ea3d8deb030c9aa7c7dda"; - sha256 = "0aa10lc6h9mlf4xf3g3ziig7v6kxdqvbh20kma8ay59w0b1bhmj1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "effect"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-effect.git"; + rev = "a192ddb923027d426d6ea3d8deb030c9aa7c7dda"; + sha256 = "0aa10lc6h9mlf4xf3g3ziig7v6kxdqvbh20kma8ay59w0b1bhmj1"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "either" = pkgs.stdenv.mkDerivation { - name = "either"; - version = "v6.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-either.git"; - rev = "af655a04ed2fd694b6688af39ee20d7907ad0763"; - sha256 = "05zps4klvgmvlm06f4hrycssm8q0pysbqnjsrk26lfvmid6mmg63"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "either"; + version = "v6.1.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-either.git"; + rev = "af655a04ed2fd694b6688af39ee20d7907ad0763"; + sha256 = "05zps4klvgmvlm06f4hrycssm8q0pysbqnjsrk26lfvmid6mmg63"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "enums" = pkgs.stdenv.mkDerivation { - name = "enums"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-enums.git"; - rev = "bae47961d401f9acf88da38f32e87403e5f0cf2f"; - sha256 = "08sl5q07hv6v2008dcpg4mxiqwk9z0fhq67k0bgkxvlbsmar7khg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "enums"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-enums.git"; + rev = "bae47961d401f9acf88da38f32e87403e5f0cf2f"; + sha256 = "08sl5q07hv6v2008dcpg4mxiqwk9z0fhq67k0bgkxvlbsmar7khg"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "exceptions" = pkgs.stdenv.mkDerivation { - name = "exceptions"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-exceptions.git"; - rev = "afab3c07c820bb49b6c5be50049db46a964a6161"; - sha256 = "04xrbrcjwsv8gj465ygrlqhv1majxmr6m242iazg6apxlr89hgvg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "exceptions"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-exceptions.git"; + rev = "afab3c07c820bb49b6c5be50049db46a964a6161"; + sha256 = "04xrbrcjwsv8gj465ygrlqhv1majxmr6m242iazg6apxlr89hgvg"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "exists" = pkgs.stdenv.mkDerivation { - name = "exists"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-exists.git"; - rev = "f765b4ace7869c27b9c05949e18c843881f9173b"; - sha256 = "0xnxi8fsmi15wrpq5d99gg94glk8a45hpx7pf4pmxg5r6rn1vjvx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "exists"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-exists.git"; + rev = "f765b4ace7869c27b9c05949e18c843881f9173b"; + sha256 = "0xnxi8fsmi15wrpq5d99gg94glk8a45hpx7pf4pmxg5r6rn1vjvx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "filterable" = pkgs.stdenv.mkDerivation { - name = "filterable"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-filterable.git"; - rev = "7c5b8c72779997f2b17d12ce478ff81e7ddda285"; - sha256 = "1mx4pm8ij1f1vlpw4wrs8gxrw7y6sr9mq5cx1wfx4ks9gs3v765l"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "filterable"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-filterable.git"; + rev = "7c5b8c72779997f2b17d12ce478ff81e7ddda285"; + sha256 = "1mx4pm8ij1f1vlpw4wrs8gxrw7y6sr9mq5cx1wfx4ks9gs3v765l"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "fixed-points" = pkgs.stdenv.mkDerivation { - name = "fixed-points"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-fixed-points.git"; - rev = "2b7f480038a15c707adf49178181cefed167afb2"; - sha256 = "1iib0yxl749lg4m7ysqmb9aby67a9829x38xc2rma5fk9fv30cw7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "fixed-points"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-fixed-points.git"; + rev = "2b7f480038a15c707adf49178181cefed167afb2"; + sha256 = "1iib0yxl749lg4m7ysqmb9aby67a9829x38xc2rma5fk9fv30cw7"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "foldable-traversable" = pkgs.stdenv.mkDerivation { - name = "foldable-traversable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foldable-traversable.git"; - rev = "b3926f870532d287ea59e2d5cd3873b81ef2a93a"; - sha256 = "0xg8qvyc6r9wqgy7wnw1rjqljl4wpgdrkxsm5x9rsagj2k5brxip"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "foldable-traversable"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-foldable-traversable.git"; + rev = "b3926f870532d287ea59e2d5cd3873b81ef2a93a"; + sha256 = "0xg8qvyc6r9wqgy7wnw1rjqljl4wpgdrkxsm5x9rsagj2k5brxip"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "foreign" = pkgs.stdenv.mkDerivation { - name = "foreign"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foreign.git"; - rev = "2dd222d1ec7363fa0a0a7adb0d8eaf81bb7006dd"; - sha256 = "0ycjaal8b2rsg3zl3b7acv166vjfdvziiza3fs8nhfw0rx0xmm1m"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "foreign"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-foreign.git"; + rev = "2dd222d1ec7363fa0a0a7adb0d8eaf81bb7006dd"; + sha256 = "0ycjaal8b2rsg3zl3b7acv166vjfdvziiza3fs8nhfw0rx0xmm1m"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "foreign-object" = pkgs.stdenv.mkDerivation { - name = "foreign-object"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-foreign-object.git"; - rev = "28a635827a9a6c251df73f68874070d51fe9f756"; - sha256 = "0ql0vgndcb5dqaqz81mvrqkrl5c2rlgxpydgdiiaxmmfxvxwi439"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "foreign-object"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-foreign-object.git"; + rev = "28a635827a9a6c251df73f68874070d51fe9f756"; + sha256 = "0ql0vgndcb5dqaqz81mvrqkrl5c2rlgxpydgdiiaxmmfxvxwi439"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "fork" = pkgs.stdenv.mkDerivation { - name = "fork"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-fork.git"; - rev = "a5c3bc6f357e97669e8c29c6f79f5f55be0d42c0"; - sha256 = "0yzh55vfrhrr660ni3sbbljypjirbka5jlks4zibqmhwrmy3wnj9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "fork"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-fork.git"; + rev = "a5c3bc6f357e97669e8c29c6f79f5f55be0d42c0"; + sha256 = "0yzh55vfrhrr660ni3sbbljypjirbka5jlks4zibqmhwrmy3wnj9"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "form-urlencoded" = pkgs.stdenv.mkDerivation { - name = "form-urlencoded"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-form-urlencoded.git"; - rev = "e0e3eebc76f62f2594a0e823e8d6241ca00b2459"; - sha256 = "1ay946w7gkgqrxxv5qf28w83mh59r1q4j8kk6pndhripz9pby68w"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "form-urlencoded"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-form-urlencoded.git"; + rev = "e0e3eebc76f62f2594a0e823e8d6241ca00b2459"; + sha256 = "1ay946w7gkgqrxxv5qf28w83mh59r1q4j8kk6pndhripz9pby68w"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "formatters" = pkgs.stdenv.mkDerivation { - name = "formatters"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-formatters.git"; - rev = "0b4deda4c6664209173e3e21b8fcbc6151a4549c"; - sha256 = "0z3w5qbfd8z8bakir3rwanq6dcf554f3apacxw5l2vxscvikyra3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "formatters"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-formatters.git"; + rev = "0b4deda4c6664209173e3e21b8fcbc6151a4549c"; + sha256 = "0z3w5qbfd8z8bakir3rwanq6dcf554f3apacxw5l2vxscvikyra3"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "free" = pkgs.stdenv.mkDerivation { - name = "free"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-free.git"; - rev = "e2d8fa8023a864363857834e11393483bced5e38"; - sha256 = "0gyy0k297m26gw76w7kx8k1zjczlqbqb3nmh2h4gb3r84gl05g6r"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "free"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-free.git"; + rev = "e2d8fa8023a864363857834e11393483bced5e38"; + sha256 = "0gyy0k297m26gw76w7kx8k1zjczlqbqb3nmh2h4gb3r84gl05g6r"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "freeap" = pkgs.stdenv.mkDerivation { - name = "freeap"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/ethul/purescript-freeap.git"; - rev = "b45a39b085777010818a87bf2ed6e7e430215c97"; - sha256 = "1kksw5fhiczbkd702d3kpy5l9i8q8is60xw51kk9rk9vbc8s1cwl"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "freeap"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/ethul/purescript-freeap.git"; + rev = "b45a39b085777010818a87bf2ed6e7e430215c97"; + sha256 = "1kksw5fhiczbkd702d3kpy5l9i8q8is60xw51kk9rk9vbc8s1cwl"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "freet" = pkgs.stdenv.mkDerivation { - name = "freet"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-freet.git"; - rev = "21be6fba22599a25812430dda6ba2ca8135920a1"; - sha256 = "006wbr7f19k7vs1jg4wgkwyx1q4wvvs2wqscfcxsp8fzfpn2yqw8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "freet"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-freet.git"; + rev = "21be6fba22599a25812430dda6ba2ca8135920a1"; + sha256 = "006wbr7f19k7vs1jg4wgkwyx1q4wvvs2wqscfcxsp8fzfpn2yqw8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "functions" = pkgs.stdenv.mkDerivation { - name = "functions"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-functions.git"; - rev = "f626f20580483977c5b27a01aac6471e28aff367"; - sha256 = "1bsf2y8hx103a92yrc6m05q2dv51ckag1srd7q5n9vaf2k9byrj9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "functions"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-functions.git"; + rev = "f626f20580483977c5b27a01aac6471e28aff367"; + sha256 = "1bsf2y8hx103a92yrc6m05q2dv51ckag1srd7q5n9vaf2k9byrj9"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "functors" = pkgs.stdenv.mkDerivation { - name = "functors"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-functors.git"; - rev = "022ffd7a2a7ec12080314f3d217b400674a247b4"; - sha256 = "1pnw3r1nk0rx8mrw3ajjml40zvx9v26qrqwj77pz7hpwxigxfbff"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "functors"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-functors.git"; + rev = "022ffd7a2a7ec12080314f3d217b400674a247b4"; + sha256 = "1pnw3r1nk0rx8mrw3ajjml40zvx9v26qrqwj77pz7hpwxigxfbff"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "gen" = pkgs.stdenv.mkDerivation { - name = "gen"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-gen.git"; - rev = "9fbcc2a1261c32e30d79c5418edef4d96fe76931"; - sha256 = "0kajzcp9a8dmqvb3ga27hlf18m2smbp98a0bmzzb9vv156ckw0b4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "gen"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-gen.git"; + rev = "9fbcc2a1261c32e30d79c5418edef4d96fe76931"; + sha256 = "0kajzcp9a8dmqvb3ga27hlf18m2smbp98a0bmzzb9vv156ckw0b4"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "halogen" = pkgs.stdenv.mkDerivation { - name = "halogen"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen.git"; - rev = "222e1febc889c64a71013748b6bf04db969888f9"; - sha256 = "1y0jxnyav8wv49zwmimfbcp6niyz25mxh2spn6kfh9bfhrpfd36d"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "halogen"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-halogen/purescript-halogen.git"; + rev = "222e1febc889c64a71013748b6bf04db969888f9"; + sha256 = "1y0jxnyav8wv49zwmimfbcp6niyz25mxh2spn6kfh9bfhrpfd36d"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "halogen-hooks" = pkgs.stdenv.mkDerivation { - name = "halogen-hooks"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/thomashoneyman/purescript-halogen-hooks.git"; - rev = "cbbf5658f3855d84f81227c88f80d484454421f2"; - sha256 = "11kq6220f0b77lici6mrr23xmra9ld3vzmxa05qaignvw2nn3855"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "halogen-hooks"; + version = "v0.6.0"; + src = pkgs.fetchgit { + url = "https://github.com/thomashoneyman/purescript-halogen-hooks.git"; + rev = "cbbf5658f3855d84f81227c88f80d484454421f2"; + sha256 = "11kq6220f0b77lici6mrr23xmra9ld3vzmxa05qaignvw2nn3855"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "halogen-hooks-extra" = pkgs.stdenv.mkDerivation { - name = "halogen-hooks-extra"; - version = "v0.9.0"; - src = pkgs.fetchgit { - url = "https://github.com/jordanmartinez/purescript-halogen-hooks-extra.git"; - rev = "575b38a7d5839aa88b844ccfc491f4dbe861d794"; - sha256 = "134r2sv1nk02hk0rcarcprcd7c9qc4bxm51dic7gz4r9hqijc4fr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "halogen-hooks-extra"; + version = "v0.9.0"; + src = pkgs.fetchgit { + url = "https://github.com/jordanmartinez/purescript-halogen-hooks-extra.git"; + rev = "575b38a7d5839aa88b844ccfc491f4dbe861d794"; + sha256 = "134r2sv1nk02hk0rcarcprcd7c9qc4bxm51dic7gz4r9hqijc4fr"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "halogen-subscriptions" = pkgs.stdenv.mkDerivation { - name = "halogen-subscriptions"; - version = "v2.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen-subscriptions.git"; - rev = "a41a63a18b2bc7c7c12eb2afc0c3e4276eecd233"; - sha256 = "0ljkjmz526yjcfzil1n1fq5yichs38dy64y3fmkz302hk6gsgz3x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "halogen-subscriptions"; + version = "v2.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-halogen/purescript-halogen-subscriptions.git"; + rev = "a41a63a18b2bc7c7c12eb2afc0c3e4276eecd233"; + sha256 = "0ljkjmz526yjcfzil1n1fq5yichs38dy64y3fmkz302hk6gsgz3x"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "halogen-vdom" = pkgs.stdenv.mkDerivation { - name = "halogen-vdom"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-halogen/purescript-halogen-vdom.git"; - rev = "e6630023500841d910f6690fa1bc6ba649ac6f15"; - sha256 = "0d2hpyrai825ynpl5yf5kzvh47bj3xw7iml2vl6pvkczbycnl5l8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "halogen-vdom"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-halogen/purescript-halogen-vdom.git"; + rev = "e6630023500841d910f6690fa1bc6ba649ac6f15"; + sha256 = "0d2hpyrai825ynpl5yf5kzvh47bj3xw7iml2vl6pvkczbycnl5l8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "heterogeneous" = pkgs.stdenv.mkDerivation { - name = "heterogeneous"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-heterogeneous.git"; - rev = "5b7542bdd9547c5aef95b8878f103f0ce4ee1383"; - sha256 = "0ff1wjq2ayhy67ydggbb2qlzbhvmv1m1z8dcp48p9zhxiq9fpfsz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "heterogeneous"; + version = "v0.6.0"; + src = pkgs.fetchgit { + url = "https://github.com/natefaubion/purescript-heterogeneous.git"; + rev = "5b7542bdd9547c5aef95b8878f103f0ce4ee1383"; + sha256 = "0ff1wjq2ayhy67ydggbb2qlzbhvmv1m1z8dcp48p9zhxiq9fpfsz"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "http-methods" = pkgs.stdenv.mkDerivation { - name = "http-methods"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-http-methods.git"; - rev = "99b48d54b978e4e6438d850015d59e57ac64824e"; - sha256 = "126x1cqr1769a3yzigpp8sp33n6s4fadai7w30mb2nk9dbxy0hw5"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "http-methods"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-http-methods.git"; + rev = "99b48d54b978e4e6438d850015d59e57ac64824e"; + sha256 = "126x1cqr1769a3yzigpp8sp33n6s4fadai7w30mb2nk9dbxy0hw5"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "identity" = pkgs.stdenv.mkDerivation { - name = "identity"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-identity.git"; - rev = "ef6768f8a52ab0bc943a85f5761ba07c257f639f"; - sha256 = "1lh0pkwwdyd8q9bgf4l1m96gdnardki4r2s359cnhrwp94b43fyr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "identity"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-identity.git"; + rev = "ef6768f8a52ab0bc943a85f5761ba07c257f639f"; + sha256 = "1lh0pkwwdyd8q9bgf4l1m96gdnardki4r2s359cnhrwp94b43fyr"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "infinite-lists" = pkgs.stdenv.mkDerivation { - name = "infinite-lists"; - version = "v3.2.0"; - src = pkgs.fetchgit { - url = "https://git@github.com/Thimoteus/purescript-infinite-lists"; - rev = "9cfc3962c521454da7c4c928fe0718243f31d784"; - sha256 = "0zblzpkah6a6nj0s323hp4p1z1vyr26s8qh2cxhk0jriswdn00qf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "infinite-lists"; + version = "v3.2.0"; + src = pkgs.fetchgit { + url = "https://git@github.com/Thimoteus/purescript-infinite-lists"; + rev = "9cfc3962c521454da7c4c928fe0718243f31d784"; + sha256 = "0zblzpkah6a6nj0s323hp4p1z1vyr26s8qh2cxhk0jriswdn00qf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "integers" = pkgs.stdenv.mkDerivation { - name = "integers"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-integers.git"; - rev = "54d712b25c594833083d15dc9ff2418eb9c52822"; - sha256 = "04j9sqvkgyxxvbm8jfc2118wzmgswn8jva9fysgbsnmsg9vcxfm6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "integers"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-integers.git"; + rev = "54d712b25c594833083d15dc9ff2418eb9c52822"; + sha256 = "04j9sqvkgyxxvbm8jfc2118wzmgswn8jva9fysgbsnmsg9vcxfm6"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "invariant" = pkgs.stdenv.mkDerivation { - name = "invariant"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-invariant.git"; - rev = "1d2a196d51e90623adb88496c2cfd759c6736894"; - sha256 = "07rqag47ykdiqc5yfbc1a64ijaqliljhcw1vgbv81m7ljzzd2xna"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "invariant"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-invariant.git"; + rev = "1d2a196d51e90623adb88496c2cfd759c6736894"; + sha256 = "07rqag47ykdiqc5yfbc1a64ijaqliljhcw1vgbv81m7ljzzd2xna"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "js-date" = pkgs.stdenv.mkDerivation { - name = "js-date"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-date.git"; - rev = "1ea020316946cc4b87195bca9c54d0c16abaa490"; - sha256 = "03535g8hc4bzyzig25hf75dls9ypsgrdk2nc45h8zw4xyy4ha0gz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "js-date"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-js-date.git"; + rev = "1ea020316946cc4b87195bca9c54d0c16abaa490"; + sha256 = "03535g8hc4bzyzig25hf75dls9ypsgrdk2nc45h8zw4xyy4ha0gz"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "js-object" = pkgs.stdenv.mkDerivation { - name = "js-object"; - version = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; - src = pkgs.fetchgit { - url = "https://git@github.com/paluh/purescript-js-object"; - rev = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; - sha256 = "0zcq2cqwd5ixhjq2y11zniv61qcv5a3w14jd9hhpcn9gx6rb4gsp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "js-object"; + version = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; + src = pkgs.fetchgit { + url = "https://git@github.com/paluh/purescript-js-object"; + rev = "73db55f89744b032f44c9ec49804f46e3ee63ed7"; + sha256 = "0zcq2cqwd5ixhjq2y11zniv61qcv5a3w14jd9hhpcn9gx6rb4gsp"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "js-timers" = pkgs.stdenv.mkDerivation { - name = "js-timers"; - version = "v6.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-timers.git"; - rev = "7cb728b3e6dc29f355143617e6e9ac770ecd9273"; - sha256 = "0dm933kqhwgmpkylgrlpjplidn8biic8jlzs4l4nny4a1z20mr61"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "js-timers"; + version = "v6.1.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-js-timers.git"; + rev = "7cb728b3e6dc29f355143617e6e9ac770ecd9273"; + sha256 = "0dm933kqhwgmpkylgrlpjplidn8biic8jlzs4l4nny4a1z20mr61"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "js-uri" = pkgs.stdenv.mkDerivation { - name = "js-uri"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-js-uri.git"; - rev = "ac659740288de7c5e64166dbfda9d4985c5044b7"; - sha256 = "013aq6md3qija1hz6ynr17z1wvi2j844xh992j27bgjsd07r2309"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "js-uri"; + version = "v3.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-js-uri.git"; + rev = "ac659740288de7c5e64166dbfda9d4985c5044b7"; + sha256 = "013aq6md3qija1hz6ynr17z1wvi2j844xh992j27bgjsd07r2309"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "json-helpers" = pkgs.stdenv.mkDerivation { - name = "json-helpers"; - version = "0ff78186a949722f37218046a09abdf27d77ecfe"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-bridge-json-helpers.git"; - rev = "0ff78186a949722f37218046a09abdf27d77ecfe"; - sha256 = "1j43ck2hp4d64r1c6py5kimimlw0cli1alfaffnqlqmqg3d8pfbz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "json-helpers"; + version = "0ff78186a949722f37218046a09abdf27d77ecfe"; + src = pkgs.fetchgit { + url = "https://github.com/input-output-hk/purescript-bridge-json-helpers.git"; + rev = "0ff78186a949722f37218046a09abdf27d77ecfe"; + sha256 = "1j43ck2hp4d64r1c6py5kimimlw0cli1alfaffnqlqmqg3d8pfbz"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "lazy" = pkgs.stdenv.mkDerivation { - name = "lazy"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lazy.git"; - rev = "48347841226b27af5205a1a8ec71e27a93ce86fd"; - sha256 = "0dxlc3b2bdqsri45i7a9bvwvv0gg43cc1gq61zi41f290a29ny2q"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "lazy"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-lazy.git"; + rev = "48347841226b27af5205a1a8ec71e27a93ce86fd"; + sha256 = "0dxlc3b2bdqsri45i7a9bvwvv0gg43cc1gq61zi41f290a29ny2q"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "lcg" = pkgs.stdenv.mkDerivation { - name = "lcg"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lcg.git"; - rev = "67c6c6483a563a59ae036d9dca0f1be2835326a5"; - sha256 = "1shzn6zvc1cxd7v0bvfsk7x3xf59vxby8c5lfjvd746r6396zn65"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "lcg"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-lcg.git"; + rev = "67c6c6483a563a59ae036d9dca0f1be2835326a5"; + sha256 = "1shzn6zvc1cxd7v0bvfsk7x3xf59vxby8c5lfjvd746r6396zn65"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "lists" = pkgs.stdenv.mkDerivation { - name = "lists"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-lists.git"; - rev = "b113451e5b41cad87d669a3165f955c71cd863e2"; - sha256 = "1mg7vy44k8jlqkri7x4ikciixx92b17wi35887x09dwdsicjf0sx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "lists"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-lists.git"; + rev = "b113451e5b41cad87d669a3165f955c71cd863e2"; + sha256 = "1mg7vy44k8jlqkri7x4ikciixx92b17wi35887x09dwdsicjf0sx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "markdown" = pkgs.stdenv.mkDerivation { - name = "markdown"; - version = "3c5536d5cad663c0912bae89205dd1c8934d525b"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-markdown"; - rev = "3c5536d5cad663c0912bae89205dd1c8934d525b"; - sha256 = "0d8425j6mkg6nw5f5qc54rkgd7n35ylrb463j9xfi4jxmhg238ng"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "markdown"; + version = "3c5536d5cad663c0912bae89205dd1c8934d525b"; + src = pkgs.fetchgit { + url = "https://github.com/input-output-hk/purescript-markdown"; + rev = "3c5536d5cad663c0912bae89205dd1c8934d525b"; + sha256 = "0d8425j6mkg6nw5f5qc54rkgd7n35ylrb463j9xfi4jxmhg238ng"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "marlowe" = pkgs.stdenv.mkDerivation { - name = "marlowe"; - version = "710cb2d4024d91c112b5b33763d289b7e86bcf5f"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-marlowe"; - rev = "710cb2d4024d91c112b5b33763d289b7e86bcf5f"; - sha256 = "0gf6wxp4bnpji34gr125wf5d74c0bpadgpwwafr0pcai1468n9b8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "marlowe"; + version = "710cb2d4024d91c112b5b33763d289b7e86bcf5f"; + src = pkgs.fetchgit { + url = "https://github.com/input-output-hk/purescript-marlowe"; + rev = "710cb2d4024d91c112b5b33763d289b7e86bcf5f"; + sha256 = "0gf6wxp4bnpji34gr125wf5d74c0bpadgpwwafr0pcai1468n9b8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "maybe" = pkgs.stdenv.mkDerivation { - name = "maybe"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-maybe.git"; - rev = "c6f98ac1088766287106c5d9c8e30e7648d36786"; - sha256 = "0n33g8c579vcs06ii0r7f14jjdwzjw7p583w4nmrv9h442q2cvlz"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "maybe"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-maybe.git"; + rev = "c6f98ac1088766287106c5d9c8e30e7648d36786"; + sha256 = "0n33g8c579vcs06ii0r7f14jjdwzjw7p583w4nmrv9h442q2cvlz"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "media-types" = pkgs.stdenv.mkDerivation { - name = "media-types"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-media-types.git"; - rev = "af853de226592f319a953637069a943dd261cba3"; - sha256 = "0bxpsd2yw3zg58ay649v3xld7n17n7j7n9y8l841cjih9bc7ccxx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "media-types"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-media-types.git"; + rev = "af853de226592f319a953637069a943dd261cba3"; + sha256 = "0bxpsd2yw3zg58ay649v3xld7n17n7j7n9y8l841cjih9bc7ccxx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "mmorph" = pkgs.stdenv.mkDerivation { - name = "mmorph"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/Thimoteus/purescript-mmorph.git"; - rev = "94bc558ac34184d5236a7a9b2463dcc7551ced8e"; - sha256 = "0m3m1kjy4i9lwzj8l5qlafxawyhbdxj035wa5ys4j8v4013a92xg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "mmorph"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/Thimoteus/purescript-mmorph.git"; + rev = "94bc558ac34184d5236a7a9b2463dcc7551ced8e"; + sha256 = "0m3m1kjy4i9lwzj8l5qlafxawyhbdxj035wa5ys4j8v4013a92xg"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "newtype" = pkgs.stdenv.mkDerivation { - name = "newtype"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-newtype.git"; - rev = "29d8e6dd77aec2c975c948364ec3faf26e14ee7b"; - sha256 = "0kfc644zn2f9rpx8fy4gjvmz04k9mv1c2xrqis8m3s0ydnhbffd7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "newtype"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-newtype.git"; + rev = "29d8e6dd77aec2c975c948364ec3faf26e14ee7b"; + sha256 = "0kfc644zn2f9rpx8fy4gjvmz04k9mv1c2xrqis8m3s0ydnhbffd7"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "node-buffer" = pkgs.stdenv.mkDerivation { - name = "node-buffer"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-buffer.git"; - rev = "7be7bd082b7d3e15de2ed5a626d43af746bdb35e"; - sha256 = "1l1j4ml0lyhnxs1zcy3jchlc0mbsn40g1pxyb4lv6slhp0qdhjhp"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "node-buffer"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-buffer.git"; + rev = "7be7bd082b7d3e15de2ed5a626d43af746bdb35e"; + sha256 = "1l1j4ml0lyhnxs1zcy3jchlc0mbsn40g1pxyb4lv6slhp0qdhjhp"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "node-fs" = pkgs.stdenv.mkDerivation { - name = "node-fs"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-fs.git"; - rev = "7dfc7cad919cec097d40c8fce611338715969f75"; - sha256 = "0892d8d81czrh61w8zd5k48jzc5s6wkf3k5c033igqjbksxa114s"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "node-fs"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-fs.git"; + rev = "7dfc7cad919cec097d40c8fce611338715969f75"; + sha256 = "0892d8d81czrh61w8zd5k48jzc5s6wkf3k5c033igqjbksxa114s"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "node-path" = pkgs.stdenv.mkDerivation { - name = "node-path"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-path.git"; - rev = "d5f08cfde829b831408c4c6587cec83f2cd6a58e"; - sha256 = "1d38ipij4lb1nq8wkv7kmpk77z5ac0spfc89hfc9yn6jnscl6sky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "node-path"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-path.git"; + rev = "d5f08cfde829b831408c4c6587cec83f2cd6a58e"; + sha256 = "1d38ipij4lb1nq8wkv7kmpk77z5ac0spfc89hfc9yn6jnscl6sky"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "node-streams" = pkgs.stdenv.mkDerivation { - name = "node-streams"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-node/purescript-node-streams.git"; - rev = "8395652f9f347101fe042f58726edc592ae5086c"; - sha256 = "1cgkh3dwnhv90r7dak3x4dq698gh30ghfxncrw0ngwrv5pismn0x"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "node-streams"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-streams.git"; + rev = "8395652f9f347101fe042f58726edc592ae5086c"; + sha256 = "1cgkh3dwnhv90r7dak3x4dq698gh30ghfxncrw0ngwrv5pismn0x"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "nonempty" = pkgs.stdenv.mkDerivation { - name = "nonempty"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-nonempty.git"; - rev = "28150ecc7419238b187abd609a92a645273348bb"; - sha256 = "1mwdc2sny2ygp67kyk7h2493vq7syf7j18s3d9a5gwf1y7jlf7gh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "nonempty"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-nonempty.git"; + rev = "28150ecc7419238b187abd609a92a645273348bb"; + sha256 = "1mwdc2sny2ygp67kyk7h2493vq7syf7j18s3d9a5gwf1y7jlf7gh"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "now" = pkgs.stdenv.mkDerivation { - name = "now"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-now.git"; - rev = "b5ffed2381e5fefc063f484e607e8499e79eaf32"; - sha256 = "01khmqs4iz7dhlvd43zxj19q0c0vvqf1m128vgvgxz5mv430zfgr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "now"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-now.git"; + rev = "b5ffed2381e5fefc063f484e607e8499e79eaf32"; + sha256 = "01khmqs4iz7dhlvd43zxj19q0c0vvqf1m128vgvgxz5mv430zfgr"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "nullable" = pkgs.stdenv.mkDerivation { - name = "nullable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-nullable.git"; - rev = "3202744c6c65e8d1fbba7f4256a1c482078e7fb5"; - sha256 = "10s3b54pjmr2rxlyzvc8yc99k1dpn0qrijnc4y65yj5z6bxf2791"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "nullable"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-nullable.git"; + rev = "3202744c6c65e8d1fbba7f4256a1c482078e7fb5"; + sha256 = "10s3b54pjmr2rxlyzvc8yc99k1dpn0qrijnc4y65yj5z6bxf2791"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "numbers" = pkgs.stdenv.mkDerivation { - name = "numbers"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-numbers.git"; - rev = "2a53528f18f9415334bae28e7bb3cf3be86342c2"; - sha256 = "1h4v6ir1hq6gvkk0kla38vlcd6bv73xkc8pv71jygwqxrdwfxxgw"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "numbers"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-numbers.git"; + rev = "2a53528f18f9415334bae28e7bb3cf3be86342c2"; + sha256 = "1h4v6ir1hq6gvkk0kla38vlcd6bv73xkc8pv71jygwqxrdwfxxgw"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "ordered-collections" = pkgs.stdenv.mkDerivation { - name = "ordered-collections"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-ordered-collections.git"; - rev = "9826b7632d0d0a691173bde308a634195f42a419"; - sha256 = "1wk8mcn1zsxi0yk9ybas2v7m0drb492806gld1xxxic8x1i19ws0"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "ordered-collections"; + version = "v3.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-ordered-collections.git"; + rev = "9826b7632d0d0a691173bde308a634195f42a419"; + sha256 = "1wk8mcn1zsxi0yk9ybas2v7m0drb492806gld1xxxic8x1i19ws0"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "orders" = pkgs.stdenv.mkDerivation { - name = "orders"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-orders.git"; - rev = "f86db621ec5eef1274145f8b1fd8ebbfe0ed4a2c"; - sha256 = "14fjls3v14ia6fr2w4p0i5dqv10zk343wg28m4c77a17jmvbs9r4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "orders"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-orders.git"; + rev = "f86db621ec5eef1274145f8b1fd8ebbfe0ed4a2c"; + sha256 = "14fjls3v14ia6fr2w4p0i5dqv10zk343wg28m4c77a17jmvbs9r4"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "parallel" = pkgs.stdenv.mkDerivation { - name = "parallel"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-parallel.git"; - rev = "85290dca837771ac4870071008c933d315ef678f"; - sha256 = "0bpwvzq4dn7vx5mfj12w1zvvnamc6w2c45c2v54b9yw36snnwpcf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "parallel"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-parallel.git"; + rev = "85290dca837771ac4870071008c933d315ef678f"; + sha256 = "0bpwvzq4dn7vx5mfj12w1zvvnamc6w2c45c2v54b9yw36snnwpcf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "parsing" = pkgs.stdenv.mkDerivation { - name = "parsing"; - version = "v9.1.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-parsing.git"; - rev = "44ef16b7cfb7cedc3d518c00ef10c6cb73ff4fc8"; - sha256 = "1wkk3p1w2k1cvby4airyxgavk1djfzvzc2ch6b8951b592rj8lkr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "parsing"; + version = "v9.1.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-parsing.git"; + rev = "44ef16b7cfb7cedc3d518c00ef10c6cb73ff4fc8"; + sha256 = "1wkk3p1w2k1cvby4airyxgavk1djfzvzc2ch6b8951b592rj8lkr"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "partial" = pkgs.stdenv.mkDerivation { - name = "partial"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-partial.git"; - rev = "0fa0646f5ea1ec5f0c46dcbd770c705a6c9ad3ec"; - sha256 = "04s1h0r3slyd8kcamhqqrr6piksl9y76nmf2418j0ifhp16qwxmm"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "partial"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-partial.git"; + rev = "0fa0646f5ea1ec5f0c46dcbd770c705a6c9ad3ec"; + sha256 = "04s1h0r3slyd8kcamhqqrr6piksl9y76nmf2418j0ifhp16qwxmm"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "pipes" = pkgs.stdenv.mkDerivation { - name = "pipes"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/felixschl/purescript-pipes.git"; - rev = "e3bdc0b0db0a67e89a717b6118b23e78a380e23f"; - sha256 = "1jz3bfbl8b0hgbcm9y98bv2z29b072v1k8snp19vb2xql1zd40sx"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "pipes"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/felixschl/purescript-pipes.git"; + rev = "e3bdc0b0db0a67e89a717b6118b23e78a380e23f"; + sha256 = "1jz3bfbl8b0hgbcm9y98bv2z29b072v1k8snp19vb2xql1zd40sx"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "precise" = pkgs.stdenv.mkDerivation { - name = "precise"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-precise.git"; - rev = "37a6a4ffd0ab6f029cc6432f69bd3deb3b92eafd"; - sha256 = "1lvx109hlhkv2dk0hr0ajmqhvd0jiqpw0k49sk8sk4hs02p2p9q9"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "precise"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-precise.git"; + rev = "37a6a4ffd0ab6f029cc6432f69bd3deb3b92eafd"; + sha256 = "1lvx109hlhkv2dk0hr0ajmqhvd0jiqpw0k49sk8sk4hs02p2p9q9"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "prelude" = pkgs.stdenv.mkDerivation { - name = "prelude"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-prelude.git"; - rev = "32787f4399c92459c41602131a5858559eb868c5"; - sha256 = "0jkbckxw2640gmfi2f8bpf2zwnay2dxy8n24rvxl3w3dihcgd9qc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "prelude"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-prelude.git"; + rev = "32787f4399c92459c41602131a5858559eb868c5"; + sha256 = "0jkbckxw2640gmfi2f8bpf2zwnay2dxy8n24rvxl3w3dihcgd9qc"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "profunctor" = pkgs.stdenv.mkDerivation { - name = "profunctor"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-profunctor.git"; - rev = "0a966a14e7b0c827d44657dc1710cdc712d2e034"; - sha256 = "07rhk8micbc74my6s53xbj2smvvwah2w1drqrcmcnncxdks3lqg3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "profunctor"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-profunctor.git"; + rev = "0a966a14e7b0c827d44657dc1710cdc712d2e034"; + sha256 = "07rhk8micbc74my6s53xbj2smvvwah2w1drqrcmcnncxdks3lqg3"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "profunctor-lenses" = pkgs.stdenv.mkDerivation { - name = "profunctor-lenses"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-profunctor-lenses.git"; - rev = "973d567afe458fd802cf4f0d9725b6dc35ad9297"; - sha256 = "0axz7nznn12iqh6sn9qjg6i8qglpdsqgkp30ndwdj98czcnbnybv"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "profunctor-lenses"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-profunctor-lenses.git"; + rev = "973d567afe458fd802cf4f0d9725b6dc35ad9297"; + sha256 = "0axz7nznn12iqh6sn9qjg6i8qglpdsqgkp30ndwdj98czcnbnybv"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "psci-support" = pkgs.stdenv.mkDerivation { - name = "psci-support"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-psci-support.git"; - rev = "897cdb543548cb6078d69b6413b54841404eda72"; - sha256 = "1ix53r8avkn3fw72mngwzw7v6c6mv7j4miw5mrgjrh9hb8p2ydl1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "psci-support"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-psci-support.git"; + rev = "897cdb543548cb6078d69b6413b54841404eda72"; + sha256 = "1ix53r8avkn3fw72mngwzw7v6c6mv7j4miw5mrgjrh9hb8p2ydl1"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "quickcheck" = pkgs.stdenv.mkDerivation { - name = "quickcheck"; - version = "v8.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-quickcheck.git"; - rev = "bf5029f97e6c0d7552d3a08d2ab793a19e2c5e3d"; - sha256 = "142dvh57fl8b6i7mm37a38v7vkc1znbqz6l6wqa704m53hkikvyd"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "quickcheck"; + version = "v8.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-quickcheck.git"; + rev = "bf5029f97e6c0d7552d3a08d2ab793a19e2c5e3d"; + sha256 = "142dvh57fl8b6i7mm37a38v7vkc1znbqz6l6wqa704m53hkikvyd"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "quickcheck-laws" = pkgs.stdenv.mkDerivation { - name = "quickcheck-laws"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-quickcheck-laws.git"; - rev = "04f00fb78d88f38a2f2bb73b75f97ce5bf5624fc"; - sha256 = "0izp71wq253k9wih2hspfs4p1s36yins2a5mh13yl57pf1srbrky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "quickcheck-laws"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-quickcheck-laws.git"; + rev = "04f00fb78d88f38a2f2bb73b75f97ce5bf5624fc"; + sha256 = "0izp71wq253k9wih2hspfs4p1s36yins2a5mh13yl57pf1srbrky"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "random" = pkgs.stdenv.mkDerivation { - name = "random"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-random.git"; - rev = "9540bc965a9596da02fefd9949418bb19c92533a"; - sha256 = "0qz14qviz5053j9h1jwpk0gnn692hcdx6fp90wckzrnw31d53174"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "random"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-random.git"; + rev = "9540bc965a9596da02fefd9949418bb19c92533a"; + sha256 = "0qz14qviz5053j9h1jwpk0gnn692hcdx6fp90wckzrnw31d53174"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "record" = pkgs.stdenv.mkDerivation { - name = "record"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-record.git"; - rev = "c89cd1ada6b636692571fc374196b1c39c4c9f70"; - sha256 = "1g7s2h1as5cz824wpm0jhjprrh66shha5i4gq37q73yw0s5p2ahm"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "record"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-record.git"; + rev = "c89cd1ada6b636692571fc374196b1c39c4c9f70"; + sha256 = "1g7s2h1as5cz824wpm0jhjprrh66shha5i4gq37q73yw0s5p2ahm"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "refs" = pkgs.stdenv.mkDerivation { - name = "refs"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-refs.git"; - rev = "f8e6216da4cb9309fde1f20cd6f69ac3a3b7f9e8"; - sha256 = "09bvfxhjfwfwv55py45s71maazwrr68k0rk4v8ynfqv91h34319h"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "refs"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-refs.git"; + rev = "f8e6216da4cb9309fde1f20cd6f69ac3a3b7f9e8"; + sha256 = "09bvfxhjfwfwv55py45s71maazwrr68k0rk4v8ynfqv91h34319h"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "remotedata" = pkgs.stdenv.mkDerivation { - name = "remotedata"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/krisajenkins/purescript-remotedata.git"; - rev = "cc9932a6c19262d8e4217c534c658a127562c14c"; - sha256 = "1kr4wbsqd3kaf8c4w13m988602qvcm3262v0aij01jrms4p1x92q"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "remotedata"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/krisajenkins/purescript-remotedata.git"; + rev = "cc9932a6c19262d8e4217c534c658a127562c14c"; + sha256 = "1kr4wbsqd3kaf8c4w13m988602qvcm3262v0aij01jrms4p1x92q"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "routing" = pkgs.stdenv.mkDerivation { - name = "routing"; - version = "v11.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-routing.git"; - rev = "255ec9ada5ceb6e6e0e02f71a767cf86064165c0"; - sha256 = "0z915cgwdq8q3rsy6v6il4lqhkk3xr5mc7zfdyd6rgdjhmr7qiv7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "routing"; + version = "v11.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-routing.git"; + rev = "255ec9ada5ceb6e6e0e02f71a767cf86064165c0"; + sha256 = "0z915cgwdq8q3rsy6v6il4lqhkk3xr5mc7zfdyd6rgdjhmr7qiv7"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "routing-duplex" = pkgs.stdenv.mkDerivation { - name = "routing-duplex"; - version = "v0.6.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-routing-duplex.git"; - rev = "f4430e60d6519b5c43a888cf153dddee0cbc2946"; - sha256 = "0p5rsvbi5jy52yldyibrjgkbspnzc1ixp4jndf3jv15s90mim0xs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "routing-duplex"; + version = "v0.6.0"; + src = pkgs.fetchgit { + url = "https://github.com/natefaubion/purescript-routing-duplex.git"; + rev = "f4430e60d6519b5c43a888cf153dddee0cbc2946"; + sha256 = "0p5rsvbi5jy52yldyibrjgkbspnzc1ixp4jndf3jv15s90mim0xs"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "safe-coerce" = pkgs.stdenv.mkDerivation { - name = "safe-coerce"; - version = "v2.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-safe-coerce.git"; - rev = "7fa799ae80a38b8d948efcb52608e58e198b3da7"; - sha256 = "00m4l733gpl0153cbl6n5kly7jr8ids399apza2rbczif40brp9g"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "safe-coerce"; + version = "v2.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-safe-coerce.git"; + rev = "7fa799ae80a38b8d948efcb52608e58e198b3da7"; + sha256 = "00m4l733gpl0153cbl6n5kly7jr8ids399apza2rbczif40brp9g"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "semirings" = pkgs.stdenv.mkDerivation { - name = "semirings"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-semirings.git"; - rev = "e862c970483feff7dacdf6db5be5a84ea754fd63"; - sha256 = "0j0nr1kqgm2zgxfpzzmcpxl60mncq497mhkfxmkmz1kv4ix1zyra"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "semirings"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-semirings.git"; + rev = "e862c970483feff7dacdf6db5be5a84ea754fd63"; + sha256 = "0j0nr1kqgm2zgxfpzzmcpxl60mncq497mhkfxmkmz1kv4ix1zyra"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "servant-support" = pkgs.stdenv.mkDerivation { - name = "servant-support"; - version = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; - src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/purescript-servant-support"; - rev = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; - sha256 = "1y2x4qfrfnwsnk3h8nl1sf1xjhc7ans3dn5dvvkf6cpxjrc8i73p"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "servant-support"; + version = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; + src = pkgs.fetchgit { + url = "https://github.com/input-output-hk/purescript-servant-support"; + rev = "61f85eb0657196d4bfc80ae4736d6a6d9ebd4529"; + sha256 = "1y2x4qfrfnwsnk3h8nl1sf1xjhc7ans3dn5dvvkf6cpxjrc8i73p"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "simple-json" = pkgs.stdenv.mkDerivation { - name = "simple-json"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/justinwoo/purescript-simple-json.git"; - rev = "b85e112131240ff95b5c26e9abb8e2fa6db3c656"; - sha256 = "1k78zm7cq4yf65a1yrw7vqnflrnvm45b3jsxxk5vwcrzdlfrbxad"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "simple-json"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/justinwoo/purescript-simple-json.git"; + rev = "b85e112131240ff95b5c26e9abb8e2fa6db3c656"; + sha256 = "1k78zm7cq4yf65a1yrw7vqnflrnvm45b3jsxxk5vwcrzdlfrbxad"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "spec" = pkgs.stdenv.mkDerivation { - name = "spec"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-spec/purescript-spec.git"; - rev = "e7d976e3562e0d0c1d3b4cf51fb9b53957a8e157"; - sha256 = "1l70bidnscfsaj9fsfl7vxslp7sl633273ijm9219cjsrnhm55ky"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "spec"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-spec/purescript-spec.git"; + rev = "e7d976e3562e0d0c1d3b4cf51fb9b53957a8e157"; + sha256 = "1l70bidnscfsaj9fsfl7vxslp7sl633273ijm9219cjsrnhm55ky"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "spec-quickcheck" = pkgs.stdenv.mkDerivation { - name = "spec-quickcheck"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-spec/purescript-spec-quickcheck.git"; - rev = "c83de337db1f74ff75e0d7c574a2f7407bc5f2b2"; - sha256 = "1y9rzb8kbahhchplswdxrjqm4qjkv1bnv9mzg8v62m1ipk3kdndj"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "spec-quickcheck"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-spec/purescript-spec-quickcheck.git"; + rev = "c83de337db1f74ff75e0d7c574a2f7407bc5f2b2"; + sha256 = "1y9rzb8kbahhchplswdxrjqm4qjkv1bnv9mzg8v62m1ipk3kdndj"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "st" = pkgs.stdenv.mkDerivation { - name = "st"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-st.git"; - rev = "2cc7ae1c3318a303378c4a9f3fa0f10ee7cc3589"; - sha256 = "1ykk27zn03svfsv2s1mf88d6x3q6qhb9bwjzgals79krw8w0aiyl"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "st"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-st.git"; + rev = "2cc7ae1c3318a303378c4a9f3fa0f10ee7cc3589"; + sha256 = "1ykk27zn03svfsv2s1mf88d6x3q6qhb9bwjzgals79krw8w0aiyl"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "strings" = pkgs.stdenv.mkDerivation { - name = "strings"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-strings.git"; - rev = "4bc6954448d056f8aa7a659695a6ad60ad4fdf19"; - sha256 = "101va3rawcn5inp20krfg192bbjbvm27xfzwwc1inb2ya0m98amg"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "strings"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-strings.git"; + rev = "4bc6954448d056f8aa7a659695a6ad60ad4fdf19"; + sha256 = "101va3rawcn5inp20krfg192bbjbvm27xfzwwc1inb2ya0m98amg"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "tailrec" = pkgs.stdenv.mkDerivation { - name = "tailrec"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-tailrec.git"; - rev = "5e2104aa734b31a17074cc805bf087d72b65afd1"; - sha256 = "0vc3dpsd2xxz694zlm75nx1cn6c6f29nzkb8xlxkk6ydw3wpsk3w"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "tailrec"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-tailrec.git"; + rev = "5e2104aa734b31a17074cc805bf087d72b65afd1"; + sha256 = "0vc3dpsd2xxz694zlm75nx1cn6c6f29nzkb8xlxkk6ydw3wpsk3w"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "these" = pkgs.stdenv.mkDerivation { - name = "these"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-these.git"; - rev = "ad4de7d2bb9ce684a9dff5def6489630736985b8"; - sha256 = "1i73qz7pk11mbiymhfg21i3nq92hqjmqzj4gjp1n6l2zkm0lmql3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "these"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-these.git"; + rev = "ad4de7d2bb9ce684a9dff5def6489630736985b8"; + sha256 = "1i73qz7pk11mbiymhfg21i3nq92hqjmqzj4gjp1n6l2zkm0lmql3"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "transformers" = pkgs.stdenv.mkDerivation { - name = "transformers"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-transformers.git"; - rev = "be72ab52357d9a665cbf93d73ba1c07c4b0957ee"; - sha256 = "0ijrdsppl8vx0rlbwc9p0vjbmvwlcy4ia7xymvk6y34zbxzjlzm6"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "transformers"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-transformers.git"; + rev = "be72ab52357d9a665cbf93d73ba1c07c4b0957ee"; + sha256 = "0ijrdsppl8vx0rlbwc9p0vjbmvwlcy4ia7xymvk6y34zbxzjlzm6"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "tuples" = pkgs.stdenv.mkDerivation { - name = "tuples"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-tuples.git"; - rev = "4f52da2729b448c8564369378f1232d8d2dc1d8b"; - sha256 = "1m1ng0xxicb73945jymcl1hn2y2hmynlnmhb2k0kkn1jrjwgcc3d"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "tuples"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-tuples.git"; + rev = "4f52da2729b448c8564369378f1232d8d2dc1d8b"; + sha256 = "1m1ng0xxicb73945jymcl1hn2y2hmynlnmhb2k0kkn1jrjwgcc3d"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "type-equality" = pkgs.stdenv.mkDerivation { - name = "type-equality"; - version = "v4.0.1"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-type-equality.git"; - rev = "0525b7d39e0fbd81b4209518139fb8ab02695774"; - sha256 = "1ass38jdycsjisdimdc4drg2w8vkkwp6lkvz3kvy7q0h98vdmlbr"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "type-equality"; + version = "v4.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-type-equality.git"; + rev = "0525b7d39e0fbd81b4209518139fb8ab02695774"; + sha256 = "1ass38jdycsjisdimdc4drg2w8vkkwp6lkvz3kvy7q0h98vdmlbr"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "typelevel-prelude" = pkgs.stdenv.mkDerivation { - name = "typelevel-prelude"; - version = "v7.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-typelevel-prelude.git"; - rev = "dca2fe3c8cfd5527d4fe70c4bedfda30148405bf"; - sha256 = "0x86mrg33kpnrnsfp4p3c92j5lpyqzy87bxdynwf7smk3inqr2jc"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "typelevel-prelude"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-typelevel-prelude.git"; + rev = "dca2fe3c8cfd5527d4fe70c4bedfda30148405bf"; + sha256 = "0x86mrg33kpnrnsfp4p3c92j5lpyqzy87bxdynwf7smk3inqr2jc"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "undefined-or" = pkgs.stdenv.mkDerivation { - name = "undefined-or"; - version = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; - src = pkgs.fetchgit { - url = "https://github.com/CarstenKoenig/purescript-undefined-or.git"; - rev = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; - sha256 = "152b2cfakg3inqcq5dfr70q8ngw3sbpx1fz9krvjjy7mmd9mw431"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "undefined-or"; + version = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; + src = pkgs.fetchgit { + url = "https://github.com/CarstenKoenig/purescript-undefined-or.git"; + rev = "5822ab71acc9ed276afd6fa96f1cb3135e376719"; + sha256 = "152b2cfakg3inqcq5dfr70q8ngw3sbpx1fz9krvjjy7mmd9mw431"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "unfoldable" = pkgs.stdenv.mkDerivation { - name = "unfoldable"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-unfoldable.git"; - rev = "493dfe04ed590e20d8f69079df2f58486882748d"; - sha256 = "15z2k639ph8wdkrc2y838m5am1z7szw2vqymmv021skzisyn7zwf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "unfoldable"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-unfoldable.git"; + rev = "493dfe04ed590e20d8f69079df2f58486882748d"; + sha256 = "15z2k639ph8wdkrc2y838m5am1z7szw2vqymmv021skzisyn7zwf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "unicode" = pkgs.stdenv.mkDerivation { - name = "unicode"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-unicode.git"; - rev = "6454d59d9e1fd1bc5a72e80e985d8282022a567a"; - sha256 = "0w2gsmqcy7pj5vd22qzpig20bdgzmbagyqxrg9mm1njjfsmcm8cv"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "unicode"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-unicode.git"; + rev = "6454d59d9e1fd1bc5a72e80e985d8282022a567a"; + sha256 = "0w2gsmqcy7pj5vd22qzpig20bdgzmbagyqxrg9mm1njjfsmcm8cv"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "unordered-collections" = pkgs.stdenv.mkDerivation { - name = "unordered-collections"; - version = "v3.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/fehrenbach/purescript-unordered-collections.git"; - rev = "6fb203af23c9910ca6776d0673a0256690e0fbcd"; - sha256 = "1cip31vx9v060hrn78gxlzkwkfgz75si50m19h2w2vdnv3v64nwh"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "unordered-collections"; + version = "v3.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/fehrenbach/purescript-unordered-collections.git"; + rev = "6fb203af23c9910ca6776d0673a0256690e0fbcd"; + sha256 = "1cip31vx9v060hrn78gxlzkwkfgz75si50m19h2w2vdnv3v64nwh"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "unsafe-coerce" = pkgs.stdenv.mkDerivation { - name = "unsafe-coerce"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-unsafe-coerce.git"; - rev = "ab956f82e66e633f647fb3098e8ddd3ec58d689f"; - sha256 = "0r6d3dx8jalfzvrvkagz9v05yxwkkhgbzlpswg4w1cyl03zjcla4"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "unsafe-coerce"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-unsafe-coerce.git"; + rev = "ab956f82e66e633f647fb3098e8ddd3ec58d689f"; + sha256 = "0r6d3dx8jalfzvrvkagz9v05yxwkkhgbzlpswg4w1cyl03zjcla4"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "unsafe-reference" = pkgs.stdenv.mkDerivation { - name = "unsafe-reference"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-unsafe-reference.git"; - rev = "058e23b8b9adcf776a910f9934ff515ddee73af5"; - sha256 = "07793ijx8vv9rac0yqkxzh5djckhslcy16cm8k0lgjl6bc9mwgra"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "unsafe-reference"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-unsafe-reference.git"; + rev = "058e23b8b9adcf776a910f9934ff515ddee73af5"; + sha256 = "07793ijx8vv9rac0yqkxzh5djckhslcy16cm8k0lgjl6bc9mwgra"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "uri" = pkgs.stdenv.mkDerivation { - name = "uri"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-contrib/purescript-uri.git"; - rev = "6cb335da26c61dad7021281bdc7e4ac5136200fe"; - sha256 = "05zf018s2zjd52dl5qyq9b6804yr0cw0dmqzd2klfwmdv6p4rnl3"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "uri"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-uri.git"; + rev = "6cb335da26c61dad7021281bdc7e4ac5136200fe"; + sha256 = "05zf018s2zjd52dl5qyq9b6804yr0cw0dmqzd2klfwmdv6p4rnl3"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "uuid" = pkgs.stdenv.mkDerivation { - name = "uuid"; - version = "v9.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/megamaddu/purescript-uuid.git"; - rev = "69128690b8686e3f819f1e107a960509664bca3f"; - sha256 = "0msj229spkf5pg5yq0b3yxdjzb836c5nfng9h36vrgczd2n6gamn"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "uuid"; + version = "v9.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/megamaddu/purescript-uuid.git"; + rev = "69128690b8686e3f819f1e107a960509664bca3f"; + sha256 = "0msj229spkf5pg5yq0b3yxdjzb836c5nfng9h36vrgczd2n6gamn"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "validation" = pkgs.stdenv.mkDerivation { - name = "validation"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript/purescript-validation.git"; - rev = "a3d9ec2176a7a808d70a01fa7e6f16d10e05429a"; - sha256 = "0i11y3qqarp6gkj6af4x8idaiq9sva8ajykpdxbbgmb79vlfyrn1"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "validation"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript/purescript-validation.git"; + rev = "a3d9ec2176a7a808d70a01fa7e6f16d10e05429a"; + sha256 = "0i11y3qqarp6gkj6af4x8idaiq9sva8ajykpdxbbgmb79vlfyrn1"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "variant" = pkgs.stdenv.mkDerivation { - name = "variant"; - version = "v8.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/natefaubion/purescript-variant.git"; - rev = "8b2bd73a4202257d80a955c4dd36f6055f149823"; - sha256 = "18nyxnaqqg1zzydwd2hh9hbzr31j509g5yb1lnd0m60bma4l9h5g"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "variant"; + version = "v8.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/natefaubion/purescript-variant.git"; + rev = "8b2bd73a4202257d80a955c4dd36f6055f149823"; + sha256 = "18nyxnaqqg1zzydwd2hh9hbzr31j509g5yb1lnd0m60bma4l9h5g"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-clipboard" = pkgs.stdenv.mkDerivation { - name = "web-clipboard"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-clipboard.git"; - rev = "eded8dd18090c4d0938c2e51ad7407897811d32f"; - sha256 = "1nr7mdrbpfr3k5m87hnrfqz69kslvyiflgw8j78cw475ahsm28z0"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-clipboard"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-clipboard.git"; + rev = "eded8dd18090c4d0938c2e51ad7407897811d32f"; + sha256 = "1nr7mdrbpfr3k5m87hnrfqz69kslvyiflgw8j78cw475ahsm28z0"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-dom" = pkgs.stdenv.mkDerivation { - name = "web-dom"; - version = "v6.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-dom.git"; - rev = "568a1ee158b29e6e739e7a9aaed3e35ca4c4305a"; - sha256 = "0angs86ld0h3ld889ag55lh62101dfn3fknyqrfv0imgn40vwm44"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-dom"; + version = "v6.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-dom.git"; + rev = "568a1ee158b29e6e739e7a9aaed3e35ca4c4305a"; + sha256 = "0angs86ld0h3ld889ag55lh62101dfn3fknyqrfv0imgn40vwm44"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-events" = pkgs.stdenv.mkDerivation { - name = "web-events"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-events.git"; - rev = "2124356117be7b764a2f3948032255ac4dab7051"; - sha256 = "0l47gsgj71x0gjbhjqwsar2y44ljhq3xa0nkgr1qvqxmcm00llqf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-events"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-events.git"; + rev = "2124356117be7b764a2f3948032255ac4dab7051"; + sha256 = "0l47gsgj71x0gjbhjqwsar2y44ljhq3xa0nkgr1qvqxmcm00llqf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-file" = pkgs.stdenv.mkDerivation { - name = "web-file"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-file.git"; - rev = "023786ae62bbb8bf58156dd7f02011fa38221ef1"; - sha256 = "1wjf1m5y2qsba83is297icv9zyl7jilxdga0192mm1rp0j16jjln"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-file"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-file.git"; + rev = "023786ae62bbb8bf58156dd7f02011fa38221ef1"; + sha256 = "1wjf1m5y2qsba83is297icv9zyl7jilxdga0192mm1rp0j16jjln"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-html" = pkgs.stdenv.mkDerivation { - name = "web-html"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-html.git"; - rev = "be189cf91b9a19cf493637423522e2fe4a0088cc"; - sha256 = "0yspv6sci3mkflvqwf5jvz3a8nclmhbvazx9n34acyj3aai7k6bs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-html"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-html.git"; + rev = "be189cf91b9a19cf493637423522e2fe4a0088cc"; + sha256 = "0yspv6sci3mkflvqwf5jvz3a8nclmhbvazx9n34acyj3aai7k6bs"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-pointerevents" = pkgs.stdenv.mkDerivation { - name = "web-pointerevents"; - version = "v1.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-pointerevents.git"; - rev = "cf1f48dda73ea34f81a769809489806fce0cac40"; - sha256 = "1yswmb81vpj2nhb5ibiddih3zk8kwg1rpymq6jydqawrhdzwz8z7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-pointerevents"; + version = "v1.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-pointerevents.git"; + rev = "cf1f48dda73ea34f81a769809489806fce0cac40"; + sha256 = "1yswmb81vpj2nhb5ibiddih3zk8kwg1rpymq6jydqawrhdzwz8z7"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-socket" = pkgs.stdenv.mkDerivation { - name = "web-socket"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-socket.git"; - rev = "9d37be740d9c99449ddb4ca5de8a0339e4ae1f55"; - sha256 = "0iqymasryrfd7rnkbg0m23c879r18qvy64nkf4yhgmdm26sf5vxa"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-socket"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-socket.git"; + rev = "9d37be740d9c99449ddb4ca5de8a0339e4ae1f55"; + sha256 = "0iqymasryrfd7rnkbg0m23c879r18qvy64nkf4yhgmdm26sf5vxa"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-storage" = pkgs.stdenv.mkDerivation { - name = "web-storage"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-storage.git"; - rev = "6b74461e136755db70c271dc898d51776363d7e2"; - sha256 = "0q1grh8cp6h1szsqg3xmwlzrc1bbz8yzlwxlcl1iym5mjiyzgkcs"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-storage"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-storage.git"; + rev = "6b74461e136755db70c271dc898d51776363d7e2"; + sha256 = "0q1grh8cp6h1szsqg3xmwlzrc1bbz8yzlwxlcl1iym5mjiyzgkcs"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-touchevents" = pkgs.stdenv.mkDerivation { - name = "web-touchevents"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-touchevents.git"; - rev = "53feadd58661b6a8bce673f4a1da4a6436cbbb24"; - sha256 = "1897hz57myik4p0nr18z18wagv0qk67capa76nrdqpmkm58f20h8"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-touchevents"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-touchevents.git"; + rev = "53feadd58661b6a8bce673f4a1da4a6436cbbb24"; + sha256 = "1897hz57myik4p0nr18z18wagv0qk67capa76nrdqpmkm58f20h8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-uievents" = pkgs.stdenv.mkDerivation { - name = "web-uievents"; - version = "v4.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-uievents.git"; - rev = "091ad1b092dee27ec9bcbaad84bb34c4218026df"; - sha256 = "1dj52fn9nx7qk8i22kyss2xjwpzjqjm3qjfad2lc4802iglii9i7"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-uievents"; + version = "v4.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-uievents.git"; + rev = "091ad1b092dee27ec9bcbaad84bb34c4218026df"; + sha256 = "1dj52fn9nx7qk8i22kyss2xjwpzjqjm3qjfad2lc4802iglii9i7"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; "web-xhr" = pkgs.stdenv.mkDerivation { - name = "web-xhr"; - version = "v5.0.0"; - src = pkgs.fetchgit { - url = "https://github.com/purescript-web/purescript-web-xhr.git"; - rev = "476122fe3ad19031aeb69186209b480e2fc9ef25"; - sha256 = "1swpprc000gfqid6r05pxs8wvlc5xjry5s2kk8lk3ah2dgv297sf"; - }; - phases = "installPhase"; - installPhase = "ln -s $src $out"; - }; + name = "web-xhr"; + version = "v5.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-web/purescript-web-xhr.git"; + rev = "476122fe3ad19031aeb69186209b480e2fc9ef25"; + sha256 = "1swpprc000gfqid6r05pxs8wvlc5xjry5s2kk8lk3ah2dgv297sf"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; }; cpPackage = pkg: let target = ".spago/${pkg.name}/${pkg.version}"; - in '' + in + '' if [ ! -e ${target} ]; then echo "Installing ${target}." mkdir -p ${target} @@ -1620,29 +1621,31 @@ let getStoreGlob = pkg: ''"${pkg.outPath}/src/**/*.purs"''; -in { +in +{ inherit inputs; installSpagoStyle = pkgs.writeShellScriptBin "install-spago-style" '' - set -e - echo installing dependencies... - ${builtins.toString (builtins.map cpPackage (builtins.attrValues inputs))} - echo "echo done." + set -e + echo installing dependencies... + ${builtins.toString (builtins.map cpPackage (builtins.attrValues inputs))} + echo "echo done." ''; buildSpagoStyle = pkgs.writeShellScriptBin "build-spago-style" '' - set -e - echo building project... - purs compile ${builtins.toString (builtins.map getGlob (builtins.attrValues inputs))} "$@" - echo done. + set -e + echo building project... + purs compile ${builtins.toString (builtins.map getGlob (builtins.attrValues inputs))} "$@" + echo done. ''; buildFromNixStore = pkgs.writeShellScriptBin "build-from-store" '' - set -e - echo building project using sources from nix store... - purs compile ${builtins.toString ( - builtins.map getStoreGlob (builtins.attrValues inputs))} "$@" - echo done. + set -e + echo building project using sources from nix store... + purs compile ${builtins.toString ( + builtins.map getStoreGlob (builtins.attrValues inputs) + )} "$@" + echo done. ''; mkBuildProjectOutput = diff --git a/nix/cabal-project.nix b/nix/cabal-project.nix new file mode 100644 index 000000000..a5990a792 --- /dev/null +++ b/nix/cabal-project.nix @@ -0,0 +1,11 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#33-nixcabal-projectnix + +{ + modules = [{ + packages.marlowe-symbolic.ghcOptions = [ "-Werror" ]; + packages.marlowe-playground-server.ghcOptions = [ "-Werror" ]; + packages.plutus-script-utils.ghcOptions = [ "-Wwarn" "-Wno-unused-packages" ]; + }]; +} + diff --git a/nix/cells/automation/ciJobs.nix b/nix/cells/automation/ciJobs.nix deleted file mode 100644 index 5afae4dcc..000000000 --- a/nix/cells/automation/ciJobs.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ inputs, cell }: - -let - - - inherit (inputs.cells.marlowe-playground) library; - inherit (library) pkgs; - inherit (pkgs.stdenv) system; - inherit (pkgs) lib; - - make-haskell-jobs = project: - let - packages = library.haskell-nix.haskellLib.selectProjectPackages project.hsPkgs; - in - { - exes = library.haskell-nix.haskellLib.collectComponents' "exes" packages; - tests = library.haskell-nix.haskellLib.collectComponents' "tests" packages; - benchmarks = library.haskell-nix.haskellLib.collectComponents' "benchmarks" packages; - libraries = library.haskell-nix.haskellLib.collectComponents' "library" packages; - checks = library.haskell-nix.haskellLib.collectChecks' packages; - roots = project.roots; - plan-nix = project.plan-nix; - }; - - jobs = make-haskell-jobs library.cabal-project - // inputs.cells.marlowe-playground.packages - // inputs.cells.marlowe-playground.scripts - // inputs.cells.marlowe-playground.tests - // { devShells = inputs.cells.marlowe-playground.devshells; } - // { operables = inputs.cells.marlowe-playground.operables; } - // { oci-images = inputs.cells.marlowe-playground.oci-images; }; - - # Hydra doesn't like these attributes hanging around in "jobsets": it thinks they're jobs! - filtered-jobs = lib.filterAttrsRecursive (n: _: n != "recurseForDerivations") jobs; - - required-job = pkgs.releaseTools.aggregate { - name = "required-marlowe-playground"; - meta.description = "All jobs required to pass CI"; - constituents = lib.collect lib.isDerivation filtered-jobs; - }; - - final-jobset = - # TODO: Need to fix darwin build - # if system == "x86_64-linux" || system == "x86_64-darwin" then - if system == "x86_64-linux" then - filtered-jobs // { required = required-job; } - else { }; - -in - -final-jobset diff --git a/nix/cells/marlowe-playground/devshells.nix b/nix/cells/marlowe-playground/devshells.nix deleted file mode 100644 index 8aeb40760..000000000 --- a/nix/cells/marlowe-playground/devshells.nix +++ /dev/null @@ -1,171 +0,0 @@ -{ inputs, cell }: -let - inherit (cell) library packages scripts; - inherit (library) pkgs haskell-nix cabal-project; - haskell-devshell = haskell-nix.haskellLib.devshellFor cabal-project.shell; - - shell = inputs.std.lib.dev.mkShell { - name = "marlowe-playground-shell"; - - imports = [ haskell-devshell inputs.std.std.devshellProfiles.default ]; - - env = [ - { name = "PLAYWRIGHT_BROWSERS_PATH"; value = "${packages.playwright}"; } - { name = "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD"; value = "true"; } - ]; - - commands = [ - { - package = scripts.fix-png-optimization; - category = "general commands"; - help = "Optimize all PNG files in-place"; - } - { - package = scripts.fix-stylish-haskell; - category = "haskell"; - help = "Format all Haskell files in-place"; - } - { - package = scripts.fix-prettier; - category = "javascript"; - help = "Format all JavaScript, HTML, and CSS files in-place"; - } - { - package = scripts.fix-purs-tidy; - category = "purescript"; - help = "Format all PureScript files in-place"; - } - { - package = scripts.fix-nix-fmt; - category = "nix"; - help = "Format all Nix files in-place"; - } - { - package = pkgs.shellcheck; - category = "general commands"; - help = "Shell file checker"; - } - { - package = pkgs.editorconfig-checker; - category = "general commands"; - help = "Editorconfig compliance checker"; - } - { - package = library.cabal-install; - name = "cabal"; - category = "haskell"; - help = "Cabal build tool"; - } - { - package = library.hlint; - name = "hlint"; - category = "haskell"; - help = "Haskell code linter"; - } - { - package = library.haskell-language-server; - name = "haskell-language-server"; - category = "haskell"; - help = "Haskell language server"; - } - { - package = library.stylish-haskell; - name = "stylish-haskell"; - category = "haskell"; - help = "Haskell code formatter"; - } - { - package = packages.nixpkgs-fmt; - category = "nix"; - help = "Nix code formatter"; - } - { - package = packages.scriv; - category = "general commands"; - help = "Changelog generator"; - } - { - package = pkgs.nodePackages.prettier; - category = "javascript"; - help = "JS, HTML, CSS code formatter"; - } - { - package = library.nodejs; - category = "javascript"; - help = "NodeJS runtime"; - } - { - package = library.purescript.purs-tidy; - category = "purescript"; - help = "PureScript code formatter"; - } - { - package = library.purescript.purs; - category = "purescript"; - help = "PureScript compiler"; - } - { - package = library.purescript.spago; - category = "purescript"; - help = "Purescript build tool"; - } - { - package = library.purescript.spago2nix; - category = "purescript"; - help = "Dependency translator for Spago to Nix"; - } - { - package = library.purescript.psa; - category = "purescript"; - help = "Purescript build tool"; - } - { - package = library.purescript.purescript-language-server; - category = "purescript"; - help = "Purescript language server"; - } - { - package = library.purescript.pscid; - category = "purescript"; - help = "Purescript development daemon"; - } - { - package = scripts.generate-purescript; - category = "purescript"; - help = "Generate all PureScript Bridge code"; - } - { - package = scripts.start-backend; - category = "general commands"; - help = "Start the Marlowe Playground server"; - } - { - package = scripts.update-client-deps; - category = "purescript"; - help = "Run spago2nix in marlowe-playground-client"; - } - { - package = scripts.assemble-changelog; - category = "general commands"; - help = "Assembles the changelog for a given package at version"; - } - ]; - - packages = [ - library.haskell-language-server-project.hsPkgs.haskell-language-server.components.exes.haskell-language-server-wrapper - library.hie-bios - pkgs.jq - pkgs.yq - pkgs.pre-commit - pkgs.gnused - pkgs.act - pkgs.gawk - pkgs.nil - pkgs.z3 - ]; - - devshell.startup."pre-commit-check".text = cell.library.pre-commit-check.shellHook; - }; - -in -{ default = shell; } diff --git a/nix/cells/marlowe-playground/library/cabal-install.nix b/nix/cells/marlowe-playground/library/cabal-install.nix deleted file mode 100644 index deedd3de1..000000000 --- a/nix/cells/marlowe-playground/library/cabal-install.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) cabal-project haskell-nix ghc-compiler-nix-name pkgs; - inherit (pkgs) lib; - - project = haskell-nix.hackage-project { - name = "cabal-install"; - version = "3.6.2.0"; - compiler-nix-name = ghc-compiler-nix-name; - index-state = - let - parseIndexState = rawCabalProject: - let - indexState = lib.lists.concatLists ( - lib.lists.filter (l: l != null) - (map (l: builtins.match "^index-state: *(.*)" l) - (lib.splitString "\n" rawCabalProject))); - in - lib.lists.head (indexState ++ [ null ]); - in - parseIndexState (builtins.readFile (inputs.self + "/cabal.project")); - - configureArgs = "--disable-tests"; - }; - -in - -project.hsPkgs.cabal-install.components.exes.cabal diff --git a/nix/cells/marlowe-playground/library/cabal-project.nix b/nix/cells/marlowe-playground/library/cabal-project.nix deleted file mode 100644 index 46bcea50c..000000000 --- a/nix/cells/marlowe-playground/library/cabal-project.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) haskell-nix ghc-compiler-nix-name; - inherit (inputs) self CHaP; - - configureProject = { pkgs, lib, ... }: { - compiler-nix-name = ghc-compiler-nix-name; - - src = haskell-nix.haskellLib.cleanSourceWith { - src = self.outPath; - name = "marlowe-playground"; - }; - - shell = { - withHoogle = false; - }; - - inputMap = { "https://input-output-hk.github.io/cardano-haskell-packages" = inputs.CHaP; }; - - modules = [ - { - packages.marlowe-symbolic.ghcOptions = [ "-Werror" ]; - packages.marlowe-playground-server.ghcOptions = [ "-Werror" ]; - packages.plutus-script-utils.ghcOptions = [ "-Wwarn" "-Wno-unused-packages" ]; - # See https://github.com/input-output-hk/iohk-nix/pull/488 - packages.cardano-crypto-praos.components.library.pkgconfig = pkgs.lib.mkForce [ [ pkgs.libsodium-vrf pkgs.secp256k1 ] ]; - packages.cardano-crypto-class.components.library.pkgconfig = pkgs.lib.mkForce [ [ pkgs.libsodium-vrf pkgs.secp256k1 ] ]; - } - ]; - }; - - project = haskell-nix.cabalProject' configureProject; - -in -project diff --git a/nix/cells/marlowe-playground/library/default.nix b/nix/cells/marlowe-playground/library/default.nix deleted file mode 100644 index b60080498..000000000 --- a/nix/cells/marlowe-playground/library/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ inputs, cell }@block: -{ - cabal-install = import ./cabal-install.nix block; - - cabal-project = import ./cabal-project.nix block; - - ghc-compiler-nix-name = import ./ghc-compiler-nix-name.nix block; - - ghc = import ./ghc.nix block; - - haskell-language-server-project = import ./haskell-language-server-project.nix block; - - haskell-language-server = import ./haskell-language-server.nix block; - - haskell-nix = import ./haskell-nix.nix block; - - haskell-packages = import ./haskell-packages.nix block; - - hie-bios = import ./hie-bios.nix block; - - hlint = import ./hlint.nix block; - - nodejs-pkgs = import ./nodejs-pkgs.nix block; - - nodejs = import ./nodejs.nix block; - - npmlock2nix = import ./npmlock2nix.nix block; - - pkgs = import ./pkgs.nix block; - - pre-commit-check = import ./pre-commit-check.nix block; - - purescript = import ./purescript.nix block; - - stylish-haskell = import ./stylish-haskell.nix block; - - write-formatter = import ./write-formatter.nix block; - - writeShellScriptInRepoRoot = import ./writeShellScriptInRepoRoot.nix block; -} diff --git a/nix/cells/marlowe-playground/library/ghc-compiler-nix-name.nix b/nix/cells/marlowe-playground/library/ghc-compiler-nix-name.nix deleted file mode 100644 index de3ae2075..000000000 --- a/nix/cells/marlowe-playground/library/ghc-compiler-nix-name.nix +++ /dev/null @@ -1 +0,0 @@ -{ inputs, cell }: "ghc8107" diff --git a/nix/cells/marlowe-playground/library/ghc.nix b/nix/cells/marlowe-playground/library/ghc.nix deleted file mode 100644 index 652911057..000000000 --- a/nix/cells/marlowe-playground/library/ghc.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.cabal-project.pkg-set.config.ghc.package diff --git a/nix/cells/marlowe-playground/library/haskell-language-server-project.nix b/nix/cells/marlowe-playground/library/haskell-language-server-project.nix deleted file mode 100644 index 07519381d..000000000 --- a/nix/cells/marlowe-playground/library/haskell-language-server-project.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) haskell-nix ghc-compiler-nix-name; - inherit (inputs) haskell-language-server; - -in -haskell-nix.cabalProject' { - cabalProjectLocal = '' - constraints: stylish-haskell==0.12.2.0, hlint==3.2.7 - ''; - - sha256map = { - "https://github.com/hsyl20/ghc-api-compat"."8fee87eac97a538dbe81ff1ab18cff10f2f9fa15" = "16bibb7f3s2sxdvdy2mq6w1nj1lc8zhms54lwmj17ijhvjys29vg"; - "https://github.com/haskell/lsp.git"."ef59c28b41ed4c5775f0ab0c1e985839359cec96" = "1whcgw4hhn2aplrpy9w8q6rafwy7znnp0rczgr6py15fqyw2fwb5"; - }; - - src = haskell-language-server; - - compiler-nix-name = ghc-compiler-nix-name; - - modules = [{ - packages.ghcide.flags.ghc-patched-unboxed-bytecode = true; - }]; -} diff --git a/nix/cells/marlowe-playground/library/haskell-language-server.nix b/nix/cells/marlowe-playground/library/haskell-language-server.nix deleted file mode 100644 index cb89aac33..000000000 --- a/nix/cells/marlowe-playground/library/haskell-language-server.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-language-server-project.hsPkgs.haskell-language-server.components.exes.haskell-language-server diff --git a/nix/cells/marlowe-playground/library/haskell-nix.nix b/nix/cells/marlowe-playground/library/haskell-nix.nix deleted file mode 100644 index 47c8b8a68..000000000 --- a/nix/cells/marlowe-playground/library/haskell-nix.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ inputs, cell }: - -# The instantiated haskell-nix. -# This is the attrset that contains cabalProject, haskellLib, & friends. -# This is in contrast to the haskell-nix flake input, which has already -# been consumed at this stage, and only once in ./pkgs.nix - -cell.library.pkgs.haskell-nix diff --git a/nix/cells/marlowe-playground/library/haskell-packages.nix b/nix/cells/marlowe-playground/library/haskell-packages.nix deleted file mode 100644 index 33d9021de..000000000 --- a/nix/cells/marlowe-playground/library/haskell-packages.nix +++ /dev/null @@ -1 +0,0 @@ -{ inputs, cell }: cell.library.cabal-project.hsPkgs diff --git a/nix/cells/marlowe-playground/library/hie-bios.nix b/nix/cells/marlowe-playground/library/hie-bios.nix deleted file mode 100644 index 94aad86d9..000000000 --- a/nix/cells/marlowe-playground/library/hie-bios.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-language-server-project.hsPkgs.hie-bios.components.exes.hie-bios diff --git a/nix/cells/marlowe-playground/library/hlint.nix b/nix/cells/marlowe-playground/library/hlint.nix deleted file mode 100644 index a2a6c4ef6..000000000 --- a/nix/cells/marlowe-playground/library/hlint.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-language-server-project.hsPkgs.hlint.components.exes.hlint diff --git a/nix/cells/marlowe-playground/library/nodejs-pkgs.nix b/nix/cells/marlowe-playground/library/nodejs-pkgs.nix deleted file mode 100644 index 619680209..000000000 --- a/nix/cells/marlowe-playground/library/nodejs-pkgs.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.nodejs.pkgs diff --git a/nix/cells/marlowe-playground/library/nodejs.nix b/nix/cells/marlowe-playground/library/nodejs.nix deleted file mode 100644 index 941f568cf..000000000 --- a/nix/cells/marlowe-playground/library/nodejs.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.pkgs.nodejs-14_x diff --git a/nix/cells/marlowe-playground/library/npmlock2nix.nix b/nix/cells/marlowe-playground/library/npmlock2nix.nix deleted file mode 100644 index 64a6ef1f1..000000000 --- a/nix/cells/marlowe-playground/library/npmlock2nix.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -import inputs.npmlock2nix { inherit (cell.library) pkgs; } diff --git a/nix/cells/marlowe-playground/library/pkgs.nix b/nix/cells/marlowe-playground/library/pkgs.nix deleted file mode 100644 index 77e16f3d9..000000000 --- a/nix/cells/marlowe-playground/library/pkgs.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ inputs, cell }: - -# Our nixpkgs comes from haskell-nix and is overlaid with iohk-nix. -# This means that this file is the *only* place where we reference -# `inputs.nixpkgs` directly -- more precisely we reference `inputs.nixpkgs.path` -# because std treats nixpkgs specially, and already `import`s it under the hood. -# This also means that *everywhere else* in nix code we use -# `cell.library.pkgs` to access our overlaid nixpkgs. - -let - - pkgs = import inputs.nixpkgs.path { - - config = inputs.haskell-nix.config // { - # This is required by SASS, which we should move away from! - permittedInsecurePackages = [ "python-2.7.18.6" ]; - }; - - system = inputs.nixpkgs.system; - - overlays = [ - inputs.haskell-nix.overlay - inputs.iohk-nix.overlays.crypto - ]; - - }; - -in - -pkgs diff --git a/nix/cells/marlowe-playground/library/pre-commit-check.nix b/nix/cells/marlowe-playground/library/pre-commit-check.nix deleted file mode 100644 index 259d58072..000000000 --- a/nix/cells/marlowe-playground/library/pre-commit-check.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs stylish-haskell purescript; - inherit (cell.packages) nixpkgs-fmt; - -in - -inputs.pre-commit-hooks.lib.run { - - src = pkgs.lib.cleanSource inputs.self; - - tools = { - inherit (pkgs) shellcheck; - inherit (pkgs.nodePackages) prettier; - inherit stylish-haskell nixpkgs-fmt; - }; - - hooks = { - shellcheck.enable = true; - stylish-haskell.enable = true; - nixpkgs-fmt.enable = true; - - prettier = { - enable = true; - types_or = [ "javascript" "css" "html" ]; - }; - - png-optimization = { - enable = true; - name = "png-optimization"; - description = "Ensure that PNG files are optimized"; - entry = "${pkgs.optipng}/bin/optipng"; - files = "\\.png$"; - }; - - purs-tidy-hook = { - enable = true; - name = "purs-tidy"; - description = "Ensure PureScript files are formatted"; - entry = "${purescript.purs-tidy}/bin/purs-tidy format-in-place"; - files = "\\.purs$"; - language = "system"; - }; - }; -} diff --git a/nix/cells/marlowe-playground/library/purescript.nix b/nix/cells/marlowe-playground/library/purescript.nix deleted file mode 100644 index 0e97fb63a..000000000 --- a/nix/cells/marlowe-playground/library/purescript.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (inputs) easy-purescript-nix; - p = pkgs.callPackage (easy-purescript-nix) { }; -in -p // { purs = p.purs-0_15_2; } diff --git a/nix/cells/marlowe-playground/library/stylish-haskell.nix b/nix/cells/marlowe-playground/library/stylish-haskell.nix deleted file mode 100644 index b9cb8e3a9..000000000 --- a/nix/cells/marlowe-playground/library/stylish-haskell.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-language-server-project.hsPkgs.stylish-haskell.components.exes.stylish-haskell diff --git a/nix/cells/marlowe-playground/library/write-formatter.nix b/nix/cells/marlowe-playground/library/write-formatter.nix deleted file mode 100644 index 3edafbaa9..000000000 --- a/nix/cells/marlowe-playground/library/write-formatter.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs writeShellScriptInRepoRoot; - inherit (builtins) concatStringsSep; - xargs = "${pkgs.findutils}/bin/xargs"; - extensionsToRegex = extensions: "\\.(${concatStringsSep "|" extensions})"; - writeFormatter = name: cmd: extensions: writeShellScriptInRepoRoot "fix-${name}" '' - set -e - echo formatting with ${name} - ${pkgs.git}/bin/git ls-files ':!:bitte/node/config/*'\ - | grep -E '${extensionsToRegex extensions}' \ - | ${xargs} -d $'\\n' ${cmd} - echo done. - ''; - -in - -writeFormatter diff --git a/nix/cells/marlowe-playground/library/writeShellScriptInRepoRoot.nix b/nix/cells/marlowe-playground/library/writeShellScriptInRepoRoot.nix deleted file mode 100644 index d2f08a840..000000000 --- a/nix/cells/marlowe-playground/library/writeShellScriptInRepoRoot.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs; -in -name: script: pkgs.writeShellScriptBin name '' - cd `${pkgs.git}/bin/git rev-parse --show-toplevel` - ${script} -'' - diff --git a/nix/cells/marlowe-playground/oci-images.nix b/nix/cells/marlowe-playground/oci-images.nix deleted file mode 100644 index 38ca15b27..000000000 --- a/nix/cells/marlowe-playground/oci-images.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (pkgs) lib stdenv; - inherit (cell) operables; - inherit (inputs.std.lib.ops) mkStandardOCI; - - mkImage = { name, description }: - mkStandardOCI { - inherit name; - # meta.tags = [ "latest" ]; - operable = operables.${name}; - uid = "0"; - gid = "0"; - labels = { - inherit description; - source = "https://github.com/input-output-hk/marlowe-playground"; - license = "Apache-2.0"; - }; - }; - -in -lib.attrsets.optionalAttrs stdenv.isLinux { - marlowe-playground-server = mkImage { - name = "marlowe-playground-server"; - description = "The backend of the Marlowe playground."; - }; - marlowe-playground-client = mkImage { - name = "marlowe-playground-client"; - description = "An HTTP server that serves the client for the Marlowe Playground."; - }; -} diff --git a/nix/cells/marlowe-playground/packages/default.nix b/nix/cells/marlowe-playground/packages/default.nix deleted file mode 100644 index 196524848..000000000 --- a/nix/cells/marlowe-playground/packages/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ inputs, cell }@block: -{ - flow-chart-generator = import ./flow-chart-generator.nix block; - - generated-purescript = import ./generated-purescript.nix block; - - ghc-with-marlowe = import ./ghc-with-marlowe.nix block; - - marlowe-playground-client = import ./marlowe-playground-client.nix block; - - marlowe-playground-server = import ./marlowe-playground-server.nix block; - - nixpkgs-fmt = import ./nixpkgs-fmt.nix block; - - playwright = import ./playwright.nix block; - - scriv = import ./scriv.nix block; -} diff --git a/nix/cells/marlowe-playground/packages/flow-chart-generator.nix b/nix/cells/marlowe-playground/packages/flow-chart-generator.nix deleted file mode 100644 index 442a6c576..000000000 --- a/nix/cells/marlowe-playground/packages/flow-chart-generator.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-packages.marlowe-playground-server.components.exes.flow-chart-generator diff --git a/nix/cells/marlowe-playground/packages/generated-purescript.nix b/nix/cells/marlowe-playground/packages/generated-purescript.nix deleted file mode 100644 index 4e5ad1fa7..000000000 --- a/nix/cells/marlowe-playground/packages/generated-purescript.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs purescript; - inherit (cell.packages) marlowe-playground-server; - inherit (pkgs.nodePackages) prettier; - inherit (purescript) purs-tidy; - -in - -# Output containing the purescript bridge code -pkgs.runCommand "generated-purescript" { } '' - mkdir $out - ${marlowe-playground-server}/bin/marlowe-playground-server psgenerator $out - cp ${builtins.path { name = "tidyrc.json"; path = inputs.self + "/.tidyrc.json"; } } $out/.tidyrc.json - cp ${builtins.path { name = "tidyoperators"; path = inputs.self + "/.tidyoperators"; } } $out/.tidyoperators - cd $out - ${purs-tidy}/bin/purs-tidy format-in-place * - ${prettier}/bin/prettier -w . - rm -f $out/.tidyrc.json - rm -f $out/.tidyoperators -'' - diff --git a/nix/cells/marlowe-playground/packages/ghc-with-marlowe.nix b/nix/cells/marlowe-playground/packages/ghc-with-marlowe.nix deleted file mode 100644 index a11fd06d2..000000000 --- a/nix/cells/marlowe-playground/packages/ghc-with-marlowe.nix +++ /dev/null @@ -1 +0,0 @@ -{ inputs, cell }: cell.library.cabal-project.ghcWithPackages (pkgs: [ pkgs.marlowe-cardano ]) diff --git a/nix/cells/marlowe-playground/packages/marlowe-playground-server.nix b/nix/cells/marlowe-playground/packages/marlowe-playground-server.nix deleted file mode 100644 index 240d0a873..000000000 --- a/nix/cells/marlowe-playground/packages/marlowe-playground-server.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ inputs, cell }: - -cell.library.haskell-packages.marlowe-playground-server.components.exes.marlowe-playground-server diff --git a/nix/cells/marlowe-playground/packages/nixpkgs-fmt.nix b/nix/cells/marlowe-playground/packages/nixpkgs-fmt.nix deleted file mode 100644 index a9c3b1f73..000000000 --- a/nix/cells/marlowe-playground/packages/nixpkgs-fmt.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs; - -in - -pkgs.rustPlatform.buildRustPackage rec { - - pname = "nixpkgs-fmt"; - - # nixpkgs-fmt 1.2.0 breaks indentation of code examples in comments - version = "1.1.0"; - - src = pkgs.fetchFromGitHub { - owner = "nix-community"; - repo = pname; - rev = "v${version}"; - sha256 = "1fb2mm1y2qb3imc48g2ad3rdbjlj326cggrc4hvdc0fb41vxinpp"; - }; - - cargoSha256 = "1lsw6dwkjdwdqcx7gjsg2ndi4r79m8qyxgx7yz3al0iscwm7i645"; - - meta = with pkgs.lib; { - description = "Nix code formatter for nixpkgs"; - homepage = "https://nix-community.github.io/nixpkgs-fmt"; - license = licenses.asl20; - maintainers = with maintainers; [ zimbatm ]; - }; -} diff --git a/nix/cells/marlowe-playground/packages/scriv.nix b/nix/cells/marlowe-playground/packages/scriv.nix deleted file mode 100644 index a264a51fd..000000000 --- a/nix/cells/marlowe-playground/packages/scriv.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (pkgs) python3; - inherit (python3.pkgs) buildPythonPackage fetchPypi attrs click click-log requests jinja2; -in -buildPythonPackage rec { - pname = "scriv"; - - version = "0.17.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "sha256-jyOIPvg9/FDwn3au8I/zBz8nUsclXbFdJM2L/swyN5w="; - }; - - propagatedBuildInputs = [ - attrs - click - click-log - jinja2 - requests - ]; - - doCheck = false; - - meta = { - homepage = "https://github.com/nedbat/scriv"; - description = ""; - }; -} diff --git a/nix/cells/marlowe-playground/scripts/assemble-changelog.nix b/nix/cells/marlowe-playground/scripts/assemble-changelog.nix deleted file mode 100644 index d2ac4cd84..000000000 --- a/nix/cells/marlowe-playground/scripts/assemble-changelog.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot; - -in -writeShellScriptInRepoRoot "assemble-changelog" '' - usage () { - echo "$(basename "$0") PACKAGE VERSION - Assembles the changelog for PACKAGE at VERSION." - } - - if [ "$#" == "0" ]; then - usage - exit 1 - fi - - PACKAGE=$1 - VERSION=$2 - - echo "Assembling changelog for $PACKAGE-$VERSION" - pushd "$PACKAGE" > /dev/null || exit - scriv collect --version "$VERSION" - popd > /dev/null || exit -'' diff --git a/nix/cells/marlowe-playground/scripts/default.nix b/nix/cells/marlowe-playground/scripts/default.nix deleted file mode 100644 index 75f655c51..000000000 --- a/nix/cells/marlowe-playground/scripts/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ inputs, cell }@block: -{ - assemble-changelog = import ./assemble-changelog.nix block; - - fix-nix-fmt = import ./fix-nix-fmt.nix block; - - fix-png-optimization = import ./fix-png-optimization.nix block; - - fix-prettier = import ./fix-prettier.nix block; - - fix-purs-tidy = import ./fix-purs-tidy.nix block; - - fix-stylish-haskell = import ./fix-stylish-haskell.nix block; - - generate-purescript = import ./generate-purescript.nix block; - - start-backend = import ./start-backend.nix block; - - update-client-deps = import ./update-client-deps.nix block; -} diff --git a/nix/cells/marlowe-playground/scripts/fix-nix-fmt.nix b/nix/cells/marlowe-playground/scripts/fix-nix-fmt.nix deleted file mode 100644 index cae38f54b..000000000 --- a/nix/cells/marlowe-playground/scripts/fix-nix-fmt.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.packages) nixpkgs-fmt; - inherit (cell.library) write-formatter; - -in - -write-formatter "nixpkgsfmt" "${nixpkgs-fmt}/bin/nixpkgs-fmt" [ "nix" ] diff --git a/nix/cells/marlowe-playground/scripts/fix-png-optimization.nix b/nix/cells/marlowe-playground/scripts/fix-png-optimization.nix deleted file mode 100644 index e0b47fb6d..000000000 --- a/nix/cells/marlowe-playground/scripts/fix-png-optimization.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot pkgs; - inherit (pkgs) fd optipng; - -in -writeShellScriptInRepoRoot "fix-png-optimization" '' - ${fd}/bin/fd \ - --extension png \ - --exec "${optipng}/bin/optipng" {} -'' diff --git a/nix/cells/marlowe-playground/scripts/fix-prettier.nix b/nix/cells/marlowe-playground/scripts/fix-prettier.nix deleted file mode 100644 index 28b41baf8..000000000 --- a/nix/cells/marlowe-playground/scripts/fix-prettier.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) pkgs write-formatter; - inherit (pkgs.nodePackages) prettier; - -in - -write-formatter "prettier" "${prettier}/bin/prettier -w" [ "js" "ts" "css" "html" ] diff --git a/nix/cells/marlowe-playground/scripts/fix-purs-tidy.nix b/nix/cells/marlowe-playground/scripts/fix-purs-tidy.nix deleted file mode 100644 index 7119ab736..000000000 --- a/nix/cells/marlowe-playground/scripts/fix-purs-tidy.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) write-formatter purescript; - inherit (purescript) purs-tidy; - -in - -write-formatter "purs-tidy" "${purs-tidy}/bin/purs-tidy format-in-place" [ "purs" ] diff --git a/nix/cells/marlowe-playground/scripts/fix-stylish-haskell.nix b/nix/cells/marlowe-playground/scripts/fix-stylish-haskell.nix deleted file mode 100644 index 221e27a57..000000000 --- a/nix/cells/marlowe-playground/scripts/fix-stylish-haskell.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot pkgs stylish-haskell; - inherit (pkgs) fd; - -in - -writeShellScriptInRepoRoot "fix-stylish-haskell" '' - ${fd}/bin/fd \ - --extension hs \ - --exclude 'dist-newstyle/*' \ - --exclude 'dist/*' \ - --exclude '.stack-work/*' \ - --exec bash -c "${stylish-haskell}/bin/stylish-haskell -i {}" -'' diff --git a/nix/cells/marlowe-playground/scripts/generate-purescript.nix b/nix/cells/marlowe-playground/scripts/generate-purescript.nix deleted file mode 100644 index 28193db3b..000000000 --- a/nix/cells/marlowe-playground/scripts/generate-purescript.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot; - -in - -writeShellScriptInRepoRoot "generate-purs" '' - generated=./marlowe-playground-client/generated - - # Clean old build - rm -rf $generated - - # Re-generate the files - cp -r $(nix build .#generated-purescript --no-link --print-out-paths) $generated - chmod -R +w $generated -'' diff --git a/nix/cells/marlowe-playground/scripts/start-backend.nix b/nix/cells/marlowe-playground/scripts/start-backend.nix deleted file mode 100644 index b125a8566..000000000 --- a/nix/cells/marlowe-playground/scripts/start-backend.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot ghc-with-marlowe; - -in - -writeShellScriptInRepoRoot "marlowe-playground-server" '' - echo "marlowe-playground-server: for development use only" - export PATH="$(nix build .#ghc-with-marlowe --no-link --print-out-paths)/bin:$PATH" - export FRONTEND_URL=https://localhost:8009 - nix run .#marlowe-playground-server -- webserver -'' diff --git a/nix/cells/marlowe-playground/scripts/update-client-deps.nix b/nix/cells/marlowe-playground/scripts/update-client-deps.nix deleted file mode 100644 index 8bb75fc49..000000000 --- a/nix/cells/marlowe-playground/scripts/update-client-deps.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ inputs, cell }: - -let - inherit (cell.library) writeShellScriptInRepoRoot purescript; - inherit (purescript) spago2nix; - -in - -writeShellScriptInRepoRoot "update-client-deps" '' - cd marlowe-playground-client - ${spago2nix}/bin/spago2nix generate -'' diff --git a/nix/cells/marlowe-playground/tests/default.nix b/nix/cells/marlowe-playground/tests/default.nix deleted file mode 100644 index 9fc6571b0..000000000 --- a/nix/cells/marlowe-playground/tests/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ inputs, cell }@block: -{ - generated-test = import ./generated-test.nix block; - - nixpkgs-fmt-test = import ./nixpkgs-fmt-test.nix block; - - png-optimization-test = import ./png-optimization-test.nix block; - - prettier-test = import ./prettier-test.nix block; - - purs-tidy-test = import ./purs-tidy-test.nix block; - - shellcheck-test = import ./shellcheck-test.nix block; - - stylish-haskell-test = import ./stylish-haskell-test.nix block; -} diff --git a/nix/cells/marlowe-playground/tests/generated-test.nix b/nix/cells/marlowe-playground/tests/generated-test.nix deleted file mode 100644 index e2a5353b1..000000000 --- a/nix/cells/marlowe-playground/tests/generated-test.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (cell.packages) generated-purescript; - -in - -pkgs.runCommand "generated-purescript-test" { buildInputs = [ pkgs.diffutils pkgs.glibcLocales ]; } '' - set +e - cp -a ${inputs.self} expected - cp -a ${inputs.self} actual - chmod -R +w actual - rm -rf actual/marlowe-playground-client/generated - cp -a ${generated-purescript} actual/marlowe-playground-client/generated - diff --brief --recursive expected actual - EXIT_CODE=$? - if [[ $EXIT_CODE != 0 ]] - then - mkdir -p $out/nix-support - diff -ur expected actual > $out/actual.diff - echo "file none $out/actual.diff" > $out/nix-support/hydra-build-products - echo "*** actual found changes that need addressed first" - echo "*** Please run \`generate-purs\` and commit changes." - echo "*** or apply the diff generated by hydra if you don't have nix." - exit $EXIT_CODE - else - echo $EXIT_CODE > $out - fi -'' diff --git a/nix/cells/marlowe-playground/tests/nixpkgs-fmt-test.nix b/nix/cells/marlowe-playground/tests/nixpkgs-fmt-test.nix deleted file mode 100644 index 6d1ac914b..000000000 --- a/nix/cells/marlowe-playground/tests/nixpkgs-fmt-test.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (cell.packages) nixpkgs-fmt; -in -pkgs.runCommand "nixpkgs-fmt" { buildInputs = [ nixpkgs-fmt ]; } '' - set +e - nixpkgs-fmt --check ${inputs.self} 2>&1 >nixpkgs-fmt.log - if [ $? -ne 0 ]; then - mkdir -p $out/nix-support - cat nixpkgs-fmt.log > $out/nix-support/hydra-build-products - echo "*** nixpkgs-fmt found files that haven't been formatted" - echo "*** Please run \`nix run .#fix-nix-fmt\` and commit the changes" - exit 1 - else - echo 0 > $out - fi -'' diff --git a/nix/cells/marlowe-playground/tests/png-optimization-test.nix b/nix/cells/marlowe-playground/tests/png-optimization-test.nix deleted file mode 100644 index a469ffd9c..000000000 --- a/nix/cells/marlowe-playground/tests/png-optimization-test.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (cell.scripts) fix-png-optimization; - - # just haskell sources and the stylish-haskell config file - src = pkgs.lib.sourceFilesBySuffices inputs.self [ ".png" ]; -in -pkgs.runCommand "png-optimization-check" { buildInputs = [ fix-png-optimization pkgs.diffutils pkgs.glibcLocales ]; } '' - set +e - cp -a ${src} orig - cp -a ${src} png - chmod -R +w png - cd png - fix-png-optimization - cd .. - diff --brief --recursive orig png > /dev/null - EXIT_CODE=$? - if [[ $EXIT_CODE != 0 ]] - then - mkdir -p $out/nix-support - diff -ur orig png > $out/png.diff - echo "file none $out/png.diff" > $out/nix-support/hydra-build-products - echo "*** optipng found changes that need addressed first" - echo "*** Please run \`nix run .#fixPngOptimization\` and commit changes." - exit $EXIT_CODE - else - echo $EXIT_CODE > $out - fi -'' diff --git a/nix/cells/marlowe-playground/tests/prettier-test.nix b/nix/cells/marlowe-playground/tests/prettier-test.nix deleted file mode 100644 index 9900a5ce5..000000000 --- a/nix/cells/marlowe-playground/tests/prettier-test.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - inherit (cell.scripts) fix-prettier; - - # just haskell sources and the stylish-haskell config file - src = pkgs.lib.cleanSourceWith { - src = inputs.self; - filter = with pkgs.lib; - name: type: - let baseName = baseNameOf (toString name); in - ( - (type == "regular" && hasSuffix ".js" baseName) || - (type == "regular" && hasSuffix ".ts" baseName) || - (type == "regular" && hasSuffix ".html" baseName) || - (type == "regular" && hasSuffix ".css" baseName) || - (type == "directory" && (baseName != "generated" - && baseName != "output" - && baseName != "node_modules" - && baseName != ".spago")) - ); - }; -in -pkgs.runCommand "prettier-check" { buildInputs = [ fix-prettier pkgs.diffutils pkgs.glibcLocales ]; } '' - set +e - cp -a ${src} orig - cp -a ${src} prettier - chmod -R +w prettier - cd prettier - fix-prettier - cd .. - diff --brief --recursive orig prettier > /dev/null - EXIT_CODE=$? - if [[ $EXIT_CODE != 0 ]] - then - mkdir -p $out/nix-support - diff -ur orig prettier > $out/prettier.diff - echo "file none $out/prettier.diff" > $out/nix-support/hydra-build-products - echo "*** prettier found changes that need addressed first" - echo "*** Please run \`nix-shell --run fix-prettier\` and commit changes" - echo "*** or apply the diff generated by hydra if you don't have nix." - exit $EXIT_CODE - else - echo $EXIT_CODE > $out - fi -'' diff --git a/nix/cells/marlowe-playground/tests/purs-tidy-test.nix b/nix/cells/marlowe-playground/tests/purs-tidy-test.nix deleted file mode 100644 index 7879e6634..000000000 --- a/nix/cells/marlowe-playground/tests/purs-tidy-test.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs purescript; - inherit (purescript) purs-tidy; - - # just haskell sources and the stylish-haskell config file - src = pkgs.lib.cleanSourceWith { - src = inputs.self; - filter = with pkgs.lib; - name: type: - let baseName = baseNameOf (toString name); in - ( - baseName == ".tidyoperators" || - baseName == ".tidyrc.json" || - (type == "regular" && hasSuffix ".purs" baseName) || - type == "directory" - ); - }; -in -pkgs.runCommand "purs-tidy-check" { buildInputs = [ purs-tidy ]; } '' - set +e - cp -a ${src} orig - cp -a ${src} purs-tidy - chmod -R +w purs-tidy - cd purs-tidy - ${purs-tidy}/bin/purs-tidy format-in-place * - cd .. - diff --brief --recursive orig purs-tidy - EXIT_CODE=$? - if [[ $EXIT_CODE != 0 ]] - then - echo "*** purs-tidy found changes that need addressed first" - echo "*** Please run \`nix run .#fix-purs-tidy\` and commit changes" - exit $EXIT_CODE - else - echo $EXIT_CODE > $out - fi - -'' diff --git a/nix/cells/marlowe-playground/tests/shellcheck-test.nix b/nix/cells/marlowe-playground/tests/shellcheck-test.nix deleted file mode 100644 index 44921fc66..000000000 --- a/nix/cells/marlowe-playground/tests/shellcheck-test.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs; - - # just the shell scripts - src = pkgs.lib.cleanSourceWith { - src = inputs.self; - filter = with pkgs.lib; - name: type: - let baseName = baseNameOf (toString name); in - ( - (type == "regular" && hasSuffix ".sh" baseName) || - (type == "directory") - ); - }; -in -pkgs.runCommand "shellcheck" { buildInputs = [ pkgs.shellcheck ]; } '' - EXIT_STATUS=0 - cd ${src} - while IFS= read -r -d ''' i - do - if shellcheck -x -e 1008 -e 2148 "$i" - then - echo "$i [ PASSED ]" - else - echo "$i [ FAILED ]" - EXIT_STATUS=$(($EXIT_STATUS+1)) - fi - done < <(find -name '*.sh' -print0) - echo $EXIT_STATUS > $out - echo Total Failed Files: $EXIT_STATUS - exit "$EXIT_STATUS" -'' diff --git a/nix/cells/marlowe-playground/tests/stylish-haskell-test.nix b/nix/cells/marlowe-playground/tests/stylish-haskell-test.nix deleted file mode 100644 index f168d215a..000000000 --- a/nix/cells/marlowe-playground/tests/stylish-haskell-test.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ inputs, cell }: -let - inherit (cell.library) pkgs stylish-haskell; - - # just haskell sources and the stylish-haskell config file - src = pkgs.lib.cleanSourceWith { - src = inputs.self; - filter = with pkgs.lib; - name: type: - let baseName = baseNameOf (toString name); in - ( - (type == "regular" && hasSuffix ".hs" baseName) || - (type == "regular" && hasSuffix ".yaml" baseName) || - (type == "directory" && (baseName != "dist-newstyle" && baseName != "dist" && baseName != ".stack-work")) - ); - }; -in -pkgs.runCommand "stylish-check" { buildInputs = [ stylish-haskell pkgs.diffutils pkgs.glibcLocales pkgs.fd ]; } '' - set +e - cp -a ${src} orig - cp -a ${src} stylish - chmod -R +w stylish - cd stylish - fd \ - --extension hs \ - --exclude 'dist-newstyle/*' \ - --exclude 'dist/*' \ - --exclude '.stack-work/*' \ - --exec bash -c "stylish-haskell -i {}" - cd .. - diff --brief --recursive orig stylish > /dev/null - EXIT_CODE=$? - if [[ $EXIT_CODE != 0 ]] - then - mkdir -p $out/nix-support - diff -ur orig stylish > $out/stylish.diff - echo "file none $out/stylish.diff" > $out/nix-support/hydra-build-products - echo "*** Stylish-haskell found changes that need addressed first" - echo "*** Please run \`nix run .#fix-stylish-haskell\` and commit changes" - echo "*** or apply the diff generated by hydra if you don't have nix." - exit $EXIT_CODE - else - echo $EXIT_CODE > $out - fi -'' diff --git a/nix/ci.nix b/nix/ci.nix new file mode 100644 index 000000000..9ccc46e8a --- /dev/null +++ b/nix/ci.nix @@ -0,0 +1,12 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#39-nixcinix + +{ pkgs, lib, ... }: + +{ + includedPaths = lib.optionals pkgs.stdenv.hostPlatform.isLinux [ + "oci-images" + "operables" + "playwright" + ]; +} diff --git a/nix/formatters.nix b/nix/formatters.nix new file mode 100644 index 000000000..dfefb7a4d --- /dev/null +++ b/nix/formatters.nix @@ -0,0 +1,10 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#38-nixformattersnix + +{ + shellcheck.enable = true; + stylish-haskell.enable = false; + nixpkgs-fmt.enable = true; + prettier.enable = true; + purs-tidy.enable = true; +} diff --git a/nix/haskell.nix b/nix/haskell.nix new file mode 100644 index 000000000..e515595dc --- /dev/null +++ b/nix/haskell.nix @@ -0,0 +1,6 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#32-nixhaskellnix + +{ + supportedCompilers = [ "ghc8107" ]; +} diff --git a/nix/marlowe-playground/easy-purescript-nix.nix b/nix/marlowe-playground/easy-purescript-nix.nix new file mode 100644 index 000000000..f93151e07 --- /dev/null +++ b/nix/marlowe-playground/easy-purescript-nix.nix @@ -0,0 +1,6 @@ +{ inputs, pkgs, system, ... }: +let + easy-purescript-nix = pkgs.callPackage inputs.iogx.inputs.easy-purescript-nix { }; +in + +easy-purescript-nix // { purs = easy-purescript-nix.purs-0_15_2; } diff --git a/nix/marlowe-playground/generated-purescript.nix b/nix/marlowe-playground/generated-purescript.nix new file mode 100644 index 000000000..7922dd50f --- /dev/null +++ b/nix/marlowe-playground/generated-purescript.nix @@ -0,0 +1,15 @@ +{ repoRoot, pkgs, inputs', ... }: + +# Output containing the purescript bridge code +pkgs.runCommand "generated-purescript" { } '' + mkdir $out + ${inputs'.self.packages.marlowe-playground-server}/bin/marlowe-playground-server psgenerator $out + cp ${builtins.path { name = "tidyrc.json"; path = inputs'.self + "/.tidyrc.json"; } } $out/.tidyrc.json + cp ${builtins.path { name = "tidyoperators"; path = inputs'.self + "/.tidyoperators"; } } $out/.tidyoperators + cd $out + ${repoRoot.nix.marlowe-playground.easy-purescript-nix.purs-tidy}/bin/purs-tidy format-in-place * + ${pkgs.nodePackages.prettier}/bin/prettier -w . + rm -f $out/.tidyrc.json + rm -f $out/.tidyoperators +'' + diff --git a/nix/cells/marlowe-playground/packages/marlowe-playground-client.nix b/nix/marlowe-playground/marlowe-playground-client.nix similarity index 84% rename from nix/cells/marlowe-playground/packages/marlowe-playground-client.nix rename to nix/marlowe-playground/marlowe-playground-client.nix index 07d81b16a..1e3ee98a2 100644 --- a/nix/cells/marlowe-playground/packages/marlowe-playground-client.nix +++ b/nix/marlowe-playground/marlowe-playground-client.nix @@ -1,9 +1,11 @@ -{ inputs, cell }: +{ repoRoot, inputs, pkgs, ... }: + let - inherit (cell.library) nodejs-pkgs npmlock2nix pkgs purescript; - inherit (nodejs-pkgs) npm; + npmlock2nix = import inputs.npmlock2nix { inherit pkgs; }; + spagoPkgs = import (inputs.self + "/marlowe-playground-client/spago-packages.nix") { inherit pkgs; }; in + npmlock2nix.v1.build { src = inputs.self + "/marlowe-playground-client"; installPhase = "cp -r dist $out"; @@ -17,9 +19,9 @@ npmlock2nix.v1.build { buildInputs = [ spagoPkgs.installSpagoStyle spagoPkgs.buildSpagoStyle - npm - purescript.spago2nix - purescript.purs + pkgs.nodejs-14_x + repoRoot.nix.marlowe-playground.easy-purescript-nix.purs + repoRoot.nix.marlowe-playground.easy-purescript-nix.spago2nix ]; unpackPhase = '' mkdir -p marlowe-playground-client diff --git a/nix/marlowe-playground/oci-images.nix b/nix/marlowe-playground/oci-images.nix new file mode 100644 index 000000000..24bda7ee4 --- /dev/null +++ b/nix/marlowe-playground/oci-images.nix @@ -0,0 +1,42 @@ +{ inputs', pkgs, lib, ... }: +let + inherit (inputs'.std.lib.ops) mkStandardOCI; + + mkImage = { name, description }: + mkStandardOCI { + inherit name; + # meta.tags = [ "latest" ]; + operable = inputs'.self.operables.${name}; + uid = "0"; + gid = "0"; + labels = { + inherit description; + source = "https://github.com/input-output-hk/marlowe-playground"; + license = "Apache-2.0"; + }; + }; + + images = { + marlowe-playground-server = mkImage { + name = "marlowe-playground-server"; + description = "The backend of the Marlowe playground."; + }; + marlowe-playground-client = mkImage { + name = "marlowe-playground-client"; + description = "An HTTP server that serves the client for the Marlowe Playground."; + }; + }; + + forAllImages = f: lib.concatMapStrings (s: s + "\n") (lib.mapAttrsToList f images); + +in +images // { + all = { + copyToDockerDaemon = inputs'.std.lib.ops.writeScript { + name = "copy-to-docker-daemon"; + text = forAllImages (name: img: + "${inputs'.n2c.packages.skopeo-nix2container}/bin/skopeo --insecure-policy copy nix:${img} docker-daemon:${name}:latest" + ); + }; + }; +} diff --git a/nix/cells/marlowe-playground/operables.nix b/nix/marlowe-playground/operables.nix similarity index 70% rename from nix/cells/marlowe-playground/operables.nix rename to nix/marlowe-playground/operables.nix index 257547e6a..2728a56fa 100644 --- a/nix/cells/marlowe-playground/operables.nix +++ b/nix/marlowe-playground/operables.nix @@ -1,21 +1,25 @@ -{ inputs, cell }: +{ inputs', pkgs, ... }: + +project: + let - inherit (cell.library) pkgs; - inherit (cell.packages) marlowe-playground-client marlowe-playground-server ghc-with-marlowe; + inherit (pkgs) darkhttpd lib mailcap coreutils cacert z3; - inherit (inputs.std.lib.ops) mkOperable; + inherit (inputs'.std.lib.ops) mkOperable; + + ghc-with-marlowe = project.ghcWithPackages (pkgs: [ pkgs.marlowe-cardano ]); in { marlowe-playground-client = mkOperable { - package = marlowe-playground-client; + package = inputs'.self.packages.marlowe-playground-client; runtimeInputs = [ darkhttpd ]; runtimeScript = '' - exec darkhttpd "''${CONFIG_HTML_ROOT:-${marlowe-playground-client}}" --port 8080 --mimetypes ${mailcap}/etc/mime.types + exec darkhttpd "''${CONFIG_HTML_ROOT:-${inputs'.self.packages.marlowe-playground-client}}" --port 8080 --mimetypes ${mailcap}/etc/mime.types ''; }; marlowe-playground-server = mkOperable { - package = marlowe-playground-server; + package = inputs'.self.packages.marlowe-playground-server; runtimeInputs = [ ghc-with-marlowe coreutils cacert z3 ]; runtimeScript = '' ################# @@ -42,7 +46,7 @@ in mkdir -p /tmp - ${marlowe-playground-server}/bin/marlowe-playground-server webserver + ${inputs'.self.packages.marlowe-playground-server}/bin/marlowe-playground-server webserver ''; }; } diff --git a/nix/cells/marlowe-playground/packages/playwright.nix b/nix/marlowe-playground/playwright.nix similarity index 90% rename from nix/cells/marlowe-playground/packages/playwright.nix rename to nix/marlowe-playground/playwright.nix index fa3d24e16..21463a312 100644 --- a/nix/cells/marlowe-playground/packages/playwright.nix +++ b/nix/marlowe-playground/playwright.nix @@ -1,13 +1,15 @@ -{ inputs, cell }: +{ pkgs, ... }: + let - inherit (cell.library) pkgs; # extracted from "node_modules/playwright-core/browsers.json" chromiumRevision = "1060"; ffmpegRevision = "1008"; in + pkgs.runCommand "playwright-browsers" { } '' mkdir -p $out/chromium-${chromiumRevision}/chrome-linux ln -sv ${pkgs.chromium}/bin/chromium $out/chromium-${chromiumRevision}/chrome-linux/chrome mkdir -p $out/ffmpeg-${ffmpegRevision} ln -sv ${pkgs.ffmpeg}/bin/ffmpeg $out/ffmpeg-${ffmpegRevision}/ffmpeg-linux '' + diff --git a/nix/marlowe-playground/scripts.nix b/nix/marlowe-playground/scripts.nix new file mode 100644 index 000000000..5e61a91e6 --- /dev/null +++ b/nix/marlowe-playground/scripts.nix @@ -0,0 +1,37 @@ +{ repoRoot, ... }: + +{ + + generate-purescript = '' + repo_root="$(git rev-parse --show-toplevel)" + + generated="$repo_root/marlowe-playground-client/generated" + + # Clean old build + rm -rf "$generated" + mkdir -p "$generated" + + # Re-generate the files + cp -r "$(nix build .#generated-purescript --no-link --print-out-paths "$@")/." "$generated" + chmod -R +w "$generated" + ''; + + + start-backend = '' + cd "$(git rev-parse --show-toplevel)" + echo "marlowe-playground-server: for development use only" + export PATH="$(nix build .#ghc-with-marlowe --no-link --print-out-paths "$@")/bin:$PATH" + export FRONTEND_URL=https://localhost:8009 + nix run .#marlowe-playground-server "$@" -- webserver + ''; + + + update-client-deps = '' + cd "$(git rev-parse --show-toplevel)" + + cd marlowe-playground-client + + ${repoRoot.nix.marlowe-playground.easy-purescript-nix.spago2nix}/bin/spago2nix generate + ''; + +} diff --git a/nix/per-system-outputs.nix b/nix/per-system-outputs.nix new file mode 100644 index 000000000..20bb0634e --- /dev/null +++ b/nix/per-system-outputs.nix @@ -0,0 +1,18 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#35-nixper-system-outputsnix + +{ repoRoot, haskellProjects, system, lib, ... }: + +{ + packages.generated-purescript = repoRoot.nix.marlowe-playground.generated-purescript; + + packages.marlowe-playground-client = repoRoot.nix.marlowe-playground.marlowe-playground-client; + + packages.ghc-with-marlowe = haskellProjects.default.ghcWithPackages (pkgs: [ pkgs.marlowe-cardano ]); + + playwright = lib.optionalAttrs (system == "x86_64-linux") repoRoot.nix.marlowe-playground.playwright; + + operables = repoRoot.nix.marlowe-playground.operables haskellProjects.default; + + oci-images = repoRoot.nix.marlowe-playground.oci-images; +} diff --git a/nix/shell.nix b/nix/shell.nix new file mode 100644 index 000000000..0e52e3ef4 --- /dev/null +++ b/nix/shell.nix @@ -0,0 +1,57 @@ +# This file is part of the IOGX template and is documented at the link below: +# https://www.github.com/input-output-hk/iogx#34-nixshellnix + +{ repoRoot, inputs', pkgs, lib, system, ... }: + +{ + name = "marlowe-playground"; + + + env = { + PLAYWRIGHT_BROWSERS_PATH = + lib.optionalString (system == "x86_64-linux") + "${repoRoot.nix.marlowe-playground.playwright}"; + + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "true"; + }; + + + scripts.generate-purescript = { + exec = repoRoot.nix.marlowe-playground.scripts.generate-purescript; + description = "Generate all PureScript Bridge code"; + group = "marlowe-playground"; + }; + + scripts.update-client-deps = { + exec = repoRoot.nix.marlowe-playground.scripts.update-client-deps; + description = "Run spago2nix in marlowe-playground-client"; + group = "marlowe-playground"; + }; + + scripts.start-backend = { + exec = repoRoot.nix.marlowe-playground.scripts.start-backend; + description = "Start the Marlowe Playground server"; + group = "marlowe-playground"; + }; + + + packages = [ + repoRoot.nix.marlowe-playground.easy-purescript-nix.purs-tidy + repoRoot.nix.marlowe-playground.easy-purescript-nix.purs + repoRoot.nix.marlowe-playground.easy-purescript-nix.spago + repoRoot.nix.marlowe-playground.easy-purescript-nix.spago2nix + repoRoot.nix.marlowe-playground.easy-purescript-nix.psa + repoRoot.nix.marlowe-playground.easy-purescript-nix.purescript-language-server + repoRoot.nix.marlowe-playground.easy-purescript-nix.pscid + + pkgs.jq + pkgs.yq + pkgs.gnused + pkgs.act + pkgs.gawk + pkgs.nil + pkgs.z3 + pkgs.nodejs-14_x + ]; + +}