From 66748cefc1d2f969da10b6d1a72d438f4473529a Mon Sep 17 00:00:00 2001 From: Mateusz Galazyn Date: Wed, 3 Jul 2024 13:37:10 +0200 Subject: [PATCH] Try latest cabal for haddocks --- .github/workflows/github-page.yml | 6 ++++-- flake.lock | 6 +++--- flake.nix | 34 ++++++++++++++++++++++++++----- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/.github/workflows/github-page.yml b/.github/workflows/github-page.yml index 470397e6bc..8feb9ced31 100644 --- a/.github/workflows/github-page.yml +++ b/.github/workflows/github-page.yml @@ -2,8 +2,9 @@ name: "Haddock documentation" on: push: - branches: - - main + # FIXME uncomment prior to merge + # branches: + # - main jobs: build: @@ -18,6 +19,7 @@ jobs: uses: cachix/install-nix-action@v18 with: # Use last stable nixos channel and the same nix as in channel: + # FIXME bump channel and nix install_url: https://releases.nixos.org/nix/nix-2.11.1/install nix_path: nixpkgs=channel:nixos-22.11 github_access_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/flake.lock b/flake.lock index 2282b356a7..c0cbb7fe08 100644 --- a/flake.lock +++ b/flake.lock @@ -242,11 +242,11 @@ "hackage": { "flake": false, "locked": { - "lastModified": 1719794527, - "narHash": "sha256-qHo/KumtwAzPkfLWODu/6EFY/LeK+C7iPJyAUdT8tGA=", + "lastModified": 1719967069, + "narHash": "sha256-QQ+y+vW0TXPFhcMjOTUH+M19DuqE2KoEfp6R9SGCcqM=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "da2a3bc9bd1b3dd41bb147279529c471c615fd3e", + "rev": "c4a407c5ed49b77ab65247dabd02477153f2292c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ec14ec98f2..e5c9ccc5e5 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,29 @@ # "aarch64-linux" - disable these temporarily because the build is broken # "aarch64-darwin" - disable these temporarily because the build is broken ]; + + # see flake `variants` below for alternative compilers + defaultCompiler = "ghc965"; + haddockShellCompiler = defaultCompiler; + + cabalHeadOverlay = final: prev: + { + cabal-head = (final.haskell-nix.cabalProject { + # cabal master commit containing https://github.com/haskell/cabal/pull/8726 + src = final.fetchFromGitHub { + owner = "haskell"; + repo = "cabal"; + rev = "6eaba73ac95c62f8dc576e227b5f9c346910303c"; + hash = "sha256-Uu/w6AK61F7XPxtKe+NinuOR4tLbaT6rwxVrQghDQjo="; + }; + index-state = "2024-07-03T00:00:00Z"; + compiler-nix-name = haddockShellCompiler; + cabalProject = '' + packages: Cabal-syntax Cabal cabal-install-solver cabal-install + ''; + configureArgs = "--disable-benchmarks --disable-tests"; + }).cabal-install.components.exes.cabal; + }; in inputs.flake-utils.lib.eachSystem supportedSystems ( system: let @@ -38,15 +61,13 @@ inputs.haskellNix.overlay # configure haskell.nix to use iohk-nix crypto librairies. inputs.iohkNix.overlays.haskell-nix-crypto + cabalHeadOverlay ]; inherit system; inherit (inputs.haskellNix) config; }; inherit (nixpkgs) lib; - # see flake `variants` below for alternative compilers - defaultCompiler = "ghc964"; - haddockShellCompiler = defaultCompiler; # We use cabalProject' to ensure we don't build the plan for # all systems. cabalProject = nixpkgs.haskell-nix.cabalProject' ({config, ...}: { @@ -77,17 +98,20 @@ # tools we want in our shell, from hackage shell.tools = { - cabal = "3.10.3.0"; + # for now we're using latest cabal for `cabal haddock-project` fixes + # cabal = "3.10.3.0"; + # FIXME bump this ghcid = "0.8.8"; } // lib.optionalAttrs (config.compiler-nix-name == defaultCompiler) { # tools that work or should be used only with default compiler + # FIXME bump those haskell-language-server.src = nixpkgs.haskell-nix.sources."hls-2.6"; hlint = "3.6.1"; stylish-haskell = "0.14.5.0"; }; # and from nixpkgs or other inputs - shell.nativeBuildInputs = with nixpkgs; [ gh jq yq-go actionlint shellcheck ]; + shell.nativeBuildInputs = with nixpkgs; [ gh jq yq-go actionlint shellcheck cabal-head ]; # disable Hoogle until someone request it shell.withHoogle = false; # Skip cross compilers for the shell