Skip to content

Commit 482bc5a

Browse files
authored
Bumps for GHC 9.6 (#291)
- Bump `tested-with` and Haskell CI to GHC 9.6.1 alpha, 9.4.4 and 9.2.6. - Bump `base` and `unix` for GHC 9.6. - Bump `Cabal-syntax` to `<3.12`. - Update CI 'haskell.yml' to latest versions. - Limit CI to branches `master`, `ci-*` to avoid duplicate runs. Otherwise, we get to run every twice, for the push and the PR update. - Haskell-CI: turn off unconstrained build for GHC 9.6 (head.hackage) The unconstrained build produces failing build plans. Not surprising, given: allow-newer: *:Cabal, *:Cabal-syntax, *:array, *:base, *:binary, *:bytestring, *:containers, *:deepseq, *:directory, *:exceptions, *:filepath, *:ghc, *:ghc-bignum, *:ghc-boot, *:ghc-boot-th, *:ghc-compact, *:ghc-heap, *:ghc-prim, *:ghci, *:haskeline, *:hpc, *:integer-gmp, *:libiserv, *:mtl, *:parsec, *:pretty, *:process, *:rts, *:stm, *:system-cxx-std-lib, *:template-haskell, *:terminfo, *:text, *:time, *:transformers, *:unix, *:xhtml, However, there are also bad build-plans in the regular head.hackage build. So, turning off the unconstrained build did not fix the GHC 9.6.1 build.
1 parent c37c91c commit 482bc5a

File tree

10 files changed

+179
-67
lines changed

10 files changed

+179
-67
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,20 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.15.20220812
11+
# version: 0.15.20230217
1212
#
13-
# REGENDATA ("0.15.20220812",["github","cabal.project"])
13+
# REGENDATA ("0.15.20230217",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
17-
- push
18-
- pull_request
17+
push:
18+
branches:
19+
- master
20+
- ci-*
21+
pull_request:
22+
branches:
23+
- master
24+
- ci-*
1925
jobs:
2026
linux:
2127
name: Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -28,14 +34,19 @@ jobs:
2834
strategy:
2935
matrix:
3036
include:
31-
- compiler: ghc-9.4.1
37+
- compiler: ghc-9.6.0.20230210
3238
compilerKind: ghc
33-
compilerVersion: 9.4.1
39+
compilerVersion: 9.6.0.20230210
40+
setup-method: ghcup
41+
allow-failure: true
42+
- compiler: ghc-9.4.4
43+
compilerKind: ghc
44+
compilerVersion: 9.4.4
3445
setup-method: ghcup
3546
allow-failure: false
36-
- compiler: ghc-9.2.4
47+
- compiler: ghc-9.2.6
3748
compilerKind: ghc
38-
compilerVersion: 9.2.4
49+
compilerVersion: 9.2.6
3950
setup-method: ghcup
4051
allow-failure: false
4152
- compiler: ghc-9.0.2
@@ -105,15 +116,16 @@ jobs:
105116
chmod a+x "$HOME/.ghcup/bin/ghcup"
106117
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
107118
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
108-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
119+
"$HOME/.ghcup/bin/ghcup" install cabal 3.9.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
109120
else
110121
apt-add-repository -y 'ppa:hvr/ghc'
111122
apt-get update
112123
apt-get install -y "$HCNAME"
113124
mkdir -p "$HOME/.ghcup/bin"
114125
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
115126
chmod a+x "$HOME/.ghcup/bin/ghcup"
116-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
127+
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
128+
"$HOME/.ghcup/bin/ghcup" install cabal 3.9.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
117129
fi
118130
env:
119131
HCKIND: ${{ matrix.compilerKind }}
@@ -131,20 +143,20 @@ jobs:
131143
echo "HC=$HC" >> "$GITHUB_ENV"
132144
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
133145
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
134-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
146+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.9.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
135147
else
136148
HC=$HCDIR/bin/$HCKIND
137149
echo "HC=$HC" >> "$GITHUB_ENV"
138150
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
139151
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
140-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
152+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.9.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
141153
fi
142154
143155
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
144156
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
145157
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
146158
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
147-
if [ $((HCNUMVER > 90401)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
159+
if [ $((HCNUMVER >= 90600)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
148160
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
149161
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
150162
env:
@@ -208,7 +220,7 @@ jobs:
208220
chmod a+x $HOME/.cabal/bin/cabal-plan
209221
cabal-plan --version
210222
- name: checkout
211-
uses: actions/checkout@v2
223+
uses: actions/checkout@v3
212224
with:
213225
path: source
214226
- name: initial cabal.project for sdist
@@ -282,8 +294,8 @@ jobs:
282294
run: |
283295
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
284296
cabal-plan
285-
- name: cache
286-
uses: actions/cache@v2
297+
- name: restore cache
298+
uses: actions/cache/restore@v3
287299
with:
288300
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
289301
path: ~/.cabal/store
@@ -319,15 +331,21 @@ jobs:
319331
${CABAL} -vnormal check
320332
- name: haddock
321333
run: |
322-
$CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
334+
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
323335
- name: unconstrained build
324336
run: |
325-
rm -f cabal.project.local
326-
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
337+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then rm -f cabal.project.local ; fi
338+
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all ; fi
327339
- name: prepare for constraint sets
328340
run: |
329341
rm -f cabal.project.local
330342
- name: constraint set no-lukko
331343
run: |
332344
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' --dependencies-only -j2 all ; fi
333345
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' all ; fi
346+
- name: save cache
347+
uses: actions/cache/save@v3
348+
if: always()
349+
with:
350+
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
351+
path: ~/.cabal/store

.github/workflows/haskell.yml

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
name: MacOS, Ubuntu, Windows
22

3-
on: [push, pull_request]
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- ci-*
8+
pull_request:
9+
branches:
10+
- master
11+
- ci-*
412

513
jobs:
614
build:
@@ -9,32 +17,33 @@ jobs:
917
strategy:
1018
fail-fast: false
1119
matrix:
12-
ghc: ['9.4.1', '9.2.4', '9.0.2', '8.10.7']
20+
ghc: ['9.4.4', '9.2.5', '9.0.2', '8.10.7']
1321
os: [ubuntu-latest, macOS-latest, windows-latest]
1422
steps:
15-
- uses: actions/checkout@v2
16-
- uses: haskell/actions/setup@v1
23+
- uses: actions/checkout@v3
24+
25+
- uses: haskell/actions/setup@v2
26+
id: setup
1727
with:
18-
ghc-version: ${{ matrix.ghc }}
28+
ghc-version: ${{ matrix.ghc }}
1929
cabal-version: '3.8.1.0'
30+
cabal-update: true
2031

2132
- name: Cache
22-
uses: actions/cache@v1
33+
uses: actions/cache@v3
2334
env:
24-
cache-name: cache-cabal
35+
cache-name: haskell.yml
2536
with:
26-
path: ~/.cabal
27-
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
28-
restore-keys: |
29-
${{ runner.os }}-build-${{ env.cache-name }}-
30-
${{ runner.os }}-build-
31-
${{ runner.os }}-
37+
path: ${{ steps.setup.outputs.cabal-store }}
38+
key: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/cabal.project') }}
39+
restore-keys: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ matrix.ghc }}-
3240

3341
- name: Install dependencies
3442
run: |
35-
cabal update
3643
cabal build --only-dependencies --enable-tests --enable-benchmarks -vnormal+nowrap all
44+
3745
- name: Build
3846
run: cabal build --enable-tests --enable-benchmarks -j1 -vnormal+nowrap all
47+
3948
- name: Run tests
4049
run: cabal test -j1 -vnormal+nowrap all

cabal.haskell-ci

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1+
branches: master ci-*
2+
13
ghc-head: True
24

5+
-- Andreas, 2023-02-20: see https://github.com/haskell/hackage-security/pull/291
6+
-- unconstrained build with head.hackage produces failing build plans
7+
unconstrained: < 9.6
8+
39
constraint-set no-lukko
410
ghc: >=8.2
511
constraints: hackage-security -lukko

example-client/example-client.cabal

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,20 @@ build-type: Simple
1212
cabal-version: >=1.10
1313

1414
tested-with:
15-
GHC==9.4.1, GHC==9.2.4, GHC==9.0.2,
16-
GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
17-
GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
15+
GHC == 9.6.0
16+
GHC == 9.4.4
17+
GHC == 9.2.6
18+
GHC == 9.0.2
19+
GHC == 8.10.7
20+
GHC == 8.8.4
21+
GHC == 8.6.5
22+
GHC == 8.4.4
23+
GHC == 8.2.2
24+
GHC == 8.0.2
25+
GHC == 7.10.3
26+
GHC == 7.8.4
27+
GHC == 7.6.3
28+
GHC == 7.4.2
1829

1930
flag use-network-uri
2031
description: Are we using network-uri?
@@ -29,7 +40,7 @@ executable example-client
2940
main-is: Main.hs
3041
other-modules: Prelude ExampleClient.Options
3142

32-
build-depends: base >= 4.5 && < 4.18,
43+
build-depends: base >= 4.5 && < 4.19,
3344
bytestring >= 0.9,
3445
directory >= 1.1,
3546
filepath >= 1.2,
@@ -57,7 +68,7 @@ executable example-client
5768
build-depends: network >= 2.5 && < 2.6
5869

5970
if flag(Cabal-syntax)
60-
build-depends: Cabal-syntax >= 3.7 && < 3.9
71+
build-depends: Cabal-syntax >= 3.7 && < 3.12
6172
else
6273
build-depends: Cabal >= 1.12 && < 3.7,
6374
Cabal-syntax < 3.7

hackage-repo-tool/hackage-repo-tool.cabal

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cabal-version: 1.12
22
name: hackage-repo-tool
33
version: 0.1.1.3
4+
x-revision: 2
45

56
build-type: Simple
67
synopsis: Manage secure file-based package repositories
@@ -23,9 +24,20 @@ homepage: https://github.com/haskell/hackage-security
2324
bug-reports: https://github.com/haskell/hackage-security/issues
2425

2526
tested-with:
26-
GHC==9.4.1, GHC==9.2.4, GHC==9.0.2,
27-
GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
28-
GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
27+
GHC == 9.6.0
28+
GHC == 9.4.4
29+
GHC == 9.2.6
30+
GHC == 9.0.2
31+
GHC == 8.10.7
32+
GHC == 8.8.4
33+
GHC == 8.6.5
34+
GHC == 8.4.4
35+
GHC == 8.2.2
36+
GHC == 8.0.2
37+
GHC == 7.10.3
38+
GHC == 7.8.4
39+
GHC == 7.6.3
40+
GHC == 7.4.2
2941

3042
extra-source-files:
3143
ChangeLog.md README.md
@@ -59,13 +71,13 @@ executable hackage-repo-tool
5971

6072
-- For boot libraries we try to accomodate the versions bundled with
6173
-- the respective GHC release
62-
build-depends: base >= 4.5 && < 4.18,
74+
build-depends: base >= 4.5 && < 4.19,
6375
bytestring >= 0.9 && < 0.12,
6476
directory >= 1.1 && < 1.4,
6577
filepath >= 1.3 && < 1.5,
6678
time >= 1.4 && < 1.13
6779
if !os(windows)
68-
build-depends: unix >= 2.5 && < 2.8
80+
build-depends: unix >= 2.5 && < 2.9
6981

7082
if flag(use-old-time)
7183
build-depends: directory < 1.2
@@ -90,7 +102,7 @@ executable hackage-repo-tool
90102
build-depends: network >= 2.5 && < 2.6
91103

92104
if flag(Cabal-syntax)
93-
build-depends: Cabal-syntax >= 3.7 && < 3.10
105+
build-depends: Cabal-syntax >= 3.7 && < 3.12
94106
else
95107
build-depends: Cabal >= 1.14 && < 1.26
96108
|| >= 2.0 && < 2.6

hackage-root-tool/hackage-root-tool.cabal

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,20 @@ build-type: Simple
1616
cabal-version: >=1.10
1717

1818
tested-with:
19-
GHC==9.4.1, GHC==9.2.4, GHC==9.0.2,
20-
GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
21-
GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
19+
GHC == 9.6.0
20+
GHC == 9.4.4
21+
GHC == 9.2.6
22+
GHC == 9.0.2
23+
GHC == 8.10.7
24+
GHC == 8.8.4
25+
GHC == 8.6.5
26+
GHC == 8.4.4
27+
GHC == 8.2.2
28+
GHC == 8.0.2
29+
GHC == 7.10.3
30+
GHC == 7.8.4
31+
GHC == 7.6.3
32+
GHC == 7.4.2
2233

2334
extra-source-files:
2435
ChangeLog.md

hackage-security-HTTP/hackage-security-HTTP.cabal

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cabal-version: 1.12
22
name: hackage-security-HTTP
33
version: 0.1.1.1
4-
x-revision: 2
4+
x-revision: 5
55
synopsis: Hackage security bindings against the HTTP library
66
description: The hackage security library provides a 'HttpLib'
77
abstraction to allow to bind against different HTTP
@@ -18,9 +18,20 @@ bug-reports: https://github.com/haskell/hackage-security/issues
1818
build-type: Simple
1919

2020
tested-with:
21-
GHC==9.4.1, GHC==9.2.4, GHC==9.0.2,
22-
GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
23-
GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
21+
GHC == 9.6.0
22+
GHC == 9.4.4
23+
GHC == 9.2.6
24+
GHC == 9.0.2
25+
GHC == 8.10.7
26+
GHC == 8.8.4
27+
GHC == 8.6.5
28+
GHC == 8.4.4
29+
GHC == 8.2.2
30+
GHC == 8.0.2
31+
GHC == 7.10.3
32+
GHC == 7.8.4
33+
GHC == 7.6.3
34+
GHC == 7.4.2
2435

2536
extra-source-files:
2637
ChangeLog.md
@@ -35,7 +46,7 @@ flag use-network-uri
3546

3647
library
3748
exposed-modules: Hackage.Security.Client.Repository.HttpLib.HTTP
38-
build-depends: base >= 4.5 && < 4.18,
49+
build-depends: base >= 4.5 && < 4.19,
3950
bytestring >= 0.9 && < 0.12,
4051
HTTP >= 4000.2.19 && < 4000.5,
4152
mtl >= 2.1 && < 2.4,

0 commit comments

Comments
 (0)