Skip to content

Commit

Permalink
Release 0.5.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
TravisCardwell committed May 28, 2023
2 parents d88aea7 + e5029da commit e61b7d5
Show file tree
Hide file tree
Showing 35 changed files with 917 additions and 329 deletions.
270 changes: 245 additions & 25 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,71 +7,291 @@ on:
- develop
- main

permissions:
contents: read

jobs:
latest-cabal:
config:
name: "Load configuration"
runs-on: ubuntu-latest
outputs:
ghcvers: ${{ steps.set-ghcvers.outputs.ghcvers }}
ghcvers_lower: ${{ steps.set-ghcvers.outputs.ghcvers_lower }}
ghcvers_upper: ${{ steps.set-ghcvers.outputs.ghcvers_upper }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set ghcvers
id: set-ghcvers
run: ./test-all.sh github >> $GITHUB_OUTPUT

cabal:
name: "Cabal: GHC ${{ matrix.ghc }}"
needs: config
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ghc: ['8.2.2', '8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.0.2', '9.2.1']
ghc: ${{fromJSON(needs.config.outputs.ghcvers)}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v1
uses: haskell/actions/setup@v2
id: setup
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest
cabal-update: true
- name: Setup Environment
run: |
GHC_VERSION=$(ghc --numeric-version)
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_VERSION=$(cabal --numeric-version)
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_OPTS="--enable-tests --enable-benchmarks"
if [ -f "cabal-${GHC_VERSION}.project" ] ; then
CABAL_OPTS="--project-file=cabal-${GHC_VERSION}.project ${CABAL_OPTS}"
fi
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
- name: Configure Build
run: |
cabal v2-configure $CABAL_OPTS --disable-documentation
cabal v2-build --dry-run $CABAL_OPTS
- name: Restore Cached Dependencies
uses: actions/cache/restore@v3
id: cache
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
- name: Install Dependencies
run: cabal v2-build all $CABAL_OPTS --only-dependencies
- name: Save Cached Dependencies
uses: actions/cache/save@v3
if: ${{ !steps.cache.outputs.cache-hit
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ steps.cache.outputs.cache-primary-key }}
- name: Build
run: cabal new-build --enable-tests --enable-benchmarks
run: cabal v2-build all $CABAL_OPTS
- name: Test
run: cabal new-test --enable-tests
run: cabal v2-test all $CABAL_OPTS
- name: Haddock
run: cabal v2-haddock all $CABAL_OPTS

stack:
name: "Stack: GHC ${{ matrix.ghc }}"
needs: config
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ghc: ['8.2.2', '8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.0.2']
ghc: ${{fromJSON(needs.config.outputs.ghcvers)}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v1
uses: haskell/actions/setup@v2
id: setup
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest
cabal-update: true
enable-stack: true
stack-version: latest
- name: Cache ~/.stack
uses: actions/cache@v1
- name: Setup Environment
run: |
GHC_VERSION=$(ghc --numeric-version)
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_VERSION=$(cabal --numeric-version)
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
STACK_YAML="stack-${GHC_VERSION}.yaml"
echo "STACK_YAML=${STACK_YAML}" | tee -a "${GITHUB_ENV}"
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-stack-"
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
- name: Cache
uses: actions/cache@v3
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.ghc }}-stack
path: |
~/.stack
.stack-work
key: ${{ env.CACHE_RESTORE_KEY }}${{ hashFiles('ttc.cabal', env.STACK_YAML) }}
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
- name: Build
run: stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
env:
STACK_YAML: stack-${{ matrix.ghc }}.yaml
- name: Test
run: stack test --system-ghc
env:
STACK_YAML: stack-${{ matrix.ghc }}.yaml
- name: Haddock
run: stack haddock --system-ghc

cabal:
name: "Cabal ${{ matrix.cabal }}: GHC 8.2.2"
bounds-lower:
name: "Lower Bounds (GHC ${{ matrix.ghc }})"
needs: config
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ghc: ${{fromJSON(needs.config.outputs.ghcvers_lower)}}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v2
id: setup
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest
cabal-update: true
- name: Setup Environment
run: |
GHC_VERSION=$(ghc --numeric-version)
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_VERSION=$(cabal --numeric-version)
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_OPTS="--enable-tests --enable-benchmarks --project-file=cabal-bounds-lower.project"
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
- name: Configure Build
run: |
cabal v2-configure $CABAL_OPTS --disable-documentation
cabal v2-build --dry-run $CABAL_OPTS
- name: Restore Cached Dependencies
uses: actions/cache/restore@v3
id: cache
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
- name: Install Dependencies
run: cabal v2-build all $CABAL_OPTS --only-dependencies
- name: Save Cached Dependencies
uses: actions/cache/save@v3
if: ${{ !steps.cache.outputs.cache-hit
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ steps.cache.outputs.cache-primary-key }}
- name: Build
run: cabal v2-build all $CABAL_OPTS
- name: Test
run: cabal v2-test all $CABAL_OPTS
- name: Haddock
run: cabal v2-haddock all $CABAL_OPTS

bounds-upper:
name: "Upper Bounds (GHC ${{ matrix.ghc }})"
needs: config
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ghc: ${{fromJSON(needs.config.outputs.ghcvers_upper)}}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v2
id: setup
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest
cabal-update: true
- name: Setup Environment
run: |
GHC_VERSION=$(ghc --numeric-version)
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_VERSION=$(cabal --numeric-version)
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_OPTS="--enable-tests --enable-benchmarks --project-file=cabal-bounds-upper.project"
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
- name: Configure Build
run: |
cabal v2-configure $CABAL_OPTS --disable-documentation
cabal v2-build --dry-run $CABAL_OPTS
- name: Restore Cached Dependencies
uses: actions/cache/restore@v3
id: cache
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
- name: Install Dependencies
run: cabal v2-build all $CABAL_OPTS --only-dependencies
- name: Save Cached Dependencies
uses: actions/cache/save@v3
if: ${{ !steps.cache.outputs.cache-hit
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ steps.cache.outputs.cache-primary-key }}
- name: Build
run: cabal v2-build all $CABAL_OPTS
- name: Test
run: cabal v2-test all $CABAL_OPTS
- name: Haddock
run: cabal v2-haddock all $CABAL_OPTS

cabal-version:
name: "Cabal ${{ matrix.cabal }} (GHC ${{ matrix.ghc }})"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
cabal: ['2.4.1.0', '3.0.0.0', '3.2.0.0', '3.4.0.0']
cabal: ['2.4.1.0', '3.0.0.0', '3.2.0.0', '3.4.1.0', '3.6.2.0', '3.8.1.0', '3.10.1.0']
ghc: ['8.2.2']
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v1
uses: haskell/actions/setup@v2
id: setup
with:
ghc-version: 8.2.2
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
cabal-update: true
- name: Setup Environment
run: |
GHC_VERSION=$(ghc --numeric-version)
echo "GHC_VERSION=${GHC_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_VERSION=$(cabal --numeric-version)
echo "CABAL_VERSION=${CABAL_VERSION}" | tee -a "${GITHUB_ENV}"
CABAL_OPTS="--enable-tests --enable-benchmarks"
if [ -f "cabal-${GHC_VERSION}.project" ] ; then
CABAL_OPTS="--project-file=cabal-${GHC_VERSION}.project ${CABAL_OPTS}"
fi
echo "CABAL_OPTS=${CABAL_OPTS}" | tee -a "${GITHUB_ENV}"
CACHE_RESTORE_KEY="${RUNNER_OS}-$(date +%Y%m)-ghc-${GHC_VERSION}-cabal-${CABAL_VERSION}-"
echo "CACHE_RESTORE_KEY=${CACHE_RESTORE_KEY}" | tee -a "${GITHUB_ENV}"
- name: Configure Build
run: |
cabal v2-configure $CABAL_OPTS --disable-documentation
cabal v2-build --dry-run $CABAL_OPTS
- name: Restore Cached Dependencies
uses: actions/cache/restore@v3
id: cache
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ env.CACHE_RESTORE_KEY }}plan-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ env.CACHE_RESTORE_KEY }}
- name: Install Dependencies
run: cabal v2-build all $CABAL_OPTS --only-dependencies
- name: Save Cached Dependencies
uses: actions/cache/save@v3
if: ${{ !steps.cache.outputs.cache-hit
|| steps.cache.outputs.cache-primary-key != steps.cache.outputs.cache-matched-key }}
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ steps.cache.outputs.cache-primary-key }}
- name: Build
run: cabal new-build --enable-tests --enable-benchmarks
run: cabal v2-build all $CABAL_OPTS
- name: Test
run: cabal new-test --enable-tests
run: cabal v2-test all $CABAL_OPTS
- name: Haddock
run: cabal v2-haddock all $CABAL_OPTS
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ following conventions:

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

## 0.5.0.0 (2023-05-28)

### Breaking

* Add support for `optparse-applicative` `0.18`

### Non-Breaking

* Bump `ansi-terminal` dependency version upper bound
* Bump `ansi-wl-pprint` dependency version upper bound
* Adjust dependency constraints to match tested versions
* Fix typo in CLI error message

## 0.4.0.0 (2022-03-02)

### Breaking
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License

Copyright (c) 2020-2022 Travis Cardwell
Copyright (c) 2020-2023 Travis Cardwell

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

0 comments on commit e61b7d5

Please sign in to comment.