From 019515d85de01f7b8ecf474fb719ada484a2508a Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Tue, 26 Sep 2023 15:56:26 +0200 Subject: [PATCH 1/5] Select the local Stackage snapshot --- example/MODULE.bazel | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/example/MODULE.bazel b/example/MODULE.bazel index 4cf7b96..8de3775 100644 --- a/example/MODULE.bazel +++ b/example/MODULE.bazel @@ -8,11 +8,14 @@ bazel_dep(name = "rules_haskell_nix") bazel_dep(name = "rules_go", version = "0.41.0", repo_name = "io_bazel_rules_go") bazel_dep(name = "gazelle", version = "0.33.0", repo_name = "bazel_gazelle") +GHC_VERSION = "9.4.5" + stack_snapshot = use_extension( "@rules_haskell//extensions:stack_snapshot.bzl", "stack_snapshot", ) use_repo(stack_snapshot, "stackage", "stackage-exe") +stack_snapshot.snapshot(local_snapshot = "@io_tweag_gazelle_cabal//:snapshot-%s.yaml" % GHC_VERSION) # TODO these should be generated by Gazelle stack_snapshot.package(name = "base") stack_snapshot.package(name = "inspection-testing") @@ -35,7 +38,6 @@ nix_haskell_toolchains = use_extension( "nix_haskell_toolchains", ) -GHC_VERSION = "9.4.5" nix_haskell_toolchains.new( attribute_path = "haskell.compiler.ghc" + GHC_VERSION.replace(".", ""), repository = "@nixpkgs", From 207169bf98b3339dd0a42f5ac7f47432cca3f02f Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Tue, 26 Sep 2023 17:54:46 +0200 Subject: [PATCH 2/5] Update rules_haskell to include rules_haskell#1968 So that rules_haskell no longer impacts downstream Stackage snapshot imports. https://github.com/tweag/rules_haskell/pull/1968 --- example/MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/MODULE.bazel b/example/MODULE.bazel index 8de3775..2dd32a0 100644 --- a/example/MODULE.bazel +++ b/example/MODULE.bazel @@ -66,8 +66,8 @@ register_toolchains( ) # TODO Remove once rules_haskell is in the BCR. -RULES_HASKELL_REV = "155ba21c7d315cc421ee3f17a1c09b758cc7279d" -RULES_HASKELL_INTEGRITY = "sha384-dIsFufYml0KGSUiC6jhY9ClMv/yEW1kGof7fLahSwfbWd28jLiwMGBGUuoOsQwWf" +RULES_HASKELL_REV = "d644fe67ff53ee0fd921806a4ad6027c15936c31" +RULES_HASKELL_INTEGRITY = "sha384-BbQWq9BprVpBDQYnrbyldWOO/cfcxLUnjIsNTg9SeJMFDjOGKA0nm/4xwovzGS6o" archive_override( module_name = "rules_haskell", urls = ["https://github.com/tweag/rules_haskell/archive/%s.tar.gz" % RULES_HASKELL_REV], From baf0596115250e72a3e607826f3abf26f39a4687 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Wed, 27 Sep 2023 10:42:46 +0200 Subject: [PATCH 3/5] Configure the GHC version in bzlmod mode --- .github/workflows/workflow.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/workflow.yaml b/.github/workflows/workflow.yaml index fcd3aa1..6b65b96 100644 --- a/.github/workflows/workflow.yaml +++ b/.github/workflows/workflow.yaml @@ -43,9 +43,14 @@ jobs: cache_setting="--remote_header=x-buildbuddy-api-key=$BUILDBUDDY_API_KEY" fi + # Convert "ghc_X_Y_Z" to "X.Y.Z". + GHC_VERSION="$(sed 's/^ghc_//;s/_/./g' <<<"${{ matrix.ghc-version }}")" + bzlmod_setting= if [[ ${{ matrix.enable-bzlmod }} = true ]]; then bzlmod_setting="common --config=bzlmod" + # Update the GHC_VERSION in MODULE.bazel + sed -i.bak 's/^GHC_VERSION = .*$/GHC_VERSION = "'"$GHC_VERSION"'"/g' example/MODULE.bazel fi cat >.bazelrc.local < Date: Wed, 27 Sep 2023 10:43:25 +0200 Subject: [PATCH 4/5] Test bzlmod with multiple GHC versions --- .github/workflows/workflow.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/workflow.yaml b/.github/workflows/workflow.yaml index 6b65b96..c7ca57b 100644 --- a/.github/workflows/workflow.yaml +++ b/.github/workflows/workflow.yaml @@ -19,6 +19,9 @@ jobs: ghc-version: [ghc_8_10_7, ghc_9_0_2, ghc_9_2_7, ghc_9_4_5] enable-bzlmod: [false] include: + - os: ubuntu-latest + ghc-version: ghc_9_2_7 + enable-bzlmod: true - os: ubuntu-latest ghc-version: ghc_9_4_5 enable-bzlmod: true From 65b47f58e681e1acb9fe9d2f664d2b254e9db2d4 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Fri, 29 Sep 2023 16:14:58 +0200 Subject: [PATCH 5/5] update rules_haskell to latest HEAD The required PR has been merged --- example/MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/MODULE.bazel b/example/MODULE.bazel index 2dd32a0..cdface0 100644 --- a/example/MODULE.bazel +++ b/example/MODULE.bazel @@ -66,8 +66,8 @@ register_toolchains( ) # TODO Remove once rules_haskell is in the BCR. -RULES_HASKELL_REV = "d644fe67ff53ee0fd921806a4ad6027c15936c31" -RULES_HASKELL_INTEGRITY = "sha384-BbQWq9BprVpBDQYnrbyldWOO/cfcxLUnjIsNTg9SeJMFDjOGKA0nm/4xwovzGS6o" +RULES_HASKELL_REV = "25831a7a3313fbadb6dbd166fca20ced6c38a1d1" +RULES_HASKELL_INTEGRITY = "sha384-U+jg9U1fF4ibW5TDzj6UruKqD9ELsUA60QEO1MMTxbgG1BJnh0+JbQd3BcTHroSn" archive_override( module_name = "rules_haskell", urls = ["https://github.com/tweag/rules_haskell/archive/%s.tar.gz" % RULES_HASKELL_REV],