Skip to content

Commit 5ba7ffc

Browse files
Release 0.8.0.0
2 parents 3133d4c + 81fbb90 commit 5ba7ffc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+970
-580
lines changed

.github/workflows/ci.yml

Lines changed: 245 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,71 +7,291 @@ on:
77
- develop
88
- main
99

10+
permissions:
11+
contents: read
12+
1013
jobs:
11-
latest-cabal:
14+
config:
15+
name: "Load configuration"
16+
runs-on: ubuntu-latest
17+
outputs:
18+
ghcvers: ${{ steps.set-ghcvers.outputs.ghcvers }}
19+
ghcvers_lower: ${{ steps.set-ghcvers.outputs.ghcvers_lower }}
20+
ghcvers_upper: ${{ steps.set-ghcvers.outputs.ghcvers_upper }}
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
- name: Set ghcvers
25+
id: set-ghcvers
26+
run: ./test-all.sh github >> $GITHUB_OUTPUT
27+
28+
cabal:
1229
name: "Cabal: GHC ${{ matrix.ghc }}"
30+
needs: config
1331
runs-on: ubuntu-latest
1432
strategy:
33+
fail-fast: false
1534
matrix:
16-
ghc: ['8.2.2', '8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.0.2', '9.2.1']
35+
ghc: ${{fromJSON(needs.config.outputs.ghcvers)}}
1736
steps:
1837
- name: Checkout
19-
uses: actions/checkout@v2
38+
uses: actions/checkout@v4
2039
- name: Setup Haskell
21-
uses: haskell/actions/setup@v1
40+
uses: haskell-actions/setup@v2
41+
id: setup
2242
with:
2343
ghc-version: ${{ matrix.ghc }}
2444
cabal-version: latest
45+
cabal-update: true
46+
- name: Setup Environment
47+
run: |
48+
GHC_VERSION=$(ghc --numeric-version)
49+
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
50+
CABAL_VERSION=$(cabal --numeric-version)
51+
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
52+
CABAL_OPTS="--enable-tests --enable-benchmarks"
53+
if [ -f "cabal-${GHC_VERSION}.project" ] ; then
54+
CABAL_OPTS="--project-file=cabal-${GHC_VERSION}.project ${CABAL_OPTS}"
55+
fi
56+
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
57+
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
58+
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
59+
- name: Configure Build
60+
run: |
61+
cabal v2-configure $CABAL_OPTS --disable-documentation
62+
cabal v2-build --dry-run $CABAL_OPTS
63+
- name: Restore Cached Dependencies
64+
uses: actions/cache/restore@v4
65+
id: cache
66+
with:
67+
path: ${{ steps.setup.outputs.cabal-store }}
68+
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
69+
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
70+
- name: Install Dependencies
71+
run: cabal v2-build all $CABAL_OPTS --only-dependencies
72+
- name: Save Cached Dependencies
73+
uses: actions/cache/save@v4
74+
if: ${{ !steps.cache.outputs.cache-hit
75+
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
76+
with:
77+
path: ${{ steps.setup.outputs.cabal-store }}
78+
key: ${{ steps.cache.outputs.cache-primary-key }}
2579
- name: Build
26-
run: cabal new-build --enable-tests --enable-benchmarks
80+
run: cabal v2-build all $CABAL_OPTS
2781
- name: Test
28-
run: cabal new-test --enable-tests
82+
run: cabal v2-test all $CABAL_OPTS
83+
- name: Haddock
84+
run: cabal v2-haddock all $CABAL_OPTS
2985

3086
stack:
3187
name: "Stack: GHC ${{ matrix.ghc }}"
88+
needs: config
3289
runs-on: ubuntu-latest
3390
strategy:
91+
fail-fast: false
3492
matrix:
35-
ghc: ['8.2.2', '8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.0.2']
93+
ghc: ${{fromJSON(needs.config.outputs.ghcvers)}}
3694
steps:
3795
- name: Checkout
38-
uses: actions/checkout@v2
96+
uses: actions/checkout@v4
3997
- name: Setup Haskell
40-
uses: haskell/actions/setup@v1
98+
uses: haskell-actions/setup@v2
99+
id: setup
41100
with:
42101
ghc-version: ${{ matrix.ghc }}
43102
cabal-version: latest
103+
cabal-update: true
44104
enable-stack: true
45105
stack-version: latest
46-
- name: Cache ~/.stack
47-
uses: actions/cache@v1
106+
- name: Setup Environment
107+
run: |
108+
GHC_VERSION=$(ghc --numeric-version)
109+
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
110+
CABAL_VERSION=$(cabal --numeric-version)
111+
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
112+
STACK_YAML="stack-${GHC_VERSION}.yaml"
113+
echo "STACK_YAML=${STACK_YAML}" | tee -a "${GITHUB_ENV}"
114+
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-stack-"
115+
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
116+
- name: Cache
117+
uses: actions/cache@v4
48118
with:
49-
path: ~/.stack
50-
key: ${{ runner.os }}-${{ matrix.ghc }}-stack
119+
path: |
120+
~/.stack
121+
.stack-work
122+
key: ${{ env.CACHE_RESTORE_KEY }}${{ hashFiles('ttc.cabal', env.STACK_YAML) }}
123+
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
51124
- name: Build
52125
run: stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
53-
env:
54-
STACK_YAML: stack-${{ matrix.ghc }}.yaml
55126
- name: Test
56127
run: stack test --system-ghc
57-
env:
58-
STACK_YAML: stack-${{ matrix.ghc }}.yaml
128+
- name: Haddock
129+
run: stack haddock --system-ghc
59130

60-
cabal:
61-
name: "Cabal ${{ matrix.cabal }}: GHC 8.2.2"
131+
bounds-lower:
132+
name: "Lower Bounds (GHC ${{ matrix.ghc }})"
133+
needs: config
134+
runs-on: ubuntu-latest
135+
strategy:
136+
fail-fast: false
137+
matrix:
138+
ghc: ${{fromJSON(needs.config.outputs.ghcvers_lower)}}
139+
steps:
140+
- name: Checkout
141+
uses: actions/checkout@v4
142+
- name: Setup Haskell
143+
uses: haskell-actions/setup@v2
144+
id: setup
145+
with:
146+
ghc-version: ${{ matrix.ghc }}
147+
cabal-version: latest
148+
cabal-update: true
149+
- name: Setup Environment
150+
run: |
151+
GHC_VERSION=$(ghc --numeric-version)
152+
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
153+
CABAL_VERSION=$(cabal --numeric-version)
154+
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
155+
CABAL_OPTS="--enable-tests --enable-benchmarks --project-file=cabal-bounds-lower.project"
156+
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
157+
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
158+
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
159+
- name: Configure Build
160+
run: |
161+
cabal v2-configure $CABAL_OPTS --disable-documentation
162+
cabal v2-build --dry-run $CABAL_OPTS
163+
- name: Restore Cached Dependencies
164+
uses: actions/cache/restore@v4
165+
id: cache
166+
with:
167+
path: ${{ steps.setup.outputs.cabal-store }}
168+
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
169+
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
170+
- name: Install Dependencies
171+
run: cabal v2-build all $CABAL_OPTS --only-dependencies
172+
- name: Save Cached Dependencies
173+
uses: actions/cache/save@v4
174+
if: ${{ !steps.cache.outputs.cache-hit
175+
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
176+
with:
177+
path: ${{ steps.setup.outputs.cabal-store }}
178+
key: ${{ steps.cache.outputs.cache-primary-key }}
179+
- name: Build
180+
run: cabal v2-build all $CABAL_OPTS
181+
- name: Test
182+
run: cabal v2-test all $CABAL_OPTS
183+
- name: Haddock
184+
run: cabal v2-haddock all $CABAL_OPTS
185+
186+
bounds-upper:
187+
name: "Upper Bounds (GHC ${{ matrix.ghc }})"
188+
needs: config
189+
runs-on: ubuntu-latest
190+
strategy:
191+
fail-fast: false
192+
matrix:
193+
ghc: ${{fromJSON(needs.config.outputs.ghcvers_upper)}}
194+
steps:
195+
- name: Checkout
196+
uses: actions/checkout@v4
197+
- name: Setup Haskell
198+
uses: haskell-actions/setup@v2
199+
id: setup
200+
with:
201+
ghc-version: ${{ matrix.ghc }}
202+
cabal-version: latest
203+
cabal-update: true
204+
- name: Setup Environment
205+
run: |
206+
GHC_VERSION=$(ghc --numeric-version)
207+
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
208+
CABAL_VERSION=$(cabal --numeric-version)
209+
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
210+
CABAL_OPTS="--enable-tests --enable-benchmarks --project-file=cabal-bounds-upper.project"
211+
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
212+
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
213+
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
214+
- name: Configure Build
215+
run: |
216+
cabal v2-configure $CABAL_OPTS --disable-documentation
217+
cabal v2-build --dry-run $CABAL_OPTS
218+
- name: Restore Cached Dependencies
219+
uses: actions/cache/restore@v4
220+
id: cache
221+
with:
222+
path: ${{ steps.setup.outputs.cabal-store }}
223+
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
224+
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
225+
- name: Install Dependencies
226+
run: cabal v2-build all $CABAL_OPTS --only-dependencies
227+
- name: Save Cached Dependencies
228+
uses: actions/cache/save@v4
229+
if: ${{ !steps.cache.outputs.cache-hit
230+
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
231+
with:
232+
path: ${{ steps.setup.outputs.cabal-store }}
233+
key: ${{ steps.cache.outputs.cache-primary-key }}
234+
- name: Build
235+
run: cabal v2-build all $CABAL_OPTS
236+
- name: Test
237+
run: cabal v2-test all $CABAL_OPTS
238+
- name: Haddock
239+
run: cabal v2-haddock all $CABAL_OPTS
240+
241+
cabal-version:
242+
name: "Cabal ${{ matrix.cabal }} (GHC ${{ matrix.ghc }})"
62243
runs-on: ubuntu-latest
63244
strategy:
245+
fail-fast: false
64246
matrix:
65-
cabal: ['2.4.1.0', '3.0.0.0', '3.2.0.0', '3.4.0.0']
247+
cabal: ['3.0.0.0']
248+
ghc: ['8.8.4']
66249
steps:
67250
- name: Checkout
68-
uses: actions/checkout@v2
251+
uses: actions/checkout@v4
69252
- name: Setup Haskell
70-
uses: haskell/actions/setup@v1
253+
uses: haskell-actions/setup@v2
254+
id: setup
71255
with:
72-
ghc-version: 8.2.2
256+
ghc-version: ${{ matrix.ghc }}
73257
cabal-version: ${{ matrix.cabal }}
258+
cabal-update: true
259+
- name: Setup Environment
260+
run: |
261+
GHC_VERSION=$(ghc --numeric-version)
262+
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
263+
CABAL_VERSION=$(cabal --numeric-version)
264+
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
265+
CABAL_OPTS="--enable-tests --enable-benchmarks"
266+
if [ -f "cabal-${GHC_VERSION}.project" ] ; then
267+
CABAL_OPTS="--project-file=cabal-${GHC_VERSION}.project ${CABAL_OPTS}"
268+
fi
269+
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
270+
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
271+
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
272+
- name: Configure Build
273+
run: |
274+
cabal v2-configure $CABAL_OPTS --disable-documentation
275+
cabal v2-build --dry-run $CABAL_OPTS
276+
- name: Restore Cached Dependencies
277+
uses: actions/cache/restore@v4
278+
id: cache
279+
with:
280+
path: ${{ steps.setup.outputs.cabal-store }}
281+
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
282+
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
283+
- name: Install Dependencies
284+
run: cabal v2-build all $CABAL_OPTS --only-dependencies
285+
- name: Save Cached Dependencies
286+
uses: actions/cache/save@v4
287+
if: ${{ !steps.cache.outputs.cache-hit
288+
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
289+
with:
290+
path: ${{ steps.setup.outputs.cabal-store }}
291+
key: ${{ steps.cache.outputs.cache-primary-key }}
74292
- name: Build
75-
run: cabal new-build --enable-tests --enable-benchmarks
293+
run: cabal v2-build all $CABAL_OPTS
76294
- name: Test
77-
run: cabal new-test --enable-tests
295+
run: cabal v2-test all $CABAL_OPTS
296+
- name: Haddock
297+
run: cabal v2-haddock all $CABAL_OPTS

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,31 @@ following conventions:
2424

2525
[KaC]: <https://keepachangelog.com/en/1.0.0/>
2626

27+
## 0.8.0.0 (2025-01-03)
28+
29+
### Breaking
30+
31+
* Support whitespace-separated tags and items instead of CSV
32+
* Remove support for GHC 8.6, constraining lower bounds
33+
* Remove support for GHC 8.4, constraining lower bounds
34+
* Remove support for GHC 8.2, constraining lower bounds
35+
* Change minimal Cabal from 1.24 to 3.0
36+
37+
### Non-Breaking
38+
39+
* Bump `aeson` dependency version upper bound
40+
* Bump `ansi-wl-pprint` dependency version upper bound
41+
* Bump `base` dependency version upper bound
42+
* Bump `bytestring` dependency version upper bound
43+
* Bump `filepath` dependency version upper bound
44+
* Add support for `optparse-applicative` `0.18`
45+
* Bump `tasty` dependency version upper bound
46+
* Bump `text` dependency version upper bound
47+
* Bump `transformers` dependency version upper bound
48+
* Bump `ttc` dependency version upper bound
49+
* Bump `vector` dependency version upper bound
50+
* Adjust dependency constraints to match tested versions
51+
2752
## 0.7.0.2 (2022-03-02)
2853

2954
### Non-Breaking

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License
22

3-
Copyright (c) 2020-2022 Travis Cardwell
3+
Copyright (c) 2020-2025 Travis Cardwell
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)