From 0ed311f12d847f3e0e3a2ff26837584c897d2d6c Mon Sep 17 00:00:00 2001 From: zeme Date: Thu, 10 Jul 2025 14:20:20 +0200 Subject: [PATCH 01/16] Integrate latest version of iogx --- README.md | 4 +- flake.lock | 892 +----------------------------------------------- flake.nix | 37 +- nix/outputs.nix | 50 ++- nix/pkgs.nix | 13 + nix/project.nix | 50 +-- nix/shell.nix | 136 +++++--- nix/utils.nix | 37 ++ 8 files changed, 235 insertions(+), 984 deletions(-) create mode 100644 nix/pkgs.nix create mode 100644 nix/utils.nix diff --git a/README.md b/README.md index dbf18cc..57e8938 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A template repository for your Plinth smart contract project. -Plinth currently supports GHC `v9.2.x` and `v9.6.x`. Cabal `v3.8+` is recommended. +Plinth currently supports GHC `v9.6.x` and `v9.8.x`. Cabal `v3.8+` is recommended. ### 1. Create the repository @@ -28,7 +28,7 @@ Plinth currently supports GHC `v9.2.x` and `v9.6.x`. Cabal `v3.8+` is recommende Then enter the shell using `nix develop`. - The nix files inside this template follow the [`iogx` flake](https://github.com/input-output-hk/iogx), but you can delete and replace them with your own. In that case, you might want to include the [`devx` flake](https://github.com/input-output-hk/devx/issues) in your flake inputs as a starting point to supply all the necessary dependencies, making sure to use one of the `-iog` flavours. + The nix files inside this template follow the [`iogx` template](https://github.com/input-output-hk/iogx), but you can delete and replace them with your own. In that case, you might want to include the [`devx` flake](https://github.com/input-output-hk/devx/issues) in your flake inputs as a starting point to supply all the necessary dependencies, making sure to use one of the `-iog` flavours. - With Docker / Devcontainers / Codespaces diff --git a/flake.lock b/flake.lock index 93118f9..549dd41 100644 --- a/flake.lock +++ b/flake.lock @@ -1,158 +1,6 @@ { "nodes": { - "CHaP": { - "flake": false, - "locked": { - "lastModified": 1752055566, - "narHash": "sha256-6iH3PscsCrrjoAi3ikVG+5isoLqeTCEo3DBS1uoUTv8=", - "owner": "IntersectMBO", - "repo": "cardano-haskell-packages", - "rev": "ce0c1ca6c0fa40b522d68733c7da9cbd5f7d9a88", - "type": "github" - }, - "original": { - "owner": "IntersectMBO", - "ref": "repo", - "repo": "cardano-haskell-packages", - "type": "github" - } - }, - "HTTP": { - "flake": false, - "locked": { - "lastModified": 1451647621, - "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", - "owner": "phadej", - "repo": "HTTP", - "rev": "9bc0996d412fef1787449d841277ef663ad9a915", - "type": "github" - }, - "original": { - "owner": "phadej", - "repo": "HTTP", - "type": "github" - } - }, - "blst": { - "flake": false, - "locked": { - "lastModified": 1691598027, - "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", - "owner": "supranational", - "repo": "blst", - "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", - "type": "github" - }, - "original": { - "owner": "supranational", - "ref": "v0.3.11", - "repo": "blst", - "type": "github" - } - }, - "cabal-32": { - "flake": false, - "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", - "owner": "haskell", - "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.2", - "repo": "cabal", - "type": "github" - } - }, - "cabal-34": { - "flake": false, - "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", - "owner": "haskell", - "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", - "type": "github" - } - }, - "cabal-36": { - "flake": false, - "locked": { - "lastModified": 1669081697, - "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", - "owner": "haskell", - "repo": "cabal", - "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.6", - "repo": "cabal", - "type": "github" - } - }, - "cardano-shell": { - "flake": false, - "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", - "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-shell", - "type": "github" - } - }, - "easy-purescript-nix": { - "inputs": { - "flake-utils": "flake-utils" - }, - "locked": { - "lastModified": 1710161569, - "narHash": "sha256-lcIRIOFCdIWEGyKyG/tB4KvxM9zoWuBRDxW+T+mvIb0=", - "owner": "justinwoo", - "repo": "easy-purescript-nix", - "rev": "117fd96acb69d7d1727df95b6fde9d8715e031fc", - "type": "github" - }, - "original": { - "owner": "justinwoo", - "repo": "easy-purescript-nix", - "type": "github" - } - }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -167,44 +15,10 @@ "type": "github" } }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems" }, - "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, "locked": { "lastModified": 1731533236, "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", @@ -219,687 +33,27 @@ "type": "github" } }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "ghc-8.6.5-iohk": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "iogx", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "hackage": { - "flake": false, - "locked": { - "lastModified": 1752046467, - "narHash": "sha256-RkQWO4GmrR4zljUqM2X8rxriL+iyHWP0U0xjVmJO+u0=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "e88b7adc80a2333e4ffbee2f17a6e3b29fd85bf6", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", - "type": "github" - } - }, - "hackage-for-stackage": { - "flake": false, - "locked": { - "lastModified": 1744763128, - "narHash": "sha256-XccUTLSbmHAcdOWPe+jGsjzoCtJcKM9t/+T9FdxvLMc=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "323adf3005ff4fd9f65bfc98f0cefb0307409d9e", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "for-stackage", - "repo": "hackage.nix", - "type": "github" - } - }, - "haskell-nix": { - "inputs": { - "HTTP": "HTTP", - "cabal-32": "cabal-32", - "cabal-34": "cabal-34", - "cabal-36": "cabal-36", - "cardano-shell": "cardano-shell", - "flake-compat": "flake-compat", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", - "hackage": [ - "hackage" - ], - "hackage-for-stackage": "hackage-for-stackage", - "hls": "hls", - "hls-1.10": "hls-1.10", - "hls-2.0": "hls-2.0", - "hls-2.2": "hls-2.2", - "hls-2.3": "hls-2.3", - "hls-2.4": "hls-2.4", - "hls-2.5": "hls-2.5", - "hls-2.6": "hls-2.6", - "hls-2.7": "hls-2.7", - "hls-2.8": "hls-2.8", - "hls-2.9": "hls-2.9", - "hpc-coveralls": "hpc-coveralls", - "iserv-proxy": "iserv-proxy", - "nixpkgs": [ - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2305": "nixpkgs-2305", - "nixpkgs-2311": "nixpkgs-2311", - "nixpkgs-2405": "nixpkgs-2405", - "nixpkgs-2411": "nixpkgs-2411", - "nixpkgs-unstable": "nixpkgs-unstable", - "old-ghc-nix": "old-ghc-nix", - "stackage": "stackage" - }, - "locked": { - "lastModified": 1743641483, - "narHash": "sha256-laMiuWep7GG5RbnvOOMWoNYR4jQCJn4NzX4DkJBO+4M=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "6976ec1bc9a9f3055e16372103a99b1a4cad88d4", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "hls": { - "flake": false, - "locked": { - "lastModified": 1741604408, - "narHash": "sha256-tuq3+Ip70yu89GswZ7DSINBpwRprnWnl6xDYnS4GOsc=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "682d6894c94087da5e566771f25311c47e145359", - "type": "github" - }, - "original": { - "owner": "haskell", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-1.10": { - "flake": false, - "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", - "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" - } - }, - "hls-2.2": { - "flake": false, - "locked": { - "lastModified": 1693064058, - "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.2.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.3": { - "flake": false, - "locked": { - "lastModified": 1695910642, - "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.3.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.4": { - "flake": false, - "locked": { - "lastModified": 1699862708, - "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.4.0.1", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.5": { - "flake": false, - "locked": { - "lastModified": 1701080174, - "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.5.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.6": { - "flake": false, - "locked": { - "lastModified": 1705325287, - "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.6.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.7": { - "flake": false, - "locked": { - "lastModified": 1708965829, - "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.7.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.8": { - "flake": false, - "locked": { - "lastModified": 1715153580, - "narHash": "sha256-Vi/iUt2pWyUJlo9VrYgTcbRviWE0cFO6rmGi9rmALw0=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "dd1be1beb16700de59e0d6801957290bcf956a0a", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.8.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-2.9": { - "flake": false, - "locked": { - "lastModified": 1719993701, - "narHash": "sha256-wy348++MiMm/xwtI9M3vVpqj2qfGgnDcZIGXw8sF1sA=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "90319a7e62ab93ab65a95f8f2bcf537e34dae76a", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.9.0.1", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hpc-coveralls": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", - "type": "github" - }, - "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "type": "github" - } - }, - "iogx": { - "inputs": { - "CHaP": [ - "CHaP" - ], - "easy-purescript-nix": "easy-purescript-nix", - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", - "hackage": [ - "hackage" - ], - "haskell-nix": [ - "haskell-nix" - ], - "iohk-nix": "iohk-nix", - "nix2container": "nix2container", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable", - "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "sphinxcontrib-haddock": "sphinxcontrib-haddock" - }, - "locked": { - "lastModified": 1740037150, - "narHash": "sha256-OmAvyhPwJBEgaoyhtFqT60Lh3VoaKvq1s/0e1fZwAkc=", - "owner": "input-output-hk", - "repo": "iogx", - "rev": "0cec4b1b2b7dcaf3653fc32b3ff246e2ff173bb7", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iogx", - "type": "github" - } - }, - "iohk-nix": { - "inputs": { - "blst": "blst", - "nixpkgs": [ - "iogx", - "nixpkgs" - ], - "secp256k1": "secp256k1", - "sodium": "sodium" - }, - "locked": { - "lastModified": 1734618971, - "narHash": "sha256-5StB/VhWHOj3zlBxshqVFa6cwAE0Mk/wxRo3eEfcy74=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "dc900a3448e805243b0ed196017e8eb631e32240", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "type": "github" - } - }, - "iserv-proxy": { - "flake": false, - "locked": { - "lastModified": 1742121966, - "narHash": "sha256-x4bg4OoKAPnayom0nWc0BmlxgRMMHk6lEPvbiyFBq1s=", - "owner": "stable-haskell", - "repo": "iserv-proxy", - "rev": "e9dc86ed6ad71f0368c16672081c8f26406c3a7e", - "type": "github" - }, - "original": { - "owner": "stable-haskell", - "ref": "iserv-syms", - "repo": "iserv-proxy", - "type": "github" - } - }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1730479402, - "narHash": "sha256-79NLeNjpCa4mSasmFsE3QA6obURezF0TUO5Pm+1daog=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "5fb215a1564baa74ce04ad7f903d94ad6617e17a", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1712920918, - "narHash": "sha256-1yxFvUcJfUphK9V91KufIQom7gCsztza0H4Rz2VCWUU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "92323443a56f4e9fc4e4b712e3119f66d0969297", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2305": { - "locked": { - "lastModified": 1705033721, - "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2311": { - "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "lastModified": 1750776420, + "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.11-darwin", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2405": { - "locked": { - "lastModified": 1735564410, - "narHash": "sha256-HB/FA0+1gpSs8+/boEavrGJH+Eq08/R2wWNph1sM1Dg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1e7a8f391f1a490460760065fa0630b5520f9cf8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-24.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2411": { - "locked": { - "lastModified": 1739151041, - "narHash": "sha256-uNszcul7y++oBiyYXjHEDw/AHeLNp8B6pyWOB+RLA/4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "94792ab2a6beaec81424445bf917ca2556fbeade", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-24.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1690680713, - "narHash": "sha256-NXCWA8N+GfSQyoN7ZNiOgq/nDJKOp5/BHEpiZP8sUZw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1737110817, - "narHash": "sha256-DSenga8XjPaUV5KUFW/i3rNkN7jm9XmguW+qQ1ZJTR4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "041c867bad68dfe34b78b2813028a2e2ea70a23c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1730768919, - "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "old-ghc-nix": { - "flake": false, - "locked": { - "lastModified": 1631092763, - "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", - "owner": "angerman", - "repo": "old-ghc-nix", - "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", - "type": "github" - }, - "original": { - "owner": "angerman", - "ref": "master", - "repo": "old-ghc-nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-compat": "flake-compat_3", - "gitignore": "gitignore", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { - "CHaP": "CHaP", - "hackage": "hackage", - "haskell-nix": "haskell-nix", - "iogx": "iogx", - "nixpkgs": [ - "haskell-nix", - "nixpkgs-2411" - ] - } - }, - "secp256k1": { - "flake": false, - "locked": { - "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": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - } - }, - "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": 1744762361, - "narHash": "sha256-+PX5sE59mLrFywt7sc8VHX5RvuEhLVM6VtpNuqvKfaY=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "7ad866c92070903ca7334a7c7db6b2d43f30fd6f", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", - "type": "github" + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" } }, "systems": { @@ -916,38 +70,8 @@ "repo": "default", "type": "github" } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", "version": 7 -} +} \ No newline at end of file diff --git a/flake.nix b/flake.nix index 4d26eb7..652fcbc 100644 --- a/flake.nix +++ b/flake.nix @@ -1,18 +1,14 @@ -# Docs for this file: https://github.com/input-output-hk/iogx/blob/main/doc/api.md#flakenix { description = "Change the description field in your flake.nix"; - inputs = { - iogx = { - url = "github:input-output-hk/iogx"; + + haskell-nix = { + url = "github:input-output-hk/haskell.nix"; inputs.hackage.follows = "hackage"; - inputs.CHaP.follows = "CHaP"; - inputs.haskell-nix.follows = "haskell-nix"; - inputs.nixpkgs.follows = "nixpkgs"; }; - nixpkgs.follows = "haskell-nix/nixpkgs-2411"; + nixpkgs.follows = "haskell-nix/nixpkgs"; hackage = { url = "github:input-output-hk/hackage.nix"; @@ -24,29 +20,30 @@ flake = false; }; - haskell-nix = { - url = "github:input-output-hk/haskell.nix"; - inputs.hackage.follows = "hackage"; + iohk-nix = { + url = "github:input-output-hk/iohk-nix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - }; + pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - # Docs for mkFlake: https://github.com/input-output-hk/iogx/blob/main/doc/api.md#mkflake - outputs = inputs: inputs.iogx.lib.mkFlake { - inherit inputs; - repoRoot = ./.; - outputs = import ./nix/outputs.nix; - systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]; + flake-utils.url = "github:numtide/flake-utils"; }; + outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: + import ./nix/outputs.nix { inherit inputs system; } + ); nixConfig = { - extra-substituters = [ - "https://cache.iog.io" + 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; + accept-flake-config = true; }; } diff --git a/nix/outputs.nix b/nix/outputs.nix index 48c87c8..dfe55e1 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -1,14 +1,48 @@ -{ repoRoot, inputs, pkgs, lib, system }: +{ inputs, system }: let + inherit (pkgs) lib; - project = repoRoot.nix.project; + pkgs = import ./pkgs.nix { inherit inputs system; }; + utils = import ./utils.nix { inherit pkgs lib; }; + + project = import ./project.nix { inherit inputs pkgs lib; }; + + mkShell = ghc: import ./shell.nix { inherit inputs pkgs lib project utils ghc; }; + + packages = { }; + + devShells = rec { + default = ghc966; + ghc966 = mkShell "ghc966"; + ghc984 = mkShell "ghc984"; + }; + + projectFlake = project.flake {}; + + defaultHydraJobs = { + ghc966 = projectFlake.hydraJobs.ghc966; + ghc984 = projectFlake.hydraJobs.ghc984; + ghc9102 = projectFlake.hydraJobs.ghc9102; + ghc9122 = projectFlake.hydraJobs.ghc9122; + inherit packages; + inherit devShells; + required = utils.makeHydraRequiredJob hydraJobs; + }; + + hydraJobsPerSystem = { + "x86_64-linux" = defaultHydraJobs; + "x86_64-darwin" = defaultHydraJobs; + "aarch64-linux" = defaultHydraJobs; + "aarch64-darwin" = defaultHydraJobs; + }; + + hydraJobs = utils.flattenDerivationTree "-" hydraJobsPerSystem.${system}; in -[ - ( - # Docs for project.flake: https://github.com/input-output-hk/iogx/blob/main/doc/api.md#mkhaskellprojectoutflake - project.flake - ) -] +{ + inherit packages; + inherit devShells; + inherit hydraJobs; +} diff --git a/nix/pkgs.nix b/nix/pkgs.nix new file mode 100644 index 0000000..8e8f53f --- /dev/null +++ b/nix/pkgs.nix @@ -0,0 +1,13 @@ +{ inputs, system }: + +import inputs.nixpkgs { + inherit system; + config = inputs.haskell-nix.config; + overlays = [ + inputs.iohk-nix.overlays.crypto + inputs.iohk-nix.overlays.cardano-lib + inputs.haskell-nix.overlay + inputs.iohk-nix.overlays.haskell-nix-crypto + inputs.iohk-nix.overlays.haskell-nix-extra + ]; +} diff --git a/nix/project.nix b/nix/project.nix index 7fd9527..ffdc663 100644 --- a/nix/project.nix +++ b/nix/project.nix @@ -1,44 +1,30 @@ -{ repoRoot, inputs, pkgs, system, lib }: +{ inputs, pkgs, lib }: let + cabalProject = pkgs.haskell-nix.cabalProject' ( + + { config, pkgs, ... }: - cabalProject' = pkgs.haskell-nix.cabalProject' ({ pkgs, config, ... }: - let - # When `isCross` is `true`, it means that we are cross-compiling the project. - # WARNING You must use the `pkgs` coming from cabalProject' for `isCross` to work. - isCross = pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform; - in { - src = ../.; + name = "my-project"; - shell.withHoogle = false; + compiler-nix-name = lib.mkDefault "ghc966"; - inputMap = { - "https://chap.intersectmbo.org/" = inputs.CHaP; - }; - - name = "plinth-template"; - - compiler-nix-name = lib.mkDefault "ghc96"; + src = lib.cleanSource ../.; - modules = - [ - { - packages = { }; - } - ]; - }); - - - cabalProject = cabalProject'.appendOverlays [ ]; + flake.variants = { + ghc966 = {}; # Alias for the default variant + ghc984.compiler-nix-name = "ghc984"; + }; + inputMap = { "https://chap.intersectmbo.org/" = inputs.CHaP; }; - # Docs for mkHaskellProject: https://github.com/input-output-hk/iogx/blob/main/doc/api.md#mkhaskellproject - project = lib.iogx.mkHaskellProject { - inherit cabalProject; - shellArgs = repoRoot.nix.shell; - }; + modules = [{ + packages = {}; + }]; + } + ); in -project +cabalProject diff --git a/nix/shell.nix b/nix/shell.nix index dd7a119..02b7fa7 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -1,45 +1,105 @@ -# Docs for this file: https://github.com/input-output-hk/iogx/blob/main/doc/api.md#mkhaskellprojectinshellargs -# See `shellArgs` in `mkHaskellProject` in ./project.nix for more details. +{ inputs, pkgs, lib, project, utils, ghc }: -{ repoRoot, inputs, pkgs, lib, system }: +let -# Each flake variant defined in your project.nix project will yield a separate -# shell. If no flake variants are defined, then cabalProject is the original -# project. -cabalProject: + allTools = { + "ghc966".cabal = project.projectVariants.ghc966.tool "cabal" "latest"; + "ghc966".cabal-fmt = project.projectVariants.ghc966.tool "cabal-fmt" "latest"; + "ghc966".haskell-language-server = project.projectVariants.ghc966.tool "haskell-language-server" "latest"; + "ghc966".stylish-haskell = project.projectVariants.ghc966.tool "stylish-haskell" "latest"; + "ghc966".fourmolu = project.projectVariants.ghc966.tool "fourmolu" "latest"; + "ghc966".hlint = project.projectVariants.ghc966.tool "hlint" "latest"; -{ - name = "plinth-template"; + "ghc984".cabal = project.projectVariants.ghc984.tool "cabal" "latest"; + "ghc984".cabal-fmt = project.projectVariants.ghc984.tool "cabal-fmt" "latest"; + "ghc984".haskell-language-server = project.projectVariants.ghc984.tool "haskell-language-server" "latest"; + "ghc984".stylish-haskell = project.projectVariants.ghc984.tool "stylish-haskell" "latest"; + "ghc984".fourmolu = project.projectVariants.ghc984.tool "fourmolu" "latest"; + "ghc984".hlint = project.projectVariants.ghc984.tool "hlint" "latest"; + }; + + tools = allTools.${ghc}; + + preCommitCheck = inputs.pre-commit-hooks.lib.${pkgs.system}.run { + + src = lib.cleanSources ../.; + + hooks = { + nixpkgs-fmt = { + enable = false; + package = pkgs.nixpkgs-fmt; + }; + cabal-fmt = { + enable = false; + package = tools.cabal-fmt; + }; + stylish-haskell = { + enable = false; + package = tools.stylish-haskell; + args = [ "--config" ".stylish-haskell.yaml" ]; + }; + fourmolu = { + enable = false; + package = tools.fourmolu; + args = [ "--mode" "inplace" ]; + }; + hlint = { + enable = false; + package = tools.hlint; + args = [ "--hint" ".hlint.yaml" ]; + }; + shellcheck = { + enable = false; + package = pkgs.shellcheck; + }; + }; + }; + + linuxPkgs = lib.optionals pkgs.hostPlatform.isLinux [ + ]; - packages = [ + darwinPkgs = lib.optionals pkgs.hostPlatform.isDarwin [ ]; - # scripts = { - # foo = { - # description = ""; - # group = "general"; - # enabled = true; - # exec = '' - # echo "Hello, World!" - # ''; - # }; - # }; - - # env = { - # KEY = "VALUE"; - # }; - - shellHook = '' - # Custom shellHook - ''; - - preCommit = { - # cabal-fmt.enable = true; - # stylish-haskell.enable = true; - # fourmolu.enable = true; - # hlint.enable = true; - # editorconfig-checker.enable = true; - # nixpkgs-fmt.enable = true; + commonPkgs = [ + tools.haskell-language-server + tools.stylish-haskell + tools.fourmolu + tools.cabal + tools.hlint + tools.cabal-fmt + + pkgs.shellcheck + pkgs.nixpkgs-fmt + pkgs.github-cli + pkgs.act + pkgs.bzip2 + pkgs.gawk + pkgs.zlib + pkgs.cacert + pkgs.curl + pkgs.bash + pkgs.git + pkgs.which + ]; + + shell = project.shellFor { + name = "plinth-${project.args.compiler-nix-name}"; + + buildInputs = lib.concatLists [ + commonPkgs + darwinPkgs + linuxPkgs + ]; + + withHoogle = true; + + shellHook = '' + ${preCommitCheck.shellHook} + export PS1="\n\[\033[1;32m\][nix-shell:\w]\$\[\033[0m\] " + ''; }; -} - \ No newline at end of file + +in + +shell diff --git a/nix/utils.nix b/nix/utils.nix new file mode 100644 index 0000000..441ac70 --- /dev/null +++ b/nix/utils.nix @@ -0,0 +1,37 @@ +{ pkgs, lib }: + +rec { + + flattenDerivationTree = separator: set: + let + recurse = name: name': + flatten (if name == "" then name' else "${name}${separator}${name'}"); + + flatten = name': value: + let + name = builtins.replaceStrings [":"] [separator] name'; + in + if lib.isDerivation value || lib.typeOf value != "set" then + [{ inherit name value; }] + else + lib.concatLists (lib.mapAttrsToList (recurse name) value); + in + assert lib.typeOf set == "set"; + lib.listToAttrs (flatten "" set); + + + mapAttrsValues = f: lib.mapAttrs (_name: f); + + + makeHydraRequiredJob = hydraJobs: + let + cleanJobs = lib.filterAttrsRecursive + (name: _: name != "recurseForDerivations") + (removeAttrs hydraJobs [ "required" ]); + in + pkgs.releaseTools.aggregate { + name = "required"; + meta.description = "All jobs required to pass CI"; + constituents = lib.collect lib.isDerivation cleanJobs; + }; +} From 03f271899b79e3328f8ebf8cc916a7bdb984317e Mon Sep 17 00:00:00 2001 From: zeme Date: Thu, 10 Jul 2025 14:25:43 +0200 Subject: [PATCH 02/16] wip --- flake.lock | 764 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 754 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 549dd41..4564d21 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,147 @@ { "nodes": { + "CHaP": { + "flake": false, + "locked": { + "lastModified": 1752055566, + "narHash": "sha256-6iH3PscsCrrjoAi3ikVG+5isoLqeTCEo3DBS1uoUTv8=", + "owner": "IntersectMBO", + "repo": "cardano-haskell-packages", + "rev": "ce0c1ca6c0fa40b522d68733c7da9cbd5f7d9a88", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "repo", + "repo": "cardano-haskell-packages", + "type": "github" + } + }, + "HTTP": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, + "blst": { + "flake": false, + "locked": { + "lastModified": 1739372843, + "narHash": "sha256-IlbNMLBjs/dvGogcdbWQIL+3qwy7EXJbIDpo4xBd4bY=", + "owner": "supranational", + "repo": "blst", + "rev": "8c7db7fe8d2ce6e76dc398ebd4d475c0ec564355", + "type": "github" + }, + "original": { + "owner": "supranational", + "ref": "v0.3.14", + "repo": "blst", + "type": "github" + } + }, + "cabal-32": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "owner": "haskell", + "repo": "cabal", + "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, + "cabal-34": { + "flake": false, + "locked": { + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", + "owner": "haskell", + "repo": "cabal", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36": { + "flake": false, + "locked": { + "lastModified": 1669081697, + "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", + "owner": "haskell", + "repo": "cabal", + "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cardano-shell": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, "flake-compat": { + "flake": false, "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -33,27 +168,636 @@ "type": "github" } }, + "ghc-8.6.5-iohk": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hackage": { + "flake": false, + "locked": { + "lastModified": 1752144609, + "narHash": "sha256-X5/90zKcCKscc2it9TD9pFmLV5O38bfql0e1TpzxiIs=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "f58d8a99f1d640943fc3a9f26d7be0e41bd40860", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage-for-stackage": { + "flake": false, + "locked": { + "lastModified": 1752107228, + "narHash": "sha256-mFTUPacyAC82u84U5OYjFZQeaapblJdzOvWvCiD5/d0=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "9d4ef53d1473943a8d39cc25bfabc2ff52e0598f", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "for-stackage", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage-internal": { + "flake": false, + "locked": { + "lastModified": 1750307553, + "narHash": "sha256-iiafNoeLHwlSLQTyvy8nPe2t6g5AV4PPcpMeH/2/DLs=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "f7867baa8817fab296528f4a4ec39d1c7c4da4f3", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "haskell-nix": { + "inputs": { + "HTTP": "HTTP", + "cabal-32": "cabal-32", + "cabal-34": "cabal-34", + "cabal-36": "cabal-36", + "cardano-shell": "cardano-shell", + "flake-compat": "flake-compat", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", + "hackage": [ + "hackage" + ], + "hackage-for-stackage": "hackage-for-stackage", + "hackage-internal": "hackage-internal", + "hls": "hls", + "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", + "hls-2.10": "hls-2.10", + "hls-2.11": "hls-2.11", + "hls-2.2": "hls-2.2", + "hls-2.3": "hls-2.3", + "hls-2.4": "hls-2.4", + "hls-2.5": "hls-2.5", + "hls-2.6": "hls-2.6", + "hls-2.7": "hls-2.7", + "hls-2.8": "hls-2.8", + "hls-2.9": "hls-2.9", + "hpc-coveralls": "hpc-coveralls", + "iserv-proxy": "iserv-proxy", + "nixpkgs": [ + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-2305": "nixpkgs-2305", + "nixpkgs-2311": "nixpkgs-2311", + "nixpkgs-2405": "nixpkgs-2405", + "nixpkgs-2411": "nixpkgs-2411", + "nixpkgs-2505": "nixpkgs-2505", + "nixpkgs-unstable": "nixpkgs-unstable", + "old-ghc-nix": "old-ghc-nix", + "stackage": "stackage" + }, + "locked": { + "lastModified": 1752108734, + "narHash": "sha256-VpJA7S1UuopLBSEdbamfXsFZlgT3gh9wT2zd+ZY7zXw=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "1af1e0d8d8e997c35efea80c983b62732050f7ef", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "hls": { + "flake": false, + "locked": { + "lastModified": 1741604408, + "narHash": "sha256-tuq3+Ip70yu89GswZ7DSINBpwRprnWnl6xDYnS4GOsc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "682d6894c94087da5e566771f25311c47e145359", + "type": "github" + }, + "original": { + "owner": "haskell", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "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" + } + }, + "hls-2.10": { + "flake": false, + "locked": { + "lastModified": 1743069404, + "narHash": "sha256-q4kDFyJDDeoGqfEtrZRx4iqMVEC2MOzCToWsFY+TOzY=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "2318c61db3a01e03700bd4b05665662929b7fe8b", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.11": { + "flake": false, + "locked": { + "lastModified": 1747306193, + "narHash": "sha256-/MmtpF8+FyQlwfKHqHK05BdsxC9LHV70d/FiMM7pzBM=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "46ef4523ea4949f47f6d2752476239f1c6d806fe", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.11.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4": { + "flake": false, + "locked": { + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.5": { + "flake": false, + "locked": { + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.5.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6": { + "flake": false, + "locked": { + "lastModified": 1705325287, + "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.6.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.7": { + "flake": false, + "locked": { + "lastModified": 1708965829, + "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.7.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.8": { + "flake": false, + "locked": { + "lastModified": 1715153580, + "narHash": "sha256-Vi/iUt2pWyUJlo9VrYgTcbRviWE0cFO6rmGi9rmALw0=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "dd1be1beb16700de59e0d6801957290bcf956a0a", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.8.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.9": { + "flake": false, + "locked": { + "lastModified": 1719993701, + "narHash": "sha256-wy348++MiMm/xwtI9M3vVpqj2qfGgnDcZIGXw8sF1sA=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "90319a7e62ab93ab65a95f8f2bcf537e34dae76a", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.9.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hpc-coveralls": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, + "iohk-nix": { + "inputs": { + "blst": "blst", + "nixpkgs": [ + "nixpkgs" + ], + "secp256k1": "secp256k1", + "sodium": "sodium" + }, + "locked": { + "lastModified": 1751421193, + "narHash": "sha256-rklXDo12dfukaSqcEyiYbze3ffRtTl2/WAAQCWfkGiw=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "64ca6f4c0c6db283e2ec457c775bce75173fb319", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iserv-proxy": { + "flake": false, + "locked": { + "lastModified": 1750543273, + "narHash": "sha256-WaswH0Y+Fmupvv8AkIlQBlUy/IdD3Inx9PDuE+5iRYY=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "a53c57c9a8d22a66a2f0c4c969e806da03f08c28", + "type": "github" + }, + "original": { + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1750776420, - "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=", + "lastModified": 1730768919, + "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2305": { + "locked": { + "lastModified": 1705033721, + "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2311": { + "locked": { + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2405": { + "locked": { + "lastModified": 1735564410, + "narHash": "sha256-HB/FA0+1gpSs8+/boEavrGJH+Eq08/R2wWNph1sM1Dg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1e7a8f391f1a490460760065fa0630b5520f9cf8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-24.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2411": { + "locked": { + "lastModified": 1748037224, + "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-24.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2505": { + "locked": { + "lastModified": 1748852332, + "narHash": "sha256-r/wVJWmLYEqvrJKnL48r90Wn9HWX9SHFt6s4LhuTh7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a8167f3cc2f991dd4d0055746df53dae5fd0c953", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-25.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1748856973, + "narHash": "sha256-RlTsJUvvr8ErjPBsiwrGbbHYW8XbB/oek0Gi78XdWKg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf", + "rev": "e4b09e47ace7d87de083786b404bf232eb6c89d8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, + "old-ghc-nix": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { - "flake-compat": "flake-compat", + "CHaP": "CHaP", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "hackage": "hackage", + "haskell-nix": "haskell-nix", + "iohk-nix": "iohk-nix", + "nixpkgs": [ + "haskell-nix", + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks" + } + }, + "secp256k1": { + "flake": false, + "locked": { + "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": "libsodium", + "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "libsodium", + "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", + "type": "github" + } + }, + "stackage": { + "flake": false, + "locked": { + "lastModified": 1752020034, + "narHash": "sha256-gw/qSy3bJy+Uqc1LyJKFjowtErjeJHooigqWM2tzrkI=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "9080298ccf1df5b26c059dca6676324ab1fcee3d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" } }, "systems": { @@ -74,4 +818,4 @@ }, "root": "root", "version": 7 -} \ No newline at end of file +} From 348c8109d4110fe06ff9b90efabc0b27559dcde0 Mon Sep 17 00:00:00 2001 From: zeme Date: Thu, 10 Jul 2025 14:29:55 +0200 Subject: [PATCH 03/16] wip --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 272981e..91b1a31 100644 --- a/cabal.project +++ b/cabal.project @@ -11,9 +11,9 @@ repository cardano-haskell-packages index-state: -- Bump both the following dates if you need newer packages from Hackage - , hackage.haskell.org 2025-07-09T10:08:21Z + , hackage.haskell.org 2025-07-09T07:09:35Z -- Bump this if you need newer packages from CHaP - , cardano-haskell-packages 2025-07-09T10:08:21Z + , cardano-haskell-packages 2025-07-09T07:09:35Z packages: ./. From bf8a8f0a7f6e15ce64370ec828a35d698ca1b5d2 Mon Sep 17 00:00:00 2001 From: zeme Date: Thu, 10 Jul 2025 15:02:28 +0200 Subject: [PATCH 04/16] wip --- nix/outputs.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/nix/outputs.nix b/nix/outputs.nix index dfe55e1..6bf1a6a 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -24,8 +24,6 @@ let defaultHydraJobs = { ghc966 = projectFlake.hydraJobs.ghc966; ghc984 = projectFlake.hydraJobs.ghc984; - ghc9102 = projectFlake.hydraJobs.ghc9102; - ghc9122 = projectFlake.hydraJobs.ghc9122; inherit packages; inherit devShells; required = utils.makeHydraRequiredJob hydraJobs; From a623f4a9b3b6b8e367913e8818096bdd7090e76c Mon Sep 17 00:00:00 2001 From: zeme Date: Thu, 10 Jul 2025 15:14:48 +0200 Subject: [PATCH 05/16] ip --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 4564d21..dfb31d6 100644 --- a/flake.lock +++ b/flake.lock @@ -209,11 +209,11 @@ "hackage": { "flake": false, "locked": { - "lastModified": 1752144609, - "narHash": "sha256-X5/90zKcCKscc2it9TD9pFmLV5O38bfql0e1TpzxiIs=", + "lastModified": 1752152853, + "narHash": "sha256-0s3tgNeVCQxjBuWg5/3DVPV05EdRc5G66BniC61wnG8=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "f58d8a99f1d640943fc3a9f26d7be0e41bd40860", + "rev": "263acad2af7402225a854550b0269245083d9f40", "type": "github" }, "original": { @@ -225,11 +225,11 @@ "hackage-for-stackage": { "flake": false, "locked": { - "lastModified": 1752107228, - "narHash": "sha256-mFTUPacyAC82u84U5OYjFZQeaapblJdzOvWvCiD5/d0=", + "lastModified": 1750897618, + "narHash": "sha256-MgzSJDtk9qXf+OYjqaGX7zebArRS236tgFKDAxV3OXw=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "9d4ef53d1473943a8d39cc25bfabc2ff52e0598f", + "rev": "5ac996932a885bee0083893ba7a4727b654b7e8d", "type": "github" }, "original": { @@ -298,11 +298,11 @@ "stackage": "stackage" }, "locked": { - "lastModified": 1752108734, - "narHash": "sha256-VpJA7S1UuopLBSEdbamfXsFZlgT3gh9wT2zd+ZY7zXw=", + "lastModified": 1750899099, + "narHash": "sha256-8Wy0VIdPoGd7JqaHT4ehfS87kW+xRn9XwSiRxu0nD9g=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "1af1e0d8d8e997c35efea80c983b62732050f7ef", + "rev": "c16c3c648b3a2eef0cb1fb3706da801764d77565", "type": "github" }, "original": { @@ -557,11 +557,11 @@ "sodium": "sodium" }, "locked": { - "lastModified": 1751421193, - "narHash": "sha256-rklXDo12dfukaSqcEyiYbze3ffRtTl2/WAAQCWfkGiw=", + "lastModified": 1750025513, + "narHash": "sha256-WUNoYIZvU9moc5ccwJcF22r+bUJXO5dWoRyLPs8bJic=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "64ca6f4c0c6db283e2ec457c775bce75173fb319", + "rev": "f63aa2a49720526900fb5943db4123b5b8dcc534", "type": "github" }, "original": { @@ -787,11 +787,11 @@ "stackage": { "flake": false, "locked": { - "lastModified": 1752020034, - "narHash": "sha256-gw/qSy3bJy+Uqc1LyJKFjowtErjeJHooigqWM2tzrkI=", + "lastModified": 1750292027, + "narHash": "sha256-rmEsCxLWS/rAdIzZPSi0XbrY2BOztBlSHQHgYoXyovU=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "9080298ccf1df5b26c059dca6676324ab1fcee3d", + "rev": "3f8c717e24953914821f1ddb4797dd768326faa6", "type": "github" }, "original": { From 5a8abe218c18ed7e850bb51fe30120ae802dae65 Mon Sep 17 00:00:00 2001 From: zeme Date: Mon, 14 Jul 2025 08:58:12 +0200 Subject: [PATCH 06/16] wip --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index dfb31d6..cb850ed 100644 --- a/flake.lock +++ b/flake.lock @@ -209,11 +209,11 @@ "hackage": { "flake": false, "locked": { - "lastModified": 1752152853, - "narHash": "sha256-0s3tgNeVCQxjBuWg5/3DVPV05EdRc5G66BniC61wnG8=", + "lastModified": 1752475612, + "narHash": "sha256-5TchFqrGcKTEDJxdjukGn7mdSv736DTn/4g02MJLRTI=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "263acad2af7402225a854550b0269245083d9f40", + "rev": "ab900738f79f56ad238a37a56fc5e6c46b5e55d7", "type": "github" }, "original": { From bdde6769203e4e29d5e752d3d597914af0db2c50 Mon Sep 17 00:00:00 2001 From: zeme Date: Tue, 15 Jul 2025 12:32:08 +0200 Subject: [PATCH 07/16] wip --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 91b1a31..fb1fa63 100644 --- a/cabal.project +++ b/cabal.project @@ -11,9 +11,9 @@ repository cardano-haskell-packages index-state: -- Bump both the following dates if you need newer packages from Hackage - , hackage.haskell.org 2025-07-09T07:09:35Z + , hackage.haskell.org 2025-07-09T07:09:36Z -- Bump this if you need newer packages from CHaP - , cardano-haskell-packages 2025-07-09T07:09:35Z + , cardano-haskell-packages 2025-07-09T07:09:36Z packages: ./. From 9706838d19e647b792542b62df84993de92d3998 Mon Sep 17 00:00:00 2001 From: zeme Date: Tue, 15 Jul 2025 14:40:22 +0200 Subject: [PATCH 08/16] wip --- cabal.project | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index fb1fa63..91b1a31 100644 --- a/cabal.project +++ b/cabal.project @@ -11,9 +11,9 @@ repository cardano-haskell-packages index-state: -- Bump both the following dates if you need newer packages from Hackage - , hackage.haskell.org 2025-07-09T07:09:36Z + , hackage.haskell.org 2025-07-09T07:09:35Z -- Bump this if you need newer packages from CHaP - , cardano-haskell-packages 2025-07-09T07:09:36Z + , cardano-haskell-packages 2025-07-09T07:09:35Z packages: ./. From ee74d3ff690c83a555f596e5dc318de4d0553134 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:19:22 +0200 Subject: [PATCH 09/16] wip --- nix/shell.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/shell.nix b/nix/shell.nix index 02b7fa7..193eb85 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -25,6 +25,10 @@ let src = lib.cleanSources ../.; hooks = { + shellcheck = { + enable = false; + package = pkgs.shellcheck; + }; nixpkgs-fmt = { enable = false; package = pkgs.nixpkgs-fmt; @@ -48,10 +52,6 @@ let package = tools.hlint; args = [ "--hint" ".hlint.yaml" ]; }; - shellcheck = { - enable = false; - package = pkgs.shellcheck; - }; }; }; From fb41a27c5b458822be25045d87dff2fe571200cf Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:21:00 +0200 Subject: [PATCH 10/16] wip --- nix/outputs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/outputs.nix b/nix/outputs.nix index 6bf1a6a..f1f2eb4 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -32,7 +32,7 @@ let hydraJobsPerSystem = { "x86_64-linux" = defaultHydraJobs; "x86_64-darwin" = defaultHydraJobs; - "aarch64-linux" = defaultHydraJobs; + "aarch64-linux" = {}; "aarch64-darwin" = defaultHydraJobs; }; From 2ec7ee4b3aafbf67bcbf2e96bc6299fc15b7d182 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:24:25 +0200 Subject: [PATCH 11/16] wip --- flake.nix | 6 +++--- nix/outputs.nix | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index 652fcbc..b9647eb 100644 --- a/flake.nix +++ b/flake.nix @@ -30,9 +30,9 @@ flake-utils.url = "github:numtide/flake-utils"; }; - outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: - import ./nix/outputs.nix { inherit inputs system; } - ); + outputs = inputs: inputs.flake-utils.lib.eachSystem + ["aarch64-darwin" "x86_64-darwin" "x86_64-linux"] + (system: import ./nix/outputs.nix { inherit inputs system; }); nixConfig = { extra-substituters = [ diff --git a/nix/outputs.nix b/nix/outputs.nix index f1f2eb4..6bf1a6a 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -32,7 +32,7 @@ let hydraJobsPerSystem = { "x86_64-linux" = defaultHydraJobs; "x86_64-darwin" = defaultHydraJobs; - "aarch64-linux" = {}; + "aarch64-linux" = defaultHydraJobs; "aarch64-darwin" = defaultHydraJobs; }; From 42029c516d706b8451976145163708387000377b Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:28:50 +0200 Subject: [PATCH 12/16] wip --- flake.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index b9647eb..a4bd394 100644 --- a/flake.nix +++ b/flake.nix @@ -30,8 +30,8 @@ flake-utils.url = "github:numtide/flake-utils"; }; - outputs = inputs: inputs.flake-utils.lib.eachSystem - ["aarch64-darwin" "x86_64-darwin" "x86_64-linux"] + outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem + # ["aarch64-darwin" "x86_64-darwin" "x86_64-linux"] (system: import ./nix/outputs.nix { inherit inputs system; }); nixConfig = { From 37c88da92fdaccff14dfcddccd74d2182a881ca2 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:30:00 +0200 Subject: [PATCH 13/16] wip --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index a4bd394..652fcbc 100644 --- a/flake.nix +++ b/flake.nix @@ -30,9 +30,9 @@ flake-utils.url = "github:numtide/flake-utils"; }; - outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem - # ["aarch64-darwin" "x86_64-darwin" "x86_64-linux"] - (system: import ./nix/outputs.nix { inherit inputs system; }); + outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: + import ./nix/outputs.nix { inherit inputs system; } + ); nixConfig = { extra-substituters = [ From 28e71736b41331c3deb923cb20a9dbf49655bb37 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:32:47 +0200 Subject: [PATCH 14/16] wip --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index cb850ed..e86b791 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1752055566, - "narHash": "sha256-6iH3PscsCrrjoAi3ikVG+5isoLqeTCEo3DBS1uoUTv8=", + "lastModified": 1752606079, + "narHash": "sha256-e9g0f4Pb/xTNGjD/ggubZeTT/lhqEzGnQWLh3ZY5mi8=", "owner": "IntersectMBO", "repo": "cardano-haskell-packages", - "rev": "ce0c1ca6c0fa40b522d68733c7da9cbd5f7d9a88", + "rev": "6e80c1c3d4fd4100b4da313b9f7e537f1b701a78", "type": "github" }, "original": { From 5216f2c3ff1f997cc7e90e263a61ef4f50d6a5e6 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:39:26 +0200 Subject: [PATCH 15/16] wip --- README.md | 2 +- cabal.project | 4 ++-- nix/outputs.nix | 12 ++++-------- nix/project.nix | 1 - 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 57e8938..ecb9a20 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A template repository for your Plinth smart contract project. -Plinth currently supports GHC `v9.6.x` and `v9.8.x`. Cabal `v3.8+` is recommended. +Plinth currently supports GHC `v9.6.x`. Cabal `v3.8+` is recommended. ### 1. Create the repository diff --git a/cabal.project b/cabal.project index 91b1a31..a48506d 100644 --- a/cabal.project +++ b/cabal.project @@ -11,9 +11,9 @@ repository cardano-haskell-packages index-state: -- Bump both the following dates if you need newer packages from Hackage - , hackage.haskell.org 2025-07-09T07:09:35Z + , hackage.haskell.org 2025-07-09T07:14:35Z -- Bump this if you need newer packages from CHaP - , cardano-haskell-packages 2025-07-09T07:09:35Z + , cardano-haskell-packages 2025-07-09T07:14:35Z packages: ./. diff --git a/nix/outputs.nix b/nix/outputs.nix index 6bf1a6a..dc9b2aa 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -11,19 +11,12 @@ let mkShell = ghc: import ./shell.nix { inherit inputs pkgs lib project utils ghc; }; - packages = { }; - - devShells = rec { - default = ghc966; - ghc966 = mkShell "ghc966"; - ghc984 = mkShell "ghc984"; - }; + devShells.default = mkShell "ghc966"; projectFlake = project.flake {}; defaultHydraJobs = { ghc966 = projectFlake.hydraJobs.ghc966; - ghc984 = projectFlake.hydraJobs.ghc984; inherit packages; inherit devShells; required = utils.makeHydraRequiredJob hydraJobs; @@ -37,6 +30,9 @@ let }; hydraJobs = utils.flattenDerivationTree "-" hydraJobsPerSystem.${system}; + + packages = { }; + in { diff --git a/nix/project.nix b/nix/project.nix index ffdc663..c8fb03d 100644 --- a/nix/project.nix +++ b/nix/project.nix @@ -14,7 +14,6 @@ let flake.variants = { ghc966 = {}; # Alias for the default variant - ghc984.compiler-nix-name = "ghc984"; }; inputMap = { "https://chap.intersectmbo.org/" = inputs.CHaP; }; From b224f537229bb3ca1b1dcd18974719d6aa6162d6 Mon Sep 17 00:00:00 2001 From: zeme Date: Wed, 16 Jul 2025 10:39:39 +0200 Subject: [PATCH 16/16] wip --- nix/shell.nix | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/nix/shell.nix b/nix/shell.nix index 193eb85..26fb4a6 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -3,19 +3,12 @@ let allTools = { - "ghc966".cabal = project.projectVariants.ghc966.tool "cabal" "latest"; - "ghc966".cabal-fmt = project.projectVariants.ghc966.tool "cabal-fmt" "latest"; - "ghc966".haskell-language-server = project.projectVariants.ghc966.tool "haskell-language-server" "latest"; - "ghc966".stylish-haskell = project.projectVariants.ghc966.tool "stylish-haskell" "latest"; - "ghc966".fourmolu = project.projectVariants.ghc966.tool "fourmolu" "latest"; - "ghc966".hlint = project.projectVariants.ghc966.tool "hlint" "latest"; - - "ghc984".cabal = project.projectVariants.ghc984.tool "cabal" "latest"; - "ghc984".cabal-fmt = project.projectVariants.ghc984.tool "cabal-fmt" "latest"; - "ghc984".haskell-language-server = project.projectVariants.ghc984.tool "haskell-language-server" "latest"; - "ghc984".stylish-haskell = project.projectVariants.ghc984.tool "stylish-haskell" "latest"; - "ghc984".fourmolu = project.projectVariants.ghc984.tool "fourmolu" "latest"; - "ghc984".hlint = project.projectVariants.ghc984.tool "hlint" "latest"; + "ghc966".cabal = project.projectVariants.ghc966.tool "cabal" "latest"; + "ghc966".cabal-fmt = project.projectVariants.ghc966.tool "cabal-fmt" "latest"; + "ghc966".haskell-language-server = project.projectVariants.ghc966.tool "haskell-language-server" "latest"; + "ghc966".stylish-haskell = project.projectVariants.ghc966.tool "stylish-haskell" "latest"; + "ghc966".fourmolu = project.projectVariants.ghc966.tool "fourmolu" "latest"; + "ghc966".hlint = project.projectVariants.ghc966.tool "hlint" "latest"; }; tools = allTools.${ghc};