diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 16ac18f..779aeea 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -8,9 +8,9 @@ # # For more information, see https://github.com/andreasabel/haskell-ci # -# version: 0.17.20230911 +# version: 0.17.20231002 # -# REGENDATA ("0.17.20230911",["github","microaeson.cabal"]) +# REGENDATA ("0.17.20231002",["github","microaeson.cabal"]) # name: Haskell-CI on: @@ -32,14 +32,14 @@ jobs: strategy: matrix: include: - - compiler: ghc-9.8.0.20230822 + - compiler: ghc-9.8.0.20230929 compilerKind: ghc - compilerVersion: 9.8.0.20230822 + compilerVersion: 9.8.0.20230929 setup-method: ghcup allow-failure: true - - compiler: ghc-9.6.2 + - compiler: ghc-9.6.3 compilerKind: ghc - compilerVersion: 9.6.2 + compilerVersion: 9.6.3 setup-method: ghcup allow-failure: false - compiler: ghc-9.4.7 @@ -77,6 +77,11 @@ jobs: compilerVersion: 8.4.4 setup-method: hvr-ppa allow-failure: false + - compiler: ghc-8.2.2 + compilerKind: ghc + compilerVersion: 8.2.2 + setup-method: hvr-ppa + allow-failure: false - compiler: ghc-8.0.2 compilerKind: ghc compilerVersion: 8.0.2 @@ -229,11 +234,10 @@ jobs: touch cabal.project touch cabal.project.local echo "packages: ${PKGDIR_microaeson}" >> cabal.project - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo "package microaeson" >> cabal.project ; fi - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi + if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package microaeson" >> cabal.project ; fi + if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi cat >> cabal.project <> cabal.project @@ -278,26 +282,13 @@ jobs: - name: prepare for constraint sets run: | rm -f cabal.project.local - - name: constraint set text-2.1-tests - run: | - if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='text ^>= 2.1' all --dry-run ; fi - if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi - if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='text ^>= 2.1' --dependencies-only -j2 all ; fi - if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='text ^>= 2.1' all ; fi - if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='text ^>= 2.1' all ; fi - - name: constraint set text-2.1 - run: | - if [ $((HCNUMVER >= 80400 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='text ^>= 2.1' all --dry-run ; fi - if [ $((HCNUMVER >= 80400 && HCNUMVER < 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi - if [ $((HCNUMVER >= 80400 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='text ^>= 2.1' --dependencies-only -j2 all ; fi - if [ $((HCNUMVER >= 80400 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='text ^>= 2.1' all ; fi - - name: constraint set bytestring-0.12 + - name: constraint set containers-0.7 run: | - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='bytestring ^>= 0.12' --constraint='text < 2.1' all --dry-run ; fi - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then cabal-plan topo | sort ; fi - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='bytestring ^>= 0.12' --constraint='text < 2.1' --dependencies-only -j2 all ; fi - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='bytestring ^>= 0.12' --constraint='text < 2.1' all ; fi - if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='bytestring ^>= 0.12' --constraint='text < 2.1' all ; fi + if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers ^>= 0.7' all --dry-run ; fi + if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi + if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers ^>= 0.7' --dependencies-only -j2 all ; fi + if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers ^>= 0.7' all ; fi + if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers ^>= 0.7' all ; fi - name: save cache uses: actions/cache/save@v3 if: always() diff --git a/cabal.haskell-ci b/cabal.haskell-ci index 89d0b0f..1260b62 100644 --- a/cabal.haskell-ci +++ b/cabal.haskell-ci @@ -1,29 +1,38 @@ branches: master --- `allow-newer: text` breaks aeson in the GHC-8.2 build -enabled: < 8.2 || > 8.3 - -constraint-set bytestring-0.12 - ghc: >= 8.2 - constraints: bytestring ^>= 0.12 - constraints: text < 2.1 - -- otherwise aeson fails to build - tests: True - run-tests: True - -constraint-set text-2.1 +constraint-set containers-0.7 ghc: >= 8.2 && < 9.8 - constraints: text ^>= 2.1 - -- Cannot build aeson with text-2.1 atm (2023-08-31) - tests: False - -constraint-set text-2.1-tests - ghc: >= 9.8 - constraints: text ^>= 2.1 + constraints: containers ^>= 0.7 tests: True run-tests: True --- For constraint-sets raw-project - allow-newer: bytestring - allow-newer: text + allow-newer: containers + +-- -- `allow-newer: text` breaks aeson in the GHC-8.2 build +-- enabled: < 8.2 || > 8.3 +-- +-- constraint-set bytestring-0.12 +-- ghc: >= 8.2 +-- constraints: bytestring ^>= 0.12 +-- constraints: text < 2.1 +-- -- otherwise aeson fails to build +-- tests: True +-- run-tests: True +-- +-- constraint-set text-2.1 +-- ghc: >= 8.2 && < 9.8 +-- constraints: text ^>= 2.1 +-- -- Cannot build aeson with text-2.1 atm (2023-08-31) +-- tests: False +-- +-- constraint-set text-2.1-tests +-- ghc: >= 9.8 +-- constraints: text ^>= 2.1 +-- tests: True +-- run-tests: True +-- +-- -- For constraint-sets +-- raw-project +-- allow-newer: bytestring +-- allow-newer: text diff --git a/microaeson.cabal b/microaeson.cabal index 858a2e8..4a0ef2a 100644 --- a/microaeson.cabal +++ b/microaeson.cabal @@ -22,7 +22,7 @@ The API is designed in such a way to allow to easily convert client code written tested-with: GHC == 9.8.0 - GHC == 9.6.2 + GHC == 9.6.3 GHC == 9.4.7 GHC == 9.2.8 GHC == 9.0.2 @@ -63,6 +63,7 @@ library , bytestring >= 0.10.6.0 && < 0.13 , containers ^>= 0.5.6.2 || ^>= 0.6.0.1 + || ^>= 0.7 , deepseq ^>= 1.4.1.1 || ^>= 1.5.0.0 , fail ^>= 4.9.0.0