Skip to content

Commit e29359e

Browse files
authored
Merge pull request #341 from well-typed/wip/bounds-bumps
Upgrade to GHC 9.12
2 parents f702f0a + e1da7ba commit e29359e

File tree

7 files changed

+81
-93
lines changed

7 files changed

+81
-93
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 44 additions & 61 deletions
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.16
11+
# version: 0.19.20250115
1212
#
13-
# REGENDATA ("0.16",["github","cabal.project"])
13+
# REGENDATA ("0.19.20250115",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -23,11 +23,16 @@ jobs:
2323
timeout-minutes:
2424
60
2525
container:
26-
image: buildpack-deps:bionic
26+
image: buildpack-deps:jammy
2727
continue-on-error: ${{ matrix.allow-failure }}
2828
strategy:
2929
matrix:
3030
include:
31+
- compiler: ghc-9.12.1
32+
compilerKind: ghc
33+
compilerVersion: 9.12.1
34+
setup-method: ghcup
35+
allow-failure: false
3136
- compiler: ghc-9.10.1
3237
compilerKind: ghc
3338
compilerVersion: 9.10.1
@@ -38,14 +43,14 @@ jobs:
3843
compilerVersion: 9.8.1
3944
setup-method: ghcup
4045
allow-failure: false
41-
- compiler: ghc-9.6.3
46+
- compiler: ghc-9.6.1
4247
compilerKind: ghc
43-
compilerVersion: 9.6.3
48+
compilerVersion: 9.6.1
4449
setup-method: ghcup
4550
allow-failure: false
46-
- compiler: ghc-9.4.7
51+
- compiler: ghc-9.4.2
4752
compilerKind: ghc
48-
compilerVersion: 9.4.7
53+
compilerVersion: 9.4.2
4954
setup-method: ghcup
5055
allow-failure: false
5156
- compiler: ghc-9.2.2
@@ -56,7 +61,7 @@ jobs:
5661
- compiler: ghc-9.0.1
5762
compilerKind: ghc
5863
compilerVersion: 9.0.1
59-
setup-method: hvr-ppa
64+
setup-method: ghcup
6065
allow-failure: false
6166
- compiler: ghc-8.10.7
6267
compilerKind: ghc
@@ -66,39 +71,33 @@ jobs:
6671
- compiler: ghc-8.8.3
6772
compilerKind: ghc
6873
compilerVersion: 8.8.3
69-
setup-method: hvr-ppa
70-
allow-failure: false
71-
- compiler: ghc-8.6.5
72-
compilerKind: ghc
73-
compilerVersion: 8.6.5
74-
setup-method: hvr-ppa
75-
allow-failure: false
76-
- compiler: ghc-8.4.4
77-
compilerKind: ghc
78-
compilerVersion: 8.4.4
79-
setup-method: hvr-ppa
74+
setup-method: ghcup
8075
allow-failure: false
8176
fail-fast: false
8277
steps:
83-
- name: apt
78+
- name: apt-get install
8479
run: |
8580
apt-get update
8681
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
87-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
88-
mkdir -p "$HOME/.ghcup/bin"
89-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
90-
chmod a+x "$HOME/.ghcup/bin/ghcup"
91-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
92-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
93-
else
94-
apt-add-repository -y 'ppa:hvr/ghc'
95-
apt-get update
96-
apt-get install -y "$HCNAME"
97-
mkdir -p "$HOME/.ghcup/bin"
98-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
99-
chmod a+x "$HOME/.ghcup/bin/ghcup"
100-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
101-
fi
82+
- name: Install GHCup
83+
run: |
84+
mkdir -p "$HOME/.ghcup/bin"
85+
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
86+
chmod a+x "$HOME/.ghcup/bin/ghcup"
87+
- name: Install cabal-install
88+
run: |
89+
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
90+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
91+
- name: Install GHC (GHCup)
92+
if: matrix.setup-method == 'ghcup'
93+
run: |
94+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
95+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
96+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
97+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
98+
echo "HC=$HC" >> "$GITHUB_ENV"
99+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
100+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
102101
env:
103102
HCKIND: ${{ matrix.compilerKind }}
104103
HCNAME: ${{ matrix.compiler }}
@@ -109,28 +108,12 @@ jobs:
109108
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
110109
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
111110
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
112-
HCDIR=/opt/$HCKIND/$HCVER
113-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
114-
HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
115-
echo "HC=$HC" >> "$GITHUB_ENV"
116-
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
117-
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
118-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
119-
else
120-
HC=$HCDIR/bin/$HCKIND
121-
echo "HC=$HC" >> "$GITHUB_ENV"
122-
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
123-
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
124-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
125-
fi
126-
127111
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
128112
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
129113
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
130114
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
131115
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
132116
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
133-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
134117
env:
135118
HCKIND: ${{ matrix.compilerKind }}
136119
HCNAME: ${{ matrix.compiler }}
@@ -180,15 +163,15 @@ jobs:
180163
chmod a+x $HOME/.cabal/bin/cabal-plan
181164
cabal-plan --version
182165
- name: checkout
183-
uses: actions/checkout@v3
166+
uses: actions/checkout@v4
184167
with:
185168
path: source
186169
- name: initial cabal.project for sdist
187170
run: |
188171
touch cabal.project
189172
echo "packages: $GITHUB_WORKSPACE/source/cborg" >> cabal.project
190173
echo "packages: $GITHUB_WORKSPACE/source/cbor-tool" >> cabal.project
191-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/serialise" >> cabal.project ; fi
174+
echo "packages: $GITHUB_WORKSPACE/source/serialise" >> cabal.project
192175
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/binary-serialise-cbor" >> cabal.project ; fi
193176
echo "packages: $GITHUB_WORKSPACE/source/cborg-json" >> cabal.project
194177
cat cabal.project
@@ -217,31 +200,31 @@ jobs:
217200
touch cabal.project.local
218201
echo "packages: ${PKGDIR_cborg}" >> cabal.project
219202
echo "packages: ${PKGDIR_cbor_tool}" >> cabal.project
220-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: ${PKGDIR_serialise}" >> cabal.project ; fi
203+
echo "packages: ${PKGDIR_serialise}" >> cabal.project
221204
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: ${PKGDIR_binary_serialise_cbor}" >> cabal.project ; fi
222205
echo "packages: ${PKGDIR_cborg_json}" >> cabal.project
223206
echo "package cborg" >> cabal.project
224207
echo " ghc-options: -Werror=missing-methods" >> cabal.project
225208
echo "package cbor-tool" >> cabal.project
226209
echo " ghc-options: -Werror=missing-methods" >> cabal.project
227-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "package serialise" >> cabal.project ; fi
228-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
210+
echo "package serialise" >> cabal.project
211+
echo " ghc-options: -Werror=missing-methods" >> cabal.project
229212
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "package binary-serialise-cbor" >> cabal.project ; fi
230213
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
231214
echo "package cborg-json" >> cabal.project
232215
echo " ghc-options: -Werror=missing-methods" >> cabal.project
233216
cat >> cabal.project <<EOF
234217
allow-newer: store-core:text
235218
EOF
236-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(binary-serialise-cbor|cbor-tool|cborg|cborg-json|serialise)$/; }' >> cabal.project.local
219+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(binary-serialise-cbor|cbor-tool|cborg|cborg-json|serialise)$/; }' >> cabal.project.local
237220
cat cabal.project
238221
cat cabal.project.local
239222
- name: dump install plan
240223
run: |
241224
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
242225
cabal-plan
243226
- name: restore cache
244-
uses: actions/cache/restore@v3
227+
uses: actions/cache/restore@v4
245228
with:
246229
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
247230
path: ~/.cabal/store
@@ -265,8 +248,8 @@ jobs:
265248
${CABAL} -vnormal check
266249
cd ${PKGDIR_cbor_tool} || false
267250
${CABAL} -vnormal check
268-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cd ${PKGDIR_serialise} || false ; fi
269-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
251+
cd ${PKGDIR_serialise} || false
252+
${CABAL} -vnormal check
270253
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cd ${PKGDIR_binary_serialise_cbor} || false ; fi
271254
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
272255
cd ${PKGDIR_cborg_json} || false
@@ -279,8 +262,8 @@ jobs:
279262
rm -f cabal.project.local
280263
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
281264
- name: save cache
282-
uses: actions/cache/save@v3
283265
if: always()
266+
uses: actions/cache/save@v4
284267
with:
285268
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
286269
path: ~/.cabal/store

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ category: Codec
1313
build-type: Simple
1414
cabal-version: 1.22
1515
tested-with:
16-
GHC == 8.4.4,
17-
GHC == 8.6.5,
1816
GHC == 8.8.3,
1917
GHC == 8.10.7,
2018
GHC == 9.0.1,
@@ -51,7 +49,7 @@ library
5149
exposed-modules: Data.Binary.Serialise.CBOR.Read
5250

5351
build-depends:
54-
base >= 4.11 && < 4.21,
52+
base >= 4.11 && < 4.22,
5553
bytestring < 1.0,
5654

5755
cborg == 0.2.*,

cbor-tool/cbor-tool.cabal

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,22 @@ build-type: Simple
1515
extra-source-files: ChangeLog.md
1616
cabal-version: >=1.10
1717
tested-with:
18-
GHC == 8.4.4,
19-
GHC == 8.6.5,
2018
GHC == 8.8.3,
2119
GHC == 8.10.7,
2220
GHC == 9.0.1,
2321
GHC == 9.2.2,
2422
GHC == 9.4.2,
25-
GHC == 9.6.1
23+
GHC == 9.6.1,
24+
GHC == 9.8.1,
25+
GHC == 9.10.1,
26+
GHC == 9.12.1
2627

2728
executable cbor-tool
2829
main-is: Main.hs
2930
other-extensions: CPP, BangPatterns
3031
ghc-options: -Wall
3132
build-depends:
32-
base >=4.11 && <4.21,
33+
base >=4.11 && <4.22,
3334
filepath >=1.0 && <1.6,
3435
aeson >=0.7 && <2.3,
3536
aeson-pretty >=0.8 && <0.9,

cborg-json/cborg-json.cabal

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@ build-type: Simple
1717
extra-source-files: ChangeLog.md
1818
cabal-version: >=1.10
1919
tested-with:
20-
GHC == 8.4.4,
21-
GHC == 8.6.5,
2220
GHC == 8.8.3,
2321
GHC == 8.10.7,
2422
GHC == 9.0.1,
2523
GHC == 9.2.2,
2624
GHC == 9.4.2,
27-
GHC == 9.6.1
25+
GHC == 9.6.1,
26+
GHC == 9.8.1,
27+
GHC == 9.10.1,
28+
GHC == 9.12.1
2829

2930
library
3031
exposed-modules: Codec.CBOR.JSON
3132
ghc-options: -Wall
3233
build-depends:
33-
base >=4.11 && < 4.21,
34+
base >=4.11 && < 4.22,
3435
aeson >=0.7 && <2.3,
3536
aeson-pretty >=0.8 && <0.9,
3637
base64-bytestring >=1.0 && <1.3,
@@ -61,7 +62,7 @@ benchmark bench
6162
other-modules:
6263

6364
build-depends:
64-
base >= 4.11 && < 4.21,
65+
base >= 4.11 && < 4.22,
6566
bytestring >= 0.10.4 && < 0.13,
6667
criterion >= 1.0 && < 1.7,
6768
deepseq >= 1.0 && < 1.6,
@@ -87,7 +88,7 @@ test-suite tests
8788
other-modules:
8889

8990
build-depends:
90-
base >= 4.7 && < 4.21,
91+
base >= 4.7 && < 4.22,
9192
base-orphans,
9293
base16-bytestring >= 1.0 && < 1.1,
9394
bytestring >= 0.10.4 && < 0.13,

cborg/cborg.cabal

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@ category: Codec
1313
build-type: Simple
1414
cabal-version: >= 1.10
1515
tested-with:
16-
GHC == 8.4.4,
17-
GHC == 8.6.5,
1816
GHC == 8.8.3,
1917
GHC == 8.10.7,
2018
GHC == 9.0.1,
2119
GHC == 9.2.2,
2220
GHC == 9.4.2,
23-
GHC == 9.6.1
21+
GHC == 9.6.1,
22+
GHC == 9.8.1,
23+
GHC == 9.10.1,
24+
GHC == 9.12.1
2425

2526
extra-source-files:
2627
ChangeLog.md
@@ -90,11 +91,11 @@ library
9091

9192
build-depends:
9293
array >= 0.4 && < 0.6,
93-
base >= 4.11 && < 4.21,
94+
base >= 4.11 && < 4.22,
9495
bytestring >= 0.10.4 && < 0.13,
9596
containers >= 0.5 && < 0.8,
9697
deepseq >= 1.0 && < 1.6,
97-
ghc-prim >= 0.3.1.0 && < 0.12,
98+
ghc-prim >= 0.3.1.0 && < 0.14,
9899
half >= 0.2.2.3 && < 0.4,
99100
primitive >= 0.5 && < 0.10,
100101
text >= 1.1 && < 1.3 || >= 2.0 && <2.2
@@ -148,7 +149,7 @@ test-suite tests
148149

149150
build-depends:
150151
array >= 0.4 && < 0.6,
151-
base >= 4.11 && < 4.21,
152+
base >= 4.11 && < 4.22,
152153
base-orphans,
153154
bytestring >= 0.10.4 && < 0.13,
154155
text >= 1.1 && < 2.2,
@@ -164,7 +165,7 @@ test-suite tests
164165
scientific >= 0.3 && < 0.4,
165166
tasty >= 0.11 && < 1.6,
166167
tasty-hunit >= 0.9 && < 0.11,
167-
tasty-quickcheck >= 0.8 && < 0.11,
168+
tasty-quickcheck >= 0.8 && < 0.12,
168169
vector >= 0.10 && < 0.14
169170
if !impl(ghc >= 8.0)
170171
build-depends:

0 commit comments

Comments
 (0)