diff --git a/.github/workflows/aarch64-darwin.yml b/.github/workflows/aarch64-darwin.yml index a48d9f4..ca1c06b 100644 --- a/.github/workflows/aarch64-darwin.yml +++ b/.github/workflows/aarch64-darwin.yml @@ -5,6 +5,7 @@ on: jobs: build: + if: false # Disabled until macOS hydra builders are back online name: Prebuild and Upload uses: ./.github/workflows/main.yml with: diff --git a/.github/workflows/aarch64-linux.yml b/.github/workflows/aarch64-linux.yml index f197d8c..834c69b 100644 --- a/.github/workflows/aarch64-linux.yml +++ b/.github/workflows/aarch64-linux.yml @@ -1,11 +1,11 @@ name: DevX closures for aarch64-linux on: - # Disabled until we have a new aarch64-linux hydra builder - # push: + push: jobs: build: + if: false # Disabled until we have a new aarch64-linux hydra builder name: Prebuild and Upload uses: ./.github/workflows/main.yml with: diff --git a/.github/workflows/hello.yml b/.github/workflows/hello.yml index 25bf092..bef724d 100644 --- a/.github/workflows/hello.yml +++ b/.github/workflows/hello.yml @@ -11,13 +11,13 @@ jobs: fail-fast: false matrix: platform: - - x86_64-darwin - x86_64-linux + # Disabled until macOS hydra builders are back online. + #- x86_64-darwin # Skipping because we do not have runners for these set up. #- aarch64-darwin #- aarch64-linux compiler-nix-name: - - ghc810 - ghc96 - ghc98 - ghc910 @@ -34,9 +34,6 @@ jobs: - false - true exclude: - # Just cross compiling javascript with ghc 9.6 and above - - compiler-nix-name: ghc810 - target-platform: "-js" # Windows cross compilation only works on x86_64 right now. - platform: aarch64-darwin target-platform: "-windows" diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 769d8a6..bcbec09 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -42,7 +42,7 @@ jobs: nix_path: nixpkgs=channel:nixos-unstable - run: | nix profile install github:Kha/nixprof - nixprof record nix develop .#ghc8107 --accept-flake-config + nixprof record nix develop .#ghc96 --accept-flake-config nixprof report -p nixprof report -a nixprof report -s diff --git a/.github/workflows/x86_64-darwin.yml b/.github/workflows/x86_64-darwin.yml index ef6ace9..f020d9a 100644 --- a/.github/workflows/x86_64-darwin.yml +++ b/.github/workflows/x86_64-darwin.yml @@ -5,6 +5,7 @@ on: jobs: build: + if: false # Disabled until macOS hydra builders are back online name: Prebuild and Upload uses: ./.github/workflows/main.yml with: diff --git a/flake.lock b/flake.lock index 940028b..61c136e 100644 --- a/flake.lock +++ b/flake.lock @@ -36,11 +36,11 @@ "cabal": { "flake": false, "locked": { - "lastModified": 1743338359, - "narHash": "sha256-OHjT+UbGcyz46cUW+/eLeezvO0om/vSQ8BZ/oLld1AE=", + "lastModified": 1753671809, + "narHash": "sha256-HeO1VCtD+azwoDAlf9uJfB8D5u5LtiozifD3lCXNG2M=", "owner": "stable-haskell", "repo": "cabal", - "rev": "c0d52b2cb168d3204b0c56a85a42be65d87cdabd", + "rev": "0a74ea16d75f94d282de8598fd7b244b9ab9a2e4", "type": "github" }, "original": { @@ -103,16 +103,16 @@ "cabal-experimental": { "flake": false, "locked": { - "lastModified": 1744014992, - "narHash": "sha256-UsMDgfti/yctTcRt6c8h56/CPjviG7+qlrKy9FXvrN0=", + "lastModified": 1752641461, + "narHash": "sha256-FX6wx9JHhO3AS2Jx9emmKBKs4CIitBRpItLkOfUTi+o=", "owner": "stable-haskell", "repo": "cabal", - "rev": "7e50837ade188504d1401bad932a5b8b3769661e", + "rev": "eeff3cd7c83605212bf5ac5c76673f74c53879a4", "type": "github" }, "original": { "owner": "stable-haskell", - "ref": "angerman/cross", + "ref": "stable-haskell/feature/cross-compile", "repo": "cabal", "type": "github" } @@ -188,11 +188,11 @@ "hackage": { "flake": false, "locked": { - "lastModified": 1743726306, - "narHash": "sha256-47ILvNh/RSQP6PQ9TkuiqSdxLbOEuAlQZVQrHdj8dwU=", + "lastModified": 1753404169, + "narHash": "sha256-vM11Q4Jr9c0Qmw/fjLhMtys+nFQ2p+IvYY5olIpfpmA=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "9f3c25c7eb211f558744d7d4e8ef0a41265eda45", + "rev": "f81a986899e2289262efe6c62c13bdab06f0494c", "type": "github" }, "original": { @@ -204,11 +204,11 @@ "hackage-for-stackage": { "flake": false, "locked": { - "lastModified": 1743726296, - "narHash": "sha256-E8ABsEHk0zPyy5tRH01VYN0XgHRKWLSukJMrTtie6Lw=", + "lastModified": 1753403313, + "narHash": "sha256-w5Db7Tfruv8wGYCWzbhvGOXiQsuhWNj2aHl1Di/d1zs=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "fdd3d2bb06fb0b798820126537ca0933f132c535", + "rev": "07c82a81c73031f7773d79fcd77ef19cc4db2e64", "type": "github" }, "original": { @@ -218,6 +218,22 @@ "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" + } + }, "haskellNix": { "inputs": { "HTTP": "HTTP", @@ -229,10 +245,12 @@ "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", @@ -251,16 +269,17 @@ "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": 1743757633, - "narHash": "sha256-WfGGRcl0P0Xf7G0lJKLNEcIDbGPktqo8/fY7lDCGwFo=", + "lastModified": 1753404740, + "narHash": "sha256-YSAVQ7yl/7HBtznL6pwU3X8QLAFork6rH7UTzVNHbEc=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "835d1d863e8a885a644cb8529c1fa391eb5f14a3", + "rev": "915a0ebd463cec6a6aeab36f7245ff7df8e29f2c", "type": "github" }, "original": { @@ -336,6 +355,23 @@ "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": { @@ -496,11 +532,11 @@ "sodium": "sodium" }, "locked": { - "lastModified": 1743649718, - "narHash": "sha256-Wl1nQ2dak4b3fXA7+9rB2ntiKUS+yAzR2kOIUoAF0u8=", + "lastModified": 1751421193, + "narHash": "sha256-rklXDo12dfukaSqcEyiYbze3ffRtTl2/WAAQCWfkGiw=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "3acad181ea6619b64fa49961133026110a460945", + "rev": "64ca6f4c0c6db283e2ec457c775bce75173fb319", "type": "github" }, "original": { @@ -512,11 +548,11 @@ "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1742121966, - "narHash": "sha256-x4bg4OoKAPnayom0nWc0BmlxgRMMHk6lEPvbiyFBq1s=", + "lastModified": 1750543273, + "narHash": "sha256-WaswH0Y+Fmupvv8AkIlQBlUy/IdD3Inx9PDuE+5iRYY=", "owner": "stable-haskell", "repo": "iserv-proxy", - "rev": "e9dc86ed6ad71f0368c16672081c8f26406c3a7e", + "rev": "a53c57c9a8d22a66a2f0c4c969e806da03f08c28", "type": "github" }, "original": { @@ -528,16 +564,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1684171562, - "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", + "lastModified": 1751071626, + "narHash": "sha256-/uHE/AD2qGq4QLigWAnBHiVvpVXB04XAfrOtw8JMv+Y=", "owner": "nixos", "repo": "nixpkgs", - "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", + "rev": "a47938d89bdf8e279ad432bd6a473cf4c430f48c", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-22.11", + "ref": "release-25.05", "repo": "nixpkgs", "type": "github" } @@ -592,11 +628,11 @@ }, "nixpkgs-2411": { "locked": { - "lastModified": 1739151041, - "narHash": "sha256-uNszcul7y++oBiyYXjHEDw/AHeLNp8B6pyWOB+RLA/4=", + "lastModified": 1748037224, + "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94792ab2a6beaec81424445bf917ca2556fbeade", + "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", "type": "github" }, "original": { @@ -606,13 +642,29 @@ "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": 1737110817, - "narHash": "sha256-DSenga8XjPaUV5KUFW/i3rNkN7jm9XmguW+qQ1ZJTR4=", + "lastModified": 1748856973, + "narHash": "sha256-RlTsJUvvr8ErjPBsiwrGbbHYW8XbB/oek0Gi78XdWKg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "041c867bad68dfe34b78b2813028a2e2ea70a23c", + "rev": "e4b09e47ace7d87de083786b404bf232eb6c89d8", "type": "github" }, "original": { @@ -648,7 +700,7 @@ "iohk-nix": "iohk-nix", "nixpkgs": [ "haskellNix", - "nixpkgs-2411" + "nixpkgs-2505" ] } }, @@ -689,11 +741,11 @@ "stackage": { "flake": false, "locked": { - "lastModified": 1743725527, - "narHash": "sha256-kjR/FLAg7bVMI8h40QWSV8mQRSdTUesMG3ITYbcAlKM=", + "lastModified": 1753402451, + "narHash": "sha256-zIAhPN5KCftvdGnPauXc4TxfNJw2xfQjqd5YTF4WeZM=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "b7d2fd63e4b3b1a2633f61248b06bb5ecf08fd71", + "rev": "2162716c4e8f59d2d444dd03160c2624c614bf4e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5a62054..542c8f0 100644 --- a/flake.nix +++ b/flake.nix @@ -2,12 +2,12 @@ description = "Minimal devshell flake for haskell"; inputs.haskellNix.url = "github:input-output-hk/haskell.nix"; - inputs.nixpkgs.follows = "haskellNix/nixpkgs-2411"; + inputs.nixpkgs.follows = "haskellNix/nixpkgs-2505"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.iohk-nix.url = "github:input-output-hk/iohk-nix"; inputs.cabal.url = "github:stable-haskell/cabal"; inputs.cabal.flake = false; - inputs.cabal-experimental.url = "github:stable-haskell/cabal?ref=angerman/cross"; + inputs.cabal-experimental.url = "github:stable-haskell/cabal?ref=stable-haskell/feature/cross-compile"; inputs.cabal-experimental.flake = false; outputs = { self, nixpkgs, flake-utils, haskellNix, iohk-nix, ... }: @@ -60,10 +60,11 @@ }; supportedSystems = [ "x86_64-linux" - "x86_64-darwin" # Currently no aarch64 linux builders # "aarch64-linux" - "aarch64-darwin" + # TODO put these back (macOS hydra builders are currently down) + # "x86_64-darwin" + # "aarch64-darwin" ]; in let flake-outputs = flake-utils.lib.eachSystem supportedSystems (system: let @@ -90,7 +91,6 @@ # Map the compiler-nix-name to a final compiler-nix-name the way haskell.nix # projects do (that way we can use short names) let compilers = pkgs: pkgs.lib.genAttrs [ - "ghc810" "ghc96" "ghc98" "ghc910" @@ -256,9 +256,9 @@ })) devShells) // (pkgs.lib.mapAttrs' (name: drv: pkgs.lib.nameValuePair "${name}-plans" drv.plans) devShells); - packages.cabalProjectLocal.static = (import ./quirks.nix { pkgs = static-pkgs; static = true; }).template; - packages.cabalProjectLocal.cross-js = (import ./quirks.nix { pkgs = js-pkgs; }).template; - packages.cabalProjectLocal.cross-windows = (import ./quirks.nix { pkgs = windows-pkgs; }).template; + packages.cabalProjectLocal-static = (import ./quirks.nix { pkgs = static-pkgs; static = true; }).template; + packages.cabalProjectLocal-cross-js = (import ./quirks.nix { pkgs = js-pkgs; }).template; + packages.cabalProjectLocal-cross-windows = (import ./quirks.nix { pkgs = windows-pkgs; }).template; }); # we use flake-outputs here to inject a required job that aggregates all required jobs. in flake-outputs // { diff --git a/tool-map.nix b/tool-map.nix index bc5fe54..ce695b7 100644 --- a/tool-map.nix +++ b/tool-map.nix @@ -15,7 +15,7 @@ let f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d - --sha256: sha256-+hzciiQqWb5oOzQ2JZ2lzJGfGuwA3ZigeWgAQ8Dz+kk= + --sha256: sha256-RuWfL/ATjhzS7blrnBZuTNEKg4LEq0tE3yH3oapjZLw= if impl(ghc < 9.13) active-repositories: hackage.haskell.org @@ -37,7 +37,7 @@ compiler-nix-name: tool: { # Use the github source of HLS that is tested with haskell.nix CI src = { "ghc8107" = pkgs.haskell-nix.sources."hls-2.2"; "ghc902" = pkgs.haskell-nix.sources."hls-2.4"; - }.${compiler-nix-name} or pkgs.haskell-nix.sources."hls-2.10"; + }.${compiler-nix-name} or pkgs.haskell-nix.sources."hls-2.11"; # `tool` normally ignores the `cabal.project` (if there is one in the hackage source). # We need to use the github one (since it has settings to make hls build). cabalProject = __readFile (src + "/cabal.project"); @@ -45,7 +45,7 @@ compiler-nix-name: tool: { }; happy = { version = "1.20.1.1"; inherit cabalProjectLocal; }; alex = { version = "3.2.7.3"; inherit cabalProjectLocal; }; - cabal = { + cabal = rec { src = self.inputs.cabal; # We use the cabal.boostrap.project file, as we don't # want an of the cabal complexities they have. The @@ -54,10 +54,10 @@ compiler-nix-name: tool: { # # cabal = { src = { outPath = self.inputs.cabal; filterPath = { path, ... }: path; }; } # - cabalProjectFileName = "cabal.bootstrap.project"; - cabalProjectLocal = '' - index-state: hackage.haskell.org 2025-03-17T00:00:00Z - ''; + cabalProject = __replaceStrings + ["import: project-cabal/constraints.config"] + [(__readFile (src + "/project-cabal/constraints.config"))] + (__readFile (src + "/cabal.bootstrap.project")); }; hlint = { cabalProjectLocal = ''