Skip to content

Commit d1eb576

Browse files
committed
0.2.5.8 - increase bounds on build dependencies. Update CI to test with GHC 9.14
1 parent 24dc030 commit d1eb576

3 files changed

Lines changed: 119 additions & 62 deletions

File tree

.github/workflows/haskell-ci.yml

Lines changed: 110 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,63 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.14.3
11+
# version: 0.19.20250821
1212
#
13-
# REGENDATA ("0.14.3",["github","reform-happstack.cabal"])
13+
# REGENDATA ("0.19.20250821",["github","reform-happstack.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
17-
- push
18-
- pull_request
17+
push:
18+
branches:
19+
- master
20+
pull_request:
21+
branches:
22+
- master
1923
jobs:
2024
linux:
2125
name: Haskell-CI - Linux - ${{ matrix.compiler }}
22-
runs-on: ubuntu-18.04
26+
runs-on: ubuntu-24.04
2327
timeout-minutes:
2428
60
2529
container:
26-
image: buildpack-deps:bionic
30+
image: buildpack-deps:jammy
2731
continue-on-error: ${{ matrix.allow-failure }}
2832
strategy:
2933
matrix:
3034
include:
31-
- compiler: ghc-9.4.3
35+
- compiler: ghc-9.14.0.20250819
3236
compilerKind: ghc
33-
compilerVersion: 9.4.3
37+
compilerVersion: 9.14.0.20250819
38+
setup-method: ghcup-prerelease
39+
allow-failure: false
40+
- compiler: ghc-9.12.2
41+
compilerKind: ghc
42+
compilerVersion: 9.12.2
43+
setup-method: ghcup
44+
allow-failure: false
45+
- compiler: ghc-9.10.2
46+
compilerKind: ghc
47+
compilerVersion: 9.10.2
48+
setup-method: ghcup
49+
allow-failure: false
50+
- compiler: ghc-9.8.4
51+
compilerKind: ghc
52+
compilerVersion: 9.8.4
53+
setup-method: ghcup
54+
allow-failure: false
55+
- compiler: ghc-9.6.7
56+
compilerKind: ghc
57+
compilerVersion: 9.6.7
58+
setup-method: ghcup
59+
allow-failure: false
60+
- compiler: ghc-9.4.8
61+
compilerKind: ghc
62+
compilerVersion: 9.4.8
3463
setup-method: ghcup
3564
allow-failure: false
36-
- compiler: ghc-9.2.5
65+
- compiler: ghc-9.2.8
3766
compilerKind: ghc
38-
compilerVersion: 9.2.5
67+
compilerVersion: 9.2.8
3968
setup-method: ghcup
4069
allow-failure: false
4170
- compiler: ghc-9.0.2
@@ -51,49 +80,68 @@ jobs:
5180
- compiler: ghc-8.8.4
5281
compilerKind: ghc
5382
compilerVersion: 8.8.4
54-
setup-method: hvr-ppa
83+
setup-method: ghcup
5584
allow-failure: false
5685
- compiler: ghc-8.6.5
5786
compilerKind: ghc
5887
compilerVersion: 8.6.5
59-
setup-method: hvr-ppa
88+
setup-method: ghcup
6089
allow-failure: false
6190
- compiler: ghc-8.4.4
6291
compilerKind: ghc
6392
compilerVersion: 8.4.4
64-
setup-method: hvr-ppa
93+
setup-method: ghcup
6594
allow-failure: false
6695
- compiler: ghc-8.2.2
6796
compilerKind: ghc
6897
compilerVersion: 8.2.2
69-
setup-method: hvr-ppa
98+
setup-method: ghcup
7099
allow-failure: false
71100
- compiler: ghc-8.0.2
72101
compilerKind: ghc
73102
compilerVersion: 8.0.2
74-
setup-method: hvr-ppa
103+
setup-method: ghcup
75104
allow-failure: false
76105
fail-fast: false
77106
steps:
78-
- name: apt
107+
- name: apt-get install
79108
run: |
80109
apt-get update
81-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
82-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
83-
mkdir -p "$HOME/.ghcup/bin"
84-
curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup"
85-
chmod a+x "$HOME/.ghcup/bin/ghcup"
86-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
87-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
88-
else
89-
apt-add-repository -y 'ppa:hvr/ghc'
90-
apt-get update
91-
apt-get install -y "$HCNAME"
92-
mkdir -p "$HOME/.ghcup/bin"
93-
curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup"
94-
chmod a+x "$HOME/.ghcup/bin/ghcup"
95-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0
96-
fi
110+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
111+
- name: Install GHCup
112+
run: |
113+
mkdir -p "$HOME/.ghcup/bin"
114+
curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
115+
chmod a+x "$HOME/.ghcup/bin/ghcup"
116+
- name: Install cabal-install
117+
run: |
118+
"$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
119+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
120+
- name: Install GHC (GHCup)
121+
if: matrix.setup-method == 'ghcup'
122+
run: |
123+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
124+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
125+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
126+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
127+
echo "HC=$HC" >> "$GITHUB_ENV"
128+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
129+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
130+
env:
131+
HCKIND: ${{ matrix.compilerKind }}
132+
HCNAME: ${{ matrix.compiler }}
133+
HCVER: ${{ matrix.compilerVersion }}
134+
- name: Install GHC (GHCup prerelease)
135+
if: matrix.setup-method == 'ghcup-prerelease'
136+
run: |
137+
"$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases
138+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
139+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
140+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
141+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
142+
echo "HC=$HC" >> "$GITHUB_ENV"
143+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
144+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
97145
env:
98146
HCKIND: ${{ matrix.compilerKind }}
99147
HCNAME: ${{ matrix.compiler }}
@@ -104,28 +152,12 @@ jobs:
104152
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
105153
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
106154
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
107-
HCDIR=/opt/$HCKIND/$HCVER
108-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
109-
HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
110-
echo "HC=$HC" >> "$GITHUB_ENV"
111-
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
112-
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
113-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
114-
else
115-
HC=$HCDIR/bin/$HCKIND
116-
echo "HC=$HC" >> "$GITHUB_ENV"
117-
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
118-
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
119-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
120-
fi
121-
122155
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
123156
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
124157
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
125158
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
126-
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
159+
if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
127160
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
128-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
129161
env:
130162
HCKIND: ${{ matrix.compilerKind }}
131163
HCNAME: ${{ matrix.compiler }}
@@ -152,6 +184,18 @@ jobs:
152184
repository hackage.haskell.org
153185
url: http://hackage.haskell.org/
154186
EOF
187+
if $HEADHACKAGE; then
188+
cat >> $CABAL_CONFIG <<EOF
189+
repository head.hackage.ghc.haskell.org
190+
url: https://ghc.gitlab.haskell.org/head.hackage/
191+
secure: True
192+
root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
193+
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
194+
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
195+
key-threshold: 3
196+
active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
197+
EOF
198+
fi
155199
cat >> $CABAL_CONFIG <<EOF
156200
program-default-options
157201
ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -168,14 +212,14 @@ jobs:
168212
- name: install cabal-plan
169213
run: |
170214
mkdir -p $HOME/.cabal/bin
171-
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
172-
echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c -
215+
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
216+
echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
173217
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
174218
rm -f cabal-plan.xz
175219
chmod a+x $HOME/.cabal/bin/cabal-plan
176220
cabal-plan --version
177221
- name: checkout
178-
uses: actions/checkout@v2
222+
uses: actions/checkout@v4
179223
with:
180224
path: source
181225
- name: initial cabal.project for sdist
@@ -200,18 +244,21 @@ jobs:
200244
touch cabal.project.local
201245
echo "packages: ${PKGDIR_reform_happstack}" >> cabal.project
202246
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package reform-happstack" >> cabal.project ; fi
203-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
247+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
204248
cat >> cabal.project <<EOF
205249
EOF
206-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(reform-happstack)$/; }' >> cabal.project.local
250+
if $HEADHACKAGE; then
251+
echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
252+
fi
253+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(reform-happstack)$/; }' >> cabal.project.local
207254
cat cabal.project
208255
cat cabal.project.local
209256
- name: dump install plan
210257
run: |
211258
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
212259
cabal-plan
213-
- name: cache
214-
uses: actions/cache@v2
260+
- name: restore cache
261+
uses: actions/cache/restore@v4
215262
with:
216263
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
217264
path: ~/.cabal/store
@@ -232,8 +279,14 @@ jobs:
232279
${CABAL} -vnormal check
233280
- name: haddock
234281
run: |
235-
$CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
282+
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
236283
- name: unconstrained build
237284
run: |
238285
rm -f cabal.project.local
239286
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
287+
- name: save cache
288+
if: always()
289+
uses: actions/cache/save@v4
290+
with:
291+
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
292+
path: ~/.cabal/store

cabal.haskell-ci

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
branches: master
2+
3+
error-unused-packages: False
4+
error-incomplete-patterns: False

reform-happstack.cabal

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Name: reform-happstack
2-
Version: 0.2.5.6
2+
Version: 0.2.5.8
33
Synopsis: Happstack support for reform.
44
Description: Reform is a library for building and validating forms using applicative functors. This package add support for using reform with Happstack.
55
Homepage: http://www.happstack.com/
@@ -11,7 +11,7 @@ Copyright: 2012 Jeremy Shaw, Jasper Van der Jeugt, SeeReason Partners
1111
Category: Web
1212
Build-type: Simple
1313
Cabal-version: >=1.10
14-
tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.5, GHC == 9.4.3
14+
tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.8, GHC == 9.4.8, GHC == 9.6.7, GHC == 9.8.4, GHC == 9.10.2, GHC == 9.12.2, GHC == 9.14.1
1515

1616
source-repository head
1717
type: git
@@ -22,10 +22,10 @@ Library
2222
Exposed-modules: Text.Reform.Happstack
2323
Build-depends: base >4 && <5,
2424
bytestring >= 0.9 && < 0.13,
25-
happstack-server >= 7.0 && < 7.9,
25+
happstack-server >= 7.0 && < 7.10,
2626
mtl >= 2.0 && < 2.4,
27-
random >= 1.0 && < 1.3,
27+
random >= 1.0 && < 1.4,
2828
reform >= 0.2 && < 0.4,
29-
text >= 0.11 && < 2.1,
29+
text >= 0.11 && < 2.2,
3030
utf8-string >= 0.3 && < 1.1
3131

0 commit comments

Comments
 (0)