Skip to content

Commit eace06c

Browse files
authored
Merge pull request #313 from well-typed/base18
Fix #310 : support ghc-9.6
2 parents e7479b1 + 978fe53 commit eace06c

File tree

6 files changed

+64
-50
lines changed

6 files changed

+64
-50
lines changed

.github/workflows/haskell-ci.yml

+37-26
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.15.20220920
11+
# version: 0.16
1212
#
13-
# REGENDATA ("0.15.20220920",["github","cabal.project"])
13+
# REGENDATA ("0.16",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -28,6 +28,11 @@ jobs:
2828
strategy:
2929
matrix:
3030
include:
31+
- compiler: ghc-9.6.1
32+
compilerKind: ghc
33+
compilerVersion: 9.6.1
34+
setup-method: ghcup
35+
allow-failure: false
3136
- compiler: ghc-9.4.2
3237
compilerKind: ghc
3338
compilerVersion: 9.4.2
@@ -71,18 +76,18 @@ jobs:
7176
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
7277
if [ "${{ matrix.setup-method }}" = ghcup ]; then
7378
mkdir -p "$HOME/.ghcup/bin"
74-
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
79+
curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
7580
chmod a+x "$HOME/.ghcup/bin/ghcup"
7681
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
77-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
82+
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
7883
else
7984
apt-add-repository -y 'ppa:hvr/ghc'
8085
apt-get update
8186
apt-get install -y "$HCNAME"
8287
mkdir -p "$HOME/.ghcup/bin"
83-
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
88+
curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
8489
chmod a+x "$HOME/.ghcup/bin/ghcup"
85-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
90+
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
8691
fi
8792
env:
8893
HCKIND: ${{ matrix.compilerKind }}
@@ -100,13 +105,13 @@ jobs:
100105
echo "HC=$HC" >> "$GITHUB_ENV"
101106
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
102107
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
103-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
108+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
104109
else
105110
HC=$HCDIR/bin/$HCKIND
106111
echo "HC=$HC" >> "$GITHUB_ENV"
107112
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
108113
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
109-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
114+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
110115
fi
111116
112117
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
@@ -158,23 +163,23 @@ jobs:
158163
- name: install cabal-plan
159164
run: |
160165
mkdir -p $HOME/.cabal/bin
161-
curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
162-
echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c -
166+
curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3.0/cabal-plan-0.7.3.0-x86_64-linux.xz > cabal-plan.xz
167+
echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
163168
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
164169
rm -f cabal-plan.xz
165170
chmod a+x $HOME/.cabal/bin/cabal-plan
166171
cabal-plan --version
167172
- name: checkout
168-
uses: actions/checkout@v2
173+
uses: actions/checkout@v3
169174
with:
170175
path: source
171176
- name: initial cabal.project for sdist
172177
run: |
173178
touch cabal.project
174179
echo "packages: $GITHUB_WORKSPACE/source/cborg" >> cabal.project
175180
echo "packages: $GITHUB_WORKSPACE/source/cbor-tool" >> cabal.project
176-
echo "packages: $GITHUB_WORKSPACE/source/serialise" >> cabal.project
177-
echo "packages: $GITHUB_WORKSPACE/source/binary-serialise-cbor" >> cabal.project
181+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/serialise" >> cabal.project ; fi
182+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/binary-serialise-cbor" >> cabal.project ; fi
178183
echo "packages: $GITHUB_WORKSPACE/source/cborg-json" >> cabal.project
179184
cat cabal.project
180185
- name: sdist
@@ -202,17 +207,17 @@ jobs:
202207
touch cabal.project.local
203208
echo "packages: ${PKGDIR_cborg}" >> cabal.project
204209
echo "packages: ${PKGDIR_cbor_tool}" >> cabal.project
205-
echo "packages: ${PKGDIR_serialise}" >> cabal.project
206-
echo "packages: ${PKGDIR_binary_serialise_cbor}" >> cabal.project
210+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: ${PKGDIR_serialise}" >> cabal.project ; fi
211+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: ${PKGDIR_binary_serialise_cbor}" >> cabal.project ; fi
207212
echo "packages: ${PKGDIR_cborg_json}" >> cabal.project
208213
echo "package cborg" >> cabal.project
209214
echo " ghc-options: -Werror=missing-methods" >> cabal.project
210215
echo "package cbor-tool" >> cabal.project
211216
echo " ghc-options: -Werror=missing-methods" >> cabal.project
212-
echo "package serialise" >> cabal.project
213-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
214-
echo "package binary-serialise-cbor" >> cabal.project
215-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
217+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "package serialise" >> cabal.project ; fi
218+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
219+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "package binary-serialise-cbor" >> cabal.project ; fi
220+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
216221
echo "package cborg-json" >> cabal.project
217222
echo " ghc-options: -Werror=missing-methods" >> cabal.project
218223
cat >> cabal.project <<EOF
@@ -225,8 +230,8 @@ jobs:
225230
run: |
226231
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
227232
cabal-plan
228-
- name: cache
229-
uses: actions/cache@v2
233+
- name: restore cache
234+
uses: actions/cache/restore@v3
230235
with:
231236
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
232237
path: ~/.cabal/store
@@ -250,16 +255,22 @@ jobs:
250255
${CABAL} -vnormal check
251256
cd ${PKGDIR_cbor_tool} || false
252257
${CABAL} -vnormal check
253-
cd ${PKGDIR_serialise} || false
254-
${CABAL} -vnormal check
255-
cd ${PKGDIR_binary_serialise_cbor} || false
256-
${CABAL} -vnormal check
258+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cd ${PKGDIR_serialise} || false ; fi
259+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
260+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cd ${PKGDIR_binary_serialise_cbor} || false ; fi
261+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
257262
cd ${PKGDIR_cborg_json} || false
258263
${CABAL} -vnormal check
259264
- name: haddock
260265
run: |
261-
$CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
266+
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
262267
- name: unconstrained build
263268
run: |
264269
rm -f cabal.project.local
265270
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
271+
- name: save cache
272+
uses: actions/cache/save@v3
273+
if: always()
274+
with:
275+
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
276+
path: ~/.cabal/store

binary-serialise-cbor/binary-serialise-cbor.cabal

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ library
5151
exposed-modules: Data.Binary.Serialise.CBOR.Read
5252

5353
build-depends:
54-
base >= 4.11 && < 4.18,
54+
base >= 4.11 && < 4.19,
5555
bytestring < 1.0,
5656

5757
cborg == 0.2.*,

cbor-tool/cbor-tool.cabal

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ tested-with:
2121
GHC == 8.10.7,
2222
GHC == 9.0.1,
2323
GHC == 9.2.2,
24-
GHC == 9.4.2
24+
GHC == 9.4.2,
25+
GHC == 9.6.1
2526

2627
executable cbor-tool
2728
main-is: Main.hs
2829
other-extensions: CPP, BangPatterns
2930
ghc-options: -Wall
3031
build-depends:
31-
base >=4.11 && <4.18,
32+
base >=4.11 && <4.19,
3233
filepath >=1.0 && <1.5,
3334
aeson >=0.7 && <2.2,
3435
aeson-pretty >=0.8 && <0.9,

cborg-json/cborg-json.cabal

+5-4
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@ tested-with:
2323
GHC == 8.10.7,
2424
GHC == 9.0.1,
2525
GHC == 9.2.2,
26-
GHC == 9.4.2
26+
GHC == 9.4.2,
27+
GHC == 9.6.1
2728

2829
library
2930
exposed-modules: Codec.CBOR.JSON
3031
ghc-options: -Wall
3132
build-depends:
32-
base >=4.11 && < 4.18,
33+
base >=4.11 && < 4.19,
3334
aeson >=0.7 && <2.2,
3435
aeson-pretty >=0.8 && <0.9,
3536
unordered-containers >=0.2 && <0.3,
@@ -59,9 +60,9 @@ benchmark bench
5960
other-modules:
6061

6162
build-depends:
62-
base >= 4.11 && < 4.18,
63+
base >= 4.11 && < 4.19,
6364
bytestring >= 0.10.4 && < 0.12,
64-
criterion >= 1.0 && < 1.6,
65+
criterion >= 1.0 && < 1.7,
6566
deepseq >= 1.0 && < 1.5,
6667
zlib >= 0.5 && < 0.7,
6768
directory,

cborg/cborg.cabal

+5-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ tested-with:
1919
GHC == 8.10.7,
2020
GHC == 9.0.1,
2121
GHC == 9.2.2,
22-
GHC == 9.4.2
22+
GHC == 9.4.2,
23+
GHC == 9.6.1
2324

2425
extra-source-files:
2526
ChangeLog.md
@@ -89,11 +90,11 @@ library
8990

9091
build-depends:
9192
array >= 0.4 && < 0.6,
92-
base >= 4.11 && < 4.18,
93+
base >= 4.11 && < 4.19,
9394
bytestring >= 0.10.4 && < 0.12,
9495
containers >= 0.5 && < 0.7,
9596
deepseq >= 1.0 && < 1.5,
96-
ghc-prim >= 0.3.1.0 && < 0.10,
97+
ghc-prim >= 0.3.1.0 && < 0.11,
9798
half >= 0.2.2.3 && < 0.4,
9899
primitive >= 0.5 && < 0.9,
99100
text >= 1.1 && < 1.3 || >= 2.0 && <2.1
@@ -147,7 +148,7 @@ test-suite tests
147148

148149
build-depends:
149150
array >= 0.4 && < 0.6,
150-
base >= 4.11 && < 4.18,
151+
base >= 4.11 && < 4.19,
151152
base-orphans,
152153
bytestring >= 0.10.4 && < 0.12,
153154
text >= 1.1 && < 2.1,

serialise/serialise.cabal

+13-13
Original file line numberDiff line numberDiff line change
@@ -69,18 +69,18 @@ library
6969
Codec.Serialise.Internal.GeneralisedUTF8
7070

7171
build-depends:
72-
base >= 4.11 && < 4.18,
72+
base >= 4.11 && < 4.19,
7373
array >= 0.4 && < 0.6,
7474
bytestring >= 0.10.4 && < 0.12,
7575
cborg == 0.2.*,
7676
containers >= 0.5 && < 0.7,
77-
ghc-prim >= 0.3.1.0 && < 0.10,
77+
ghc-prim >= 0.3.1.0 && < 0.11,
7878
half >= 0.2.2.3 && < 0.4,
7979
hashable >= 1.2 && < 2.0,
8080
primitive >= 0.5 && < 0.9,
81-
strict >= 0.4 && < 0.5,
81+
strict >= 0.4 && < 0.6,
8282
text >= 1.1 && < 2.1,
83-
these >= 1.1 && < 1.2,
83+
these >= 1.1 && < 1.3,
8484
unordered-containers >= 0.2 && < 0.3,
8585
vector >= 0.10 && < 0.14
8686

@@ -124,7 +124,7 @@ test-suite tests
124124
Tests.GeneralisedUTF8
125125

126126
build-depends:
127-
base >= 4.11 && < 4.18,
127+
base >= 4.11 && < 4.19,
128128
bytestring >= 0.10.4 && < 0.12,
129129
directory >= 1.0 && < 1.4,
130130
filepath >= 1.0 && < 1.5,
@@ -161,15 +161,15 @@ benchmark instances
161161
Instances.Time
162162

163163
build-depends:
164-
base >= 4.11 && < 4.18,
164+
base >= 4.11 && < 4.19,
165165
binary >= 0.7 && < 0.11,
166166
bytestring >= 0.10.4 && < 0.12,
167167
vector >= 0.10 && < 0.14,
168168
cborg,
169169
serialise,
170170

171171
deepseq >= 1.0 && < 1.5,
172-
criterion >= 1.0 && < 1.6
172+
criterion >= 1.0 && < 1.7
173173

174174
if flag(newtime15)
175175
build-depends:
@@ -205,17 +205,17 @@ benchmark micro
205205
SimpleVersus
206206

207207
build-depends:
208-
base >= 4.11 && < 4.18,
208+
base >= 4.11 && < 4.19,
209209
binary >= 0.7 && < 0.11,
210210
bytestring >= 0.10.4 && < 0.12,
211-
ghc-prim >= 0.3.1.0 && < 0.10,
211+
ghc-prim >= 0.3.1.0 && < 0.11,
212212
vector >= 0.10 && < 0.14,
213213
cborg,
214214
serialise,
215215

216216
aeson >= 0.7 && < 2.2,
217217
deepseq >= 1.0 && < 1.5,
218-
criterion >= 1.0 && < 1.6,
218+
criterion >= 1.0 && < 1.7,
219219
cereal >= 0.5.2.0 && < 0.6,
220220
cereal-vector >= 0.2 && < 0.3,
221221
semigroups >= 0.18 && < 0.21,
@@ -251,12 +251,12 @@ benchmark versus
251251
Macro.CBOR
252252

253253
build-depends:
254-
base >= 4.11 && < 4.18,
254+
base >= 4.11 && < 4.19,
255255
array >= 0.4 && < 0.6,
256256
binary >= 0.7 && < 0.11,
257257
bytestring >= 0.10.4 && < 0.12,
258258
directory >= 1.0 && < 1.4,
259-
ghc-prim >= 0.3.1.0 && < 0.10,
259+
ghc-prim >= 0.3.1.0 && < 0.11,
260260
fail >= 4.9.0.0 && < 4.10,
261261
text >= 1.1 && < 2.1,
262262
vector >= 0.10 && < 0.14,
@@ -272,7 +272,7 @@ benchmark versus
272272
tar >= 0.4 && < 0.6,
273273
zlib >= 0.5 && < 0.7,
274274
pretty >= 1.0 && < 1.2,
275-
criterion >= 1.0 && < 1.6,
275+
criterion >= 1.0 && < 1.7,
276276
store >= 0.7.1 && < 0.8,
277277
semigroups
278278

0 commit comments

Comments
 (0)