diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 5eaeb9d2..b9f0727a 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -8,9 +8,9 @@ # # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.19.20241202 +# version: 0.19.20241219 # -# REGENDATA ("0.19.20241202",["github","cabal.project"]) +# REGENDATA ("0.19.20241219",["github","cabal.project"]) # name: Haskell-CI on: @@ -28,10 +28,10 @@ jobs: strategy: matrix: include: - - compiler: ghc-9.12.0.20241128 + - compiler: ghc-9.12.1 compilerKind: ghc - compilerVersion: 9.12.0.20241128 - setup-method: ghcup-prerelease + compilerVersion: 9.12.1 + setup-method: ghcup allow-failure: false - compiler: ghc-9.10.1 compilerKind: ghc @@ -104,10 +104,11 @@ jobs: mkdir -p "$HOME/.ghcup/bin" curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup" chmod a+x "$HOME/.ghcup/bin/ghcup" - - name: Install cabal-install + - name: Install cabal-install (prerelease) run: | - "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) - echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV" + "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml; + "$HOME/.ghcup/bin/ghcup" install cabal 3.15.0.0.2024.10.3 || (cat "$HOME"/.ghcup/logs/*.* && false) + echo "CABAL=$HOME/.ghcup/bin/cabal-3.15.0.0.2024.10.3 -vnormal+nowrap" >> "$GITHUB_ENV" - name: Install GHC (GHCup) if: matrix.setup-method == 'ghcup' run: | @@ -122,21 +123,6 @@ jobs: HCKIND: ${{ matrix.compilerKind }} HCNAME: ${{ matrix.compiler }} HCVER: ${{ matrix.compilerVersion }} - - name: Install GHC (GHCup prerelease) - if: matrix.setup-method == 'ghcup-prerelease' - run: | - "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml; - "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) - HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") - HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') - HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') - echo "HC=$HC" >> "$GITHUB_ENV" - echo "HCPKG=$HCPKG" >> "$GITHUB_ENV" - echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV" - env: - HCKIND: ${{ matrix.compilerKind }} - HCNAME: ${{ matrix.compiler }} - HCVER: ${{ matrix.compilerVersion }} - name: Set PATH and environment variables run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH @@ -184,7 +170,7 @@ jobs: 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 key-threshold: 3 - active-repositories: hackage.haskell.org + active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override EOF fi cat >> $CABAL_CONFIG <= 91200)) -ne 0 ] ; then echo "package singletons-base-code-generator" >> cabal.project ; fi if [ $((HCNUMVER >= 91200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi cat >> cabal.project <> cabal.project + echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project fi $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(Cabal|Cabal-syntax|singletons|singletons-base|singletons-base-code-generator|singletons-th)$/; }' >> cabal.project.local cat cabal.project diff --git a/cabal.haskell-ci b/cabal.haskell-ci index 23161777..b9e157b4 100644 --- a/cabal.haskell-ci +++ b/cabal.haskell-ci @@ -6,6 +6,3 @@ jobs-selection: any haddock-components: libs -- Needed to avoid https://github.com/haskell/cabal/issues/9917 installed: +all -Cabal -Cabal-syntax --- Needed to work around https://github.com/haskell/cabal/issues/6522 and --- https://github.com/haskell/cabal/issues/10500 -github-patches: github.yml.patch diff --git a/cabal.project b/cabal.project index b7a66ea7..10df3480 100644 --- a/cabal.project +++ b/cabal.project @@ -7,3 +7,9 @@ source-repository-package type: git location: https://github.com/goldfirere/th-desugar tag: 44158f7bb7faa2022795446505217b5e52862da5 + +-- TODO: Remove this after a fix for +-- https://github.com/haskellari/indexed-traversable/issues/44 makes it to +-- Hackage +allow-newer: + indexed-traversable:base diff --git a/github.yml.patch b/github.yml.patch deleted file mode 100644 index 38a9a6bc..00000000 --- a/github.yml.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml -index 55fb206..c9db909 100644 ---- a/.github/workflows/haskell-ci.yml -+++ b/.github/workflows/haskell-ci.yml -@@ -184,7 +184,7 @@ jobs: - 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 - f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 - key-threshold: 3 -- active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override -+ active-repositories: hackage.haskell.org - EOF - fi - cat >> $CABAL_CONFIG <> cabal.project -+ echo "$($HCPKG list --simple-output | xargs -d' ' -n 1 | grep -v "^Cabal" | sed -E 's/([a-zA-Z-]+)-[0-9.]+/allow\-newer\: *:\1/g')" >> cabal.project - fi - $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(Cabal|Cabal-syntax|singletons|singletons-base|singletons-base-code-generator|singletons-th)$/; }' >> cabal.project.local - cat cabal.project