diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index b91db24..82f1841 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.20250506 +# version: 0.19.20250821 # -# REGENDATA ("0.19.20250506",["github","hackage-cli.cabal"]) +# REGENDATA ("0.19.20250821",["github","hackage-cli.cabal"]) # name: Haskell-CI on: @@ -32,6 +32,11 @@ jobs: strategy: matrix: include: + - compiler: ghc-9.14.0.20250819 + compilerKind: ghc + compilerVersion: 9.14.0.20250819 + setup-method: ghcup-prerelease + allow-failure: false - compiler: ghc-9.12.2 compilerKind: ghc compilerVersion: 9.12.2 @@ -106,8 +111,8 @@ jobs: chmod a+x "$HOME/.ghcup/bin/ghcup" - name: Install cabal-install run: | - "$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false) - echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV" + "$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false) + echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV" - name: Install GHC (GHCup) if: matrix.setup-method == 'ghcup' run: | @@ -122,6 +127,21 @@ 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 prereleases + "$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 @@ -132,7 +152,7 @@ jobs: echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV" echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV" echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" - echo "HEADHACKAGE=false" >> "$GITHUB_ENV" + if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV" env: HCKIND: ${{ matrix.compilerKind }} @@ -160,6 +180,18 @@ jobs: repository hackage.haskell.org url: http://hackage.haskell.org/ EOF + if $HEADHACKAGE; then + cat >> $CABAL_CONFIG <> $CABAL_CONFIG <> cabal.project echo "package hackage-cli" >> cabal.project - echo " ghc-options: -Werror=missing-methods" >> cabal.project + echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project + if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package hackage-cli" >> cabal.project ; fi + if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi + if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package hackage-cli" >> cabal.project ; fi + if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi cat >> cabal.project <> cabal.project + fi $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(Cabal|binary|hackage-cli)$/; }' >> cabal.project.local cat cabal.project cat cabal.project.local diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index b9c19c8..c7b80fe 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest,macos-latest,windows-latest] - ghc-ver: ['9.10', '9.8', '9.6'] + ghc-ver: ['9.12', '9.10', '9.8', '9.6'] # Snapshots for 9.4.8, 9.2.8, 9.0.2, 8.10.7 do not have a recent enough base-compat; 0.13 is needed. # On ubuntu-22.04 the old versions 8.8.4, 8.6.5, 8.4.4, 8.2.2 fail due to HsOpenSSL linking errors. # They used to work under ubuntu-20.04, but it is not worth the trouble maintaining them. @@ -34,7 +34,7 @@ jobs: shell: bash steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: haskell-actions/setup@v2 id: setup diff --git a/CHANGELOG.md b/CHANGELOG.md index 65354ad..5edd0b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog for hackage-cli +## 0.1.0.4 + +_Andreas Abel, 2025-08-30_ + +- Remove unused dependencies of test-suite + +Builds with `Cabal 3.4 - 3.16` and `GHC 8.2 - 9.14 alpha1`. + ## 0.1.0.3 _Andreas Abel, 2025-06-04_ diff --git a/hackage-cli.cabal b/hackage-cli.cabal index d5df8a1..0cff50b 100644 --- a/hackage-cli.cabal +++ b/hackage-cli.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hackage-cli -version: 0.1.0.3 +version: 0.1.0.4 synopsis: CLI tool for Hackage description: @@ -18,6 +18,7 @@ build-type: Simple -- Supported GHC versions when building with cabal: tested-with: -- Keep in descending order. + GHC == 9.14.1 GHC == 9.12.2 GHC == 9.10.2 GHC == 9.8.4 @@ -39,6 +40,7 @@ extra-source-files: fixtures/*.diff fixtures/*.cabal -- Supported GHC versions when building with stack: + stack-9.12.yaml stack-9.10.yaml stack-9.8.yaml stack-9.6.yaml @@ -56,7 +58,7 @@ library cabal-revisions build-depends: , base >= 4.10.0.0 && < 5 , bytestring >= 0.10.4.0 && < 0.13 - , Cabal >= 3.4 && < 3.15 + , Cabal >= 3.4 && < 3.17 , containers >= 0.5.0.0 && < 0.8 , mtl >= 2.2.2 && < 2.3 || >= 2.3.1 && < 2.4 , pretty ^>= 1.1.2 @@ -128,13 +130,11 @@ executable hackage-cli , netrc ^>= 0.2.0.0 , optparse-applicative >= 0.14 && < 1 , process-extras ^>= 0.7.4 - , semigroups >= 0.18.3 && < 0.21 , stringsearch ^>= 0.3.6 , tagsoup ^>= 0.14 , tar >= 0.5 && < 1 , text >= 1.2 && < 2.2 , time >= 1.5.0.1 && < 1.15 - , unordered-containers ^>= 0.2.7 , zlib >= 0.6.1 && < 0.8 ghc-options: -Wall -Wcompat -threaded diff --git a/src/IndexShaSum.hs b/src/IndexShaSum.hs index bdfc4df..a8f2cdd 100644 --- a/src/IndexShaSum.hs +++ b/src/IndexShaSum.hs @@ -4,6 +4,10 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StandaloneDeriving #-} +#if __GLASGOW_HASKELL__ >= 900 +{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} +#endif + -- | -- Module : IndexShaSum -- Copyright : Herbert Valerio Riedel diff --git a/stack-9.10.yaml b/stack-9.10.yaml index 1f5707a..97ce88d 100644 --- a/stack-9.10.yaml +++ b/stack-9.10.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2025-05-28 +resolver: lts-24.7 compiler: ghc-9.10.2 compiler-check: match-exact diff --git a/stack-9.12.yaml b/stack-9.12.yaml new file mode 100644 index 0000000..1a58a33 --- /dev/null +++ b/stack-9.12.yaml @@ -0,0 +1,7 @@ +resolver: nightly-2025-08-30 +compiler: ghc-9.12.2 +compiler-check: match-exact + +flags: + HsOpenSSL: + use-pkg-config: true diff --git a/stack-9.8.yaml b/stack-9.8.yaml index 904dcb7..861af68 100644 --- a/stack-9.8.yaml +++ b/stack-9.8.yaml @@ -1,4 +1,4 @@ -resolver: lts-23.24 +resolver: lts-23.28 flags: HsOpenSSL: