diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 6c419c6..14f0beb 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.20250315 +# version: 0.19.20250917 # -# REGENDATA ("0.19.20250315",["github","cabal.project"]) +# REGENDATA ("0.19.20250917",["github","cabal.project"]) # name: Haskell-CI on: @@ -20,6 +20,9 @@ on: pull_request: branches: - master + merge_group: + branches: + - master jobs: linux: name: Haskell-CI - Linux - ${{ matrix.compiler }} @@ -32,14 +35,19 @@ jobs: strategy: matrix: include: + - compiler: ghc-9.10.3 + compilerKind: ghc + compilerVersion: 9.10.3 + setup-method: ghcup + allow-failure: true - compiler: ghc-9.8.4 compilerKind: ghc compilerVersion: 9.8.4 setup-method: ghcup allow-failure: true - - compiler: ghc-9.6.6 + - compiler: ghc-9.6.7 compilerKind: ghc - compilerVersion: 9.6.6 + compilerVersion: 9.6.7 setup-method: ghcup allow-failure: true - compiler: ghc-9.4.8 @@ -71,12 +79,12 @@ jobs: - name: Install GHCup run: | mkdir -p "$HOME/.ghcup/bin" - curl -sL https://downloads.haskell.org/ghcup/0.1.40.0/x86_64-linux-ghcup-0.1.40.0 > "$HOME/.ghcup/bin/ghcup" + curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup" chmod a+x "$HOME/.ghcup/bin/ghcup" - name: Install cabal-install 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" 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: | @@ -152,7 +160,7 @@ jobs: chmod a+x $HOME/.cabal/bin/cabal-plan cabal-plan --version - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: source - name: initial cabal.project for sdist @@ -177,10 +185,16 @@ jobs: touch cabal.project.local echo "packages: ${PKGDIR_web_template}" >> cabal.project echo "package web-template" >> 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 web-template" >> 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 web-template" >> 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.local cat cabal.project diff --git a/CHANGELOG.md b/CHANGELOG.md index 63700ca..c8a305d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.1.3.17] - 2025-09-27 +### Changed +- Update for GHC 9.6, 9.8, 9.10. + ## [0.1.3.16] - 2025-03-27 ### Changed - `Permit` does not overwrite 403 response description of deeper layers. diff --git a/cabal.project b/cabal.project index d1615a1..4621a4a 100644 --- a/cabal.project +++ b/cabal.project @@ -24,4 +24,10 @@ source-repository-package subdir: generic-override-aeson --sha256: 1qqb39lw71q7637bh2xpdcxrkyh9r6r55z2xmkgcgbwvx0wi5l9l -allow-newer: openid-connect:text, openid-connect:mtl +source-repository-package + type: git + location: https://github.com/pjones/openid-connect + tag: ea9ccbadaa69d60a579df0fff1667115831e3677 + +allow-newer: scotty:bytestring, scotty:text +allow-newer: openid-connect:containers, openid-connect:lens diff --git a/src/Web/Template/Servant/Auth.hs b/src/Web/Template/Servant/Auth.hs index f55c259..a86c293 100644 --- a/src/Web/Template/Servant/Auth.hs +++ b/src/Web/Template/Servant/Auth.hs @@ -24,7 +24,8 @@ module Web.Template.Servant.Auth import Control.Applicative ((<|>)) import Control.Lens (Iso', at, coerced, ix, (&), (.~), (<&>), (?~), (^..), (^?)) -import Control.Monad.Except (runExceptT, unless) +import Control.Monad (unless) +import Control.Monad.Except (runExceptT) import Control.Monad.IO.Class (MonadIO, liftIO) import Data.IORef (readIORef, writeIORef) import Data.Maybe (catMaybes) diff --git a/web-template.cabal b/web-template.cabal index e485cff..8ba5b5a 100644 --- a/web-template.cabal +++ b/web-template.cabal @@ -1,5 +1,5 @@ name: web-template -version: 0.1.3.16 +version: 0.1.3.17 synopsis: Web template description: Web template includes: @@ -24,8 +24,9 @@ tested-with: || ==9.0.2 || ==9.2.8 || ==9.4.8 - || ==9.6.6 + || ==9.6.7 || ==9.8.4 + || ==9.10.3 library hs-source-dirs: src @@ -52,8 +53,6 @@ library , cache , clock , cookie - , data-default - , fast-logger , file-embed-lzma , generic-override >= 0.2.0.0 , generic-override-aeson @@ -80,8 +79,6 @@ library , time , vault , wai - , wai-extra - , wai-logger , warp default-language: Haskell2010 default-extensions: AllowAmbiguousTypes @@ -115,14 +112,10 @@ executable web-template-servant ghc-options: -threaded -rtsopts build-depends: base , aeson - , network-uri , openapi3 , servant-openapi3 , servant-server - , servant-swagger-ui , text - , wai - , warp , web-template default-language: Haskell2010