git.iko.soy/typeable/html-parse
on master help sign in
Add GHC 9.2, 9.4 to tested-with
eb5002aBen Gamari
.github/workflows/haskell-ci.yml+181−28
@@ -8,9 +8,9 @@
8#
8#
9# For more information, see https://github.com/haskell-CI/haskell-ci
9# For more information, see https://github.com/haskell-CI/haskell-ci
10#
10#
11−# version: 0.12.1
11+# version: 0.15.20220812
12#
12#
13−# REGENDATA ("0.12.1",["github","html-parse.cabal"])
13+# REGENDATA ("0.15.20220812",["github","html-parse.cabal"])
14#
14#
15name: Haskell-CI
15name: Haskell-CI
16on:
16on:
@@ -19,94 +19,242 @@ on:
19jobs:
19jobs:
20 linux:
20 linux:
21 name: Haskell-CI - Linux - ${{ matrix.compiler }}
21 name: Haskell-CI - Linux - ${{ matrix.compiler }}
22− runs-on: ubuntu-18.04
22+ runs-on: ubuntu-20.04
23+ timeout-minutes:
24+ 60
23 container:
25 container:
24− image: buildpack-deps:xenial
26+ image: buildpack-deps:bionic
25 continue-on-error: ${{ matrix.allow-failure }}
27 continue-on-error: ${{ matrix.allow-failure }}
26 strategy:
28 strategy:
27 matrix:
29 matrix:
28 include:
30 include:
31+ - compiler: ghc-9.4.1
32+ compilerKind: ghc
33+ compilerVersion: 9.4.1
34+ setup-method: ghcup
35+ allow-failure: false
36+ - compiler: ghc-9.2.4
37+ compilerKind: ghc
38+ compilerVersion: 9.2.4
39+ setup-method: ghcup
40+ allow-failure: false
41+ - compiler: ghc-9.2.3
42+ compilerKind: ghc
43+ compilerVersion: 9.2.3
44+ setup-method: ghcup
45+ allow-failure: false
46+ - compiler: ghc-9.2.2
47+ compilerKind: ghc
48+ compilerVersion: 9.2.2
49+ setup-method: ghcup
50+ allow-failure: false
51+ - compiler: ghc-9.2.1
52+ compilerKind: ghc
53+ compilerVersion: 9.2.1
54+ setup-method: ghcup
55+ allow-failure: false
56+ - compiler: ghc-9.0.2
57+ compilerKind: ghc
58+ compilerVersion: 9.0.2
59+ setup-method: ghcup
60+ allow-failure: false
61+ - compiler: ghc-9.0.1
62+ compilerKind: ghc
63+ compilerVersion: 9.0.1
64+ setup-method: hvr-ppa
65+ allow-failure: false
66+ - compiler: ghc-8.10.7
67+ compilerKind: ghc
68+ compilerVersion: 8.10.7
69+ setup-method: ghcup
70+ allow-failure: false
71+ - compiler: ghc-8.10.6
72+ compilerKind: ghc
73+ compilerVersion: 8.10.6
74+ setup-method: ghcup
75+ allow-failure: false
76+ - compiler: ghc-8.10.5
77+ compilerKind: ghc
78+ compilerVersion: 8.10.5
79+ setup-method: ghcup
80+ allow-failure: false
29 - compiler: ghc-8.10.4
81 - compiler: ghc-8.10.4
82+ compilerKind: ghc
83+ compilerVersion: 8.10.4
84+ setup-method: hvr-ppa
30 allow-failure: false
85 allow-failure: false
31 - compiler: ghc-8.10.3
86 - compiler: ghc-8.10.3
87+ compilerKind: ghc
88+ compilerVersion: 8.10.3
89+ setup-method: hvr-ppa
32 allow-failure: false
90 allow-failure: false
33 - compiler: ghc-8.10.2
91 - compiler: ghc-8.10.2
92+ compilerKind: ghc
93+ compilerVersion: 8.10.2
94+ setup-method: hvr-ppa
34 allow-failure: false
95 allow-failure: false
35 - compiler: ghc-8.10.1
96 - compiler: ghc-8.10.1
97+ compilerKind: ghc
98+ compilerVersion: 8.10.1
99+ setup-method: hvr-ppa
36 allow-failure: false
100 allow-failure: false
37 - compiler: ghc-8.8.4
101 - compiler: ghc-8.8.4
102+ compilerKind: ghc
103+ compilerVersion: 8.8.4
104+ setup-method: hvr-ppa
38 allow-failure: false
105 allow-failure: false
39 - compiler: ghc-8.8.3
106 - compiler: ghc-8.8.3
107+ compilerKind: ghc
108+ compilerVersion: 8.8.3
109+ setup-method: hvr-ppa
40 allow-failure: false
110 allow-failure: false
41 - compiler: ghc-8.8.2
111 - compiler: ghc-8.8.2
112+ compilerKind: ghc
113+ compilerVersion: 8.8.2
114+ setup-method: hvr-ppa
42 allow-failure: false
115 allow-failure: false
43 - compiler: ghc-8.8.1
116 - compiler: ghc-8.8.1
117+ compilerKind: ghc
118+ compilerVersion: 8.8.1
119+ setup-method: hvr-ppa
44 allow-failure: false
120 allow-failure: false
45 - compiler: ghc-8.6.5
121 - compiler: ghc-8.6.5
122+ compilerKind: ghc
123+ compilerVersion: 8.6.5
124+ setup-method: hvr-ppa
46 allow-failure: false
125 allow-failure: false
47 - compiler: ghc-8.6.4
126 - compiler: ghc-8.6.4
127+ compilerKind: ghc
128+ compilerVersion: 8.6.4
129+ setup-method: hvr-ppa
48 allow-failure: false
130 allow-failure: false
49 - compiler: ghc-8.6.3
131 - compiler: ghc-8.6.3
132+ compilerKind: ghc
133+ compilerVersion: 8.6.3
134+ setup-method: hvr-ppa
50 allow-failure: false
135 allow-failure: false
51 - compiler: ghc-8.6.2
136 - compiler: ghc-8.6.2
137+ compilerKind: ghc
138+ compilerVersion: 8.6.2
139+ setup-method: hvr-ppa
52 allow-failure: false
140 allow-failure: false
53 - compiler: ghc-8.6.1
141 - compiler: ghc-8.6.1
142+ compilerKind: ghc
143+ compilerVersion: 8.6.1
144+ setup-method: hvr-ppa
54 allow-failure: false
145 allow-failure: false
55 - compiler: ghc-8.4.4
146 - compiler: ghc-8.4.4
147+ compilerKind: ghc
148+ compilerVersion: 8.4.4
149+ setup-method: hvr-ppa
56 allow-failure: false
150 allow-failure: false
57 - compiler: ghc-8.4.3
151 - compiler: ghc-8.4.3
152+ compilerKind: ghc
153+ compilerVersion: 8.4.3
154+ setup-method: hvr-ppa
58 allow-failure: false
155 allow-failure: false
59 - compiler: ghc-8.4.2
156 - compiler: ghc-8.4.2
157+ compilerKind: ghc
158+ compilerVersion: 8.4.2
159+ setup-method: hvr-ppa
60 allow-failure: false
160 allow-failure: false
61 - compiler: ghc-8.4.1
161 - compiler: ghc-8.4.1
162+ compilerKind: ghc
163+ compilerVersion: 8.4.1
164+ setup-method: hvr-ppa
62 allow-failure: false
165 allow-failure: false
63 - compiler: ghc-8.2.2
166 - compiler: ghc-8.2.2
167+ compilerKind: ghc
168+ compilerVersion: 8.2.2
169+ setup-method: hvr-ppa
64 allow-failure: false
170 allow-failure: false
65 - compiler: ghc-8.2.1
171 - compiler: ghc-8.2.1
172+ compilerKind: ghc
173+ compilerVersion: 8.2.1
174+ setup-method: hvr-ppa
66 allow-failure: false
175 allow-failure: false
67 - compiler: ghc-8.0.2
176 - compiler: ghc-8.0.2
177+ compilerKind: ghc
178+ compilerVersion: 8.0.2
179+ setup-method: hvr-ppa
68 allow-failure: false
180 allow-failure: false
69 - compiler: ghc-8.0.1
181 - compiler: ghc-8.0.1
182+ compilerKind: ghc
183+ compilerVersion: 8.0.1
184+ setup-method: hvr-ppa
70 allow-failure: false
185 allow-failure: false
71 - compiler: ghc-7.10.3
186 - compiler: ghc-7.10.3
187+ compilerKind: ghc
188+ compilerVersion: 7.10.3
189+ setup-method: hvr-ppa
72 allow-failure: false
190 allow-failure: false
73 - compiler: ghc-7.10.2
191 - compiler: ghc-7.10.2
192+ compilerKind: ghc
193+ compilerVersion: 7.10.2
194+ setup-method: hvr-ppa
74 allow-failure: false
195 allow-failure: false
75 - compiler: ghc-7.10.1
196 - compiler: ghc-7.10.1
197+ compilerKind: ghc
198+ compilerVersion: 7.10.1
199+ setup-method: hvr-ppa
76 allow-failure: false
200 allow-failure: false
77 fail-fast: false
201 fail-fast: false
78 steps:
202 steps:
79 - name: apt
203 - name: apt
80 run: |
204 run: |
81 apt-get update
205 apt-get update
82− apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common
206+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
207+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
208+ mkdir -p "$HOME/.ghcup/bin"
209+ curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
210+ chmod a+x "$HOME/.ghcup/bin/ghcup"
211+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
212+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
213+ else
83− apt-add-repository -y 'ppa:hvr/ghc'
214+ apt-add-repository -y 'ppa:hvr/ghc'
84− apt-get update
215+ apt-get update
85− apt-get install -y $CC cabal-install-3.4
216+ apt-get install -y "$HCNAME"
217+ mkdir -p "$HOME/.ghcup/bin"
218+ curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
219+ chmod a+x "$HOME/.ghcup/bin/ghcup"
220+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
221+ fi
86 env:
222 env:
223+ HCKIND: ${{ matrix.compilerKind }}
87− CC: ${{ matrix.compiler }}
224+ HCNAME: ${{ matrix.compiler }}
225+ HCVER: ${{ matrix.compilerVersion }}
88 - name: Set PATH and environment variables
226 - name: Set PATH and environment variables
89 run: |
227 run: |
90 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
228 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
91− echo "LANG=C.UTF-8" >> $GITHUB_ENV
229+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
92− echo "CABAL_DIR=$HOME/.cabal" >> $GITHUB_ENV
230+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
93− echo "CABAL_CONFIG=$HOME/.cabal/config" >> $GITHUB_ENV
231+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
94− HCDIR=$(echo "/opt/$CC" | sed 's/-/\//')
232+ HCDIR=/opt/$HCKIND/$HCVER
95− HCNAME=ghc
233+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
96− HC=$HCDIR/bin/$HCNAME
234+ HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
97− echo "HC=$HC" >> $GITHUB_ENV
235+ echo "HC=$HC" >> "$GITHUB_ENV"
98− echo "HCPKG=$HCDIR/bin/$HCNAME-pkg" >> $GITHUB_ENV
236+ echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
99− echo "HADDOCK=$HCDIR/bin/haddock" >> $GITHUB_ENV
237+ echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
238+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
239+ else
240+ HC=$HCDIR/bin/$HCKIND
241+ echo "HC=$HC" >> "$GITHUB_ENV"
242+ echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
243+ echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
100− echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> $GITHUB_ENV
244+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
245+ fi
246+
101 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
247 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
102− echo "HCNUMVER=$HCNUMVER" >> $GITHUB_ENV
248+ echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
103− echo "ARG_TESTS=--enable-tests" >> $GITHUB_ENV
249+ echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
104− echo "ARG_BENCH=--enable-benchmarks" >> $GITHUB_ENV
250+ echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
105− echo "HEADHACKAGE=false" >> $GITHUB_ENV
251+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
106− echo "ARG_COMPILER=--$HCNAME --with-compiler=$HC" >> $GITHUB_ENV
252+ echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
107− echo "GHCJSARITH=0" >> $GITHUB_ENV
253+ echo "GHCJSARITH=0" >> "$GITHUB_ENV"
108 env:
254 env:
255+ HCKIND: ${{ matrix.compilerKind }}
109− CC: ${{ matrix.compiler }}
256+ HCNAME: ${{ matrix.compiler }}
257+ HCVER: ${{ matrix.compilerVersion }}
110 - name: env
258 - name: env
111 run: |
259 run: |
112 env
260 env
@@ -129,6 +277,10 @@ jobs:
129 repository hackage.haskell.org
277 repository hackage.haskell.org
130 url: http://hackage.haskell.org/
278 url: http://hackage.haskell.org/
131 EOF
279 EOF
280+ cat >> $CABAL_CONFIG <<EOF
281+ program-default-options
282+ ghc-options: $GHCJOBS +RTS -M3G -RTS
283+ EOF
132 cat $CABAL_CONFIG
284 cat $CABAL_CONFIG
133 - name: versions
285 - name: versions
134 run: |
286 run: |
@@ -167,7 +319,8 @@ jobs:
167 - name: generate cabal.project
319 - name: generate cabal.project
168 run: |
320 run: |
169 PKGDIR_html_parse="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/html-parse-[0-9.]*')"
321 PKGDIR_html_parse="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/html-parse-[0-9.]*')"
170− echo "PKGDIR_html_parse=${PKGDIR_html_parse}" >> $GITHUB_ENV
322+ echo "PKGDIR_html_parse=${PKGDIR_html_parse}" >> "$GITHUB_ENV"
323+ rm -f cabal.project cabal.project.local
171 touch cabal.project
324 touch cabal.project
172 touch cabal.project.local
325 touch cabal.project.local
173 echo "packages: ${PKGDIR_html_parse}" >> cabal.project
326 echo "packages: ${PKGDIR_html_parse}" >> cabal.project
@@ -207,7 +360,7 @@ jobs:
207 ${CABAL} -vnormal check
360 ${CABAL} -vnormal check
208 - name: haddock
361 - name: haddock
209 run: |
362 run: |
210− $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
363+ $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
211 - name: unconstrained build
364 - name: unconstrained build
212 run: |
365 run: |
213 rm -f cabal.project.local
366 rm -f cabal.project.local
gen_entities.pynew file+20
@@ -0,0 +1,20 @@
1+#!/usr/bin/env python3
2+
3+import sys
4+import json
5+
6+# expects entity summary from https://html.spec.whatwg.org/entities.json
7+entities = json.load(sys.stdin)
8+
9+def escape(s):
10+ return s.replace('"', '\\"')
11+
12+print('module Text.HTML.Parser.Entities (entities) where')
13+print('')
14+print('entities :: [(String, String)]')
15+print('entities = [')
16+print(',\n'.join(
17+ f''' ("{name[1:-1]}", "{escape(details['characters'])}")'''
18+ for name, details in entities.items()
19+))
20+print(' ]')
html-parse.cabal+1−1
@@ -52,7 +52,7 @@ copyright: (c) 2016 Ben Gamari
52category: Text
52category: Text
53build-type: Simple
53build-type: Simple
54cabal-version: >=1.10
54cabal-version: >=1.10
55−tested-with: GHC==7.10.* GHC==8.0.*, GHC==8.2.*, GHC==8.4.*, GHC==8.6.*, GHC==8.8.*, GHC==8.10.*
55+tested-with: GHC==7.10.* GHC==8.0.*, GHC==8.2.*, GHC==8.4.*, GHC==8.6.*, GHC==8.8.*, GHC==8.10.*, GHC==9.0.*, GHC==9.2.*, GHC==9.4.*
56
56
57
57
58source-repository head
58source-repository head