Skip to content

Commit 7c60e1a

Browse files
committed
Support GHC-8.6.5..GHC-9.10.1
1 parent 9ce7e21 commit 7c60e1a

File tree

5 files changed

+51
-450
lines changed

5 files changed

+51
-450
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 34 additions & 83 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.17.20231010
11+
# version: 0.19.20240514
1212
#
13-
# REGENDATA ("0.17.20231010",["github","cabal.project"])
13+
# REGENDATA ("0.19.20240514",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -27,24 +27,29 @@ jobs:
2727
timeout-minutes:
2828
60
2929
container:
30-
image: buildpack-deps:bionic
30+
image: buildpack-deps:jammy
3131
continue-on-error: ${{ matrix.allow-failure }}
3232
strategy:
3333
matrix:
3434
include:
35-
- compiler: ghc-9.8.1
35+
- compiler: ghc-9.10.1
3636
compilerKind: ghc
37-
compilerVersion: 9.8.1
37+
compilerVersion: 9.10.1
3838
setup-method: ghcup
3939
allow-failure: false
40-
- compiler: ghc-9.6.3
40+
- compiler: ghc-9.8.2
4141
compilerKind: ghc
42-
compilerVersion: 9.6.3
42+
compilerVersion: 9.8.2
4343
setup-method: ghcup
4444
allow-failure: false
45-
- compiler: ghc-9.4.7
45+
- compiler: ghc-9.6.5
4646
compilerKind: ghc
47-
compilerVersion: 9.4.7
47+
compilerVersion: 9.6.5
48+
setup-method: ghcup
49+
allow-failure: false
50+
- compiler: ghc-9.4.8
51+
compilerKind: ghc
52+
compilerVersion: 9.4.8
4853
setup-method: ghcup
4954
allow-failure: false
5055
- compiler: ghc-9.2.8
@@ -65,69 +70,24 @@ jobs:
6570
- compiler: ghc-8.8.4
6671
compilerKind: ghc
6772
compilerVersion: 8.8.4
68-
setup-method: hvr-ppa
73+
setup-method: ghcup
6974
allow-failure: false
7075
- compiler: ghc-8.6.5
7176
compilerKind: ghc
7277
compilerVersion: 8.6.5
73-
setup-method: hvr-ppa
74-
allow-failure: false
75-
- compiler: ghc-8.4.4
76-
compilerKind: ghc
77-
compilerVersion: 8.4.4
78-
setup-method: hvr-ppa
79-
allow-failure: false
80-
- compiler: ghc-8.2.2
81-
compilerKind: ghc
82-
compilerVersion: 8.2.2
83-
setup-method: hvr-ppa
84-
allow-failure: false
85-
- compiler: ghc-8.0.2
86-
compilerKind: ghc
87-
compilerVersion: 8.0.2
88-
setup-method: hvr-ppa
89-
allow-failure: false
90-
- compiler: ghc-7.10.3
91-
compilerKind: ghc
92-
compilerVersion: 7.10.3
93-
setup-method: hvr-ppa
94-
allow-failure: false
95-
- compiler: ghc-7.8.4
96-
compilerKind: ghc
97-
compilerVersion: 7.8.4
98-
setup-method: hvr-ppa
99-
allow-failure: false
100-
- compiler: ghc-7.6.3
101-
compilerKind: ghc
102-
compilerVersion: 7.6.3
103-
setup-method: hvr-ppa
104-
allow-failure: false
105-
- compiler: ghc-7.4.2
106-
compilerKind: ghc
107-
compilerVersion: 7.4.2
108-
setup-method: hvr-ppa
78+
setup-method: ghcup
10979
allow-failure: false
11080
fail-fast: false
11181
steps:
11282
- name: apt
11383
run: |
11484
apt-get update
11585
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
116-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
117-
mkdir -p "$HOME/.ghcup/bin"
118-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
119-
chmod a+x "$HOME/.ghcup/bin/ghcup"
120-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
121-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
122-
else
123-
apt-add-repository -y 'ppa:hvr/ghc'
124-
apt-get update
125-
apt-get install -y "$HCNAME"
126-
mkdir -p "$HOME/.ghcup/bin"
127-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
128-
chmod a+x "$HOME/.ghcup/bin/ghcup"
129-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
130-
fi
86+
mkdir -p "$HOME/.ghcup/bin"
87+
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
88+
chmod a+x "$HOME/.ghcup/bin/ghcup"
89+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
90+
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
13191
env:
13292
HCKIND: ${{ matrix.compilerKind }}
13393
HCNAME: ${{ matrix.compiler }}
@@ -139,22 +99,13 @@ jobs:
13999
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
140100
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
141101
HCDIR=/opt/$HCKIND/$HCVER
142-
if [ "${{ matrix.setup-method }}" = ghcup ]; then
143-
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
144-
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
145-
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
146-
echo "HC=$HC" >> "$GITHUB_ENV"
147-
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
148-
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
149-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
150-
else
151-
HC=$HCDIR/bin/$HCKIND
152-
echo "HC=$HC" >> "$GITHUB_ENV"
153-
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
154-
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
155-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
156-
fi
157-
102+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
103+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
104+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
105+
echo "HC=$HC" >> "$GITHUB_ENV"
106+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
107+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
108+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
158109
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
159110
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
160111
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -211,7 +162,7 @@ jobs:
211162
chmod a+x $HOME/.cabal/bin/cabal-plan
212163
cabal-plan --version
213164
- name: checkout
214-
uses: actions/checkout@v3
165+
uses: actions/checkout@v4
215166
with:
216167
path: source
217168
- name: initial cabal.project for sdist
@@ -235,19 +186,19 @@ jobs:
235186
touch cabal.project
236187
touch cabal.project.local
237188
echo "packages: ${PKGDIR_binary_orphans}" >> cabal.project
238-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package binary-orphans" >> cabal.project ; fi
239-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
189+
echo "package binary-orphans" >> cabal.project
190+
echo " ghc-options: -Werror=missing-methods" >> cabal.project
240191
cat >> cabal.project <<EOF
241192
EOF
242-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(binary-orphans)$/; }' >> cabal.project.local
193+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(binary-orphans)$/; }' >> cabal.project.local
243194
cat cabal.project
244195
cat cabal.project.local
245196
- name: dump install plan
246197
run: |
247198
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
248199
cabal-plan
249200
- name: restore cache
250-
uses: actions/cache/restore@v3
201+
uses: actions/cache/restore@v4
251202
with:
252203
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
253204
path: ~/.cabal/store
@@ -277,7 +228,7 @@ jobs:
277228
rm -f cabal.project.local
278229
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
279230
- name: save cache
280-
uses: actions/cache/save@v3
231+
uses: actions/cache/save@v4
281232
if: always()
282233
with:
283234
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 1.0.5
2+
3+
- Support GHC-8.6.5..GHC-9.10.1
4+
15
# 1.0.4.1
26

37
- Support OneTuple-0.4

binary-orphans.cabal

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cabal-version: 1.12
22
name: binary-orphans
3-
version: 1.0.4.1
4-
x-revision: 3
3+
version: 1.0.5
54
synopsis: Compatibility package for binary; provides instances
65
category: Data, Binary, Parsing, Compatibility
76
description:
@@ -16,21 +15,15 @@ author: Oleg Grenrus <oleg.grenrus@iki.fi>
1615
license: BSD3
1716
license-file: LICENSE
1817
tested-with:
19-
GHC ==7.4.2
20-
|| ==7.6.3
21-
|| ==7.8.4
22-
|| ==7.10.3
23-
|| ==8.0.2
24-
|| ==8.2.2
25-
|| ==8.4.4
26-
|| ==8.6.5
18+
GHC ==8.6.5
2719
|| ==8.8.4
2820
|| ==8.10.7
2921
|| ==9.0.2
3022
|| ==9.2.8
31-
|| ==9.4.7
32-
|| ==9.6.3
33-
|| ==9.8.1
23+
|| ==9.4.8
24+
|| ==9.6.5
25+
|| ==9.8.2
26+
|| ==9.10.1
3427

3528
extra-source-files: CHANGELOG.md
3629

@@ -45,20 +38,11 @@ library
4538
exposed-modules: Data.Binary.Orphans
4639
other-extensions: CPP
4740
build-depends:
48-
base >=4.5 && <4.20
49-
, binary >=0.5.1.0 && <0.6 || >=0.7.1.0 && <0.8 || >=0.8.3.0 && <0.8.10
50-
, transformers >=0.3.0.0 && <0.7
51-
52-
if !impl(ghc >=7.10)
53-
build-depends: nats >=1.1.2 && <1.2
54-
build-depends: void >=0.7.3 && <0.8
55-
56-
if !impl(ghc >=8.0)
57-
build-depends: fail >=4.9 && <4.10
58-
build-depends: semigroups >=0.18.5 && <0.20.1
41+
base >=4.12.0.0 && <4.21
42+
, binary >=0.8.6.0 && <0.8.10
5943

6044
if !impl(ghc >=9.2)
61-
build-depends: OneTuple >=0.3 && <0.5
45+
build-depends: OneTuple >=0.4.2 && <0.5
6246

6347
if impl(ghc >=8.0 && <9.4)
6448
build-depends: data-array-byte >=0.1.0.1 && <0.2
@@ -74,19 +58,11 @@ test-suite binary-orphans-test
7458
, binary
7559
, binary-orphans
7660
, OneTuple >=0.3 && <0.5
77-
, QuickCheck >=2.13.1 && <2.15
61+
, QuickCheck >=2.13.1 && <2.16
7862
, quickcheck-instances >=0.3.28 && <0.4
7963
, tagged >=0.8.6 && <0.9
8064
, tasty >=0.10.1.2 && <1.6
8165
, tasty-quickcheck >=0.8.3.2 && <0.11
8266

83-
if !impl(ghc >=8.0)
84-
build-depends: semigroups
85-
86-
if !impl(ghc >=7.10)
87-
build-depends:
88-
nats
89-
, void
90-
9167
if impl(ghc >=8.0 && <9.4)
9268
build-depends: data-array-byte

0 commit comments

Comments
 (0)