Skip to content

Commit

Permalink
Merge pull request #3 from rickowens/pr
Browse files Browse the repository at this point in the history
Several more features
  • Loading branch information
rickowens authored Dec 8, 2024
2 parents c43818c + 693951b commit 89de8f3
Show file tree
Hide file tree
Showing 11 changed files with 489 additions and 194 deletions.
138 changes: 72 additions & 66 deletions .github/workflows/haskell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ jobs:
matrix:
ghc-version:
- '9.8'
cabal-version: ['3.10.2.0']
- '9.10'
cabal-version: ['3.12.1.0']
steps:
# Checkout
- uses: actions/checkout@v3

# Setup
- name: Setup Haskell
uses: haskell-actions/setup@v2
Expand All @@ -27,7 +28,7 @@ jobs:
- name: Configure the Build
run: |
rm cabal.project.freeze
cabal configure
cabal configure --enable-tests --disable-optimization
cabal build --dry-run
# Restore cache
Expand Down Expand Up @@ -55,74 +56,79 @@ jobs:
# Cabal build
- name: Cabal Bulid
run: |
project="$(cat cabal.project | grep -v -- '-Werror')"
echo "$project" > cabal.project
cabal build all
# build-lower-bounds:
# name: Haskell Build (lower bounds)
# runs-on: ubuntu-latest # or macOS-latest, or windows-latest
# strategy:
# fail-fast: false
# matrix:
# ghc-version: ['9.8.1']
# cabal-version: ['3.10.2.0']
# steps:
# # Checkout
# - uses: actions/checkout@v3
#
# # Setup
# - name: Setup Haskell
# uses: haskell-actions/setup@v2
# id: setup
# if: steps.tooling-cache.outputs.cache-hit != 'true'
# with:
# ghc-version: ${{ matrix.ghc-version }}
# cabal-version: ${{ matrix.cabal-version }}
# Cabal tests
- name: Cabal Test
run: |
cabal test all
build-lower-bounds:
name: Haskell Build (lower bounds)
runs-on: ubuntu-latest # or macOS-latest, or windows-latest
strategy:
fail-fast: false
matrix:
ghc-version: ['9.8.1']
cabal-version: ['3.12.1.0']
steps:
# Checkout
- uses: actions/checkout@v3

# Setup
- name: Setup Haskell
uses: haskell-actions/setup@v2
id: setup
if: steps.tooling-cache.outputs.cache-hit != 'true'
with:
ghc-version: ${{ matrix.ghc-version }}
cabal-version: ${{ matrix.cabal-version }}

# # Generate Plan
# - name: Configure the Build
# run: |
# (cat << EOF
# packages: .
# constraints:
# base == 4.19.0.0,
# generics-sop == 0.5.1.4,
# hspec == 2.11.7,
# simple-sql-parser == 0.6.0,
# squeal-postgresql == 0.9.1.3,
# template-haskell == 2.21.0.0,
# text == 2.1,
# uuid == 1.3.15
# EOF
# ) > cabal.project
# rm cabal.project.freeze
# cabal configure
# cabal build --dry-run
# Generate Plan
- name: Configure the Build
run: |
(cat << EOF
packages: .
constraints:
base == 4.19.0.0,
generics-sop == 0.5.1.4,
hspec == 2.11.7,
simple-sql-parser == 0.6.0,
squeal-postgresql == 0.9.1.3,
template-haskell == 2.21.0.0,
text == 2.1,
uuid == 1.3.15
) > cabal.project
rm cabal.project.freeze
cabal configure --enable-tests --disable-optimization
cabal build --dry-run
# # Restore cache
# - name: Restore cached dependencies
# uses: actions/cache/restore@v3
# id: cache
# env:
# key: ${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}-cabal-${{ steps.setup.outputs.cabal-version }}
# with:
# path: ${{ steps.setup.outputs.cabal-store }}
# key: ${{ env.key }}-plan-${{ hashFiles('**/plan.json') }}
# Restore cache
- name: Restore cached dependencies
uses: actions/cache/restore@v3
id: cache
env:
key: ${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}-cabal-${{ steps.setup.outputs.cabal-version }}
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ env.key }}-plan-${{ hashFiles('**/plan.json') }}

# # Build deps (for caching)
# - name: Cabal build dependencies
# run: cabal build all --only-dependencies
# Build deps (for caching)
- name: Cabal build dependencies
run: cabal build all --only-dependencies

# # Save dependency cache
# - name: Save cache
# uses: actions/cache/save@v3
# if: steps.cache.outputs.cache-hit != 'true'
# with:
# path: ${{ steps.setup.outputs.cabal-store }}
# key: ${{ steps.cache.outputs.cache-primary-key }}
# Save dependency cache
- name: Save cache
uses: actions/cache/save@v3
if: steps.cache.outputs.cache-hit != 'true'
with:
path: ${{ steps.setup.outputs.cabal-store }}
key: ${{ steps.cache.outputs.cache-primary-key }}

# # Cabal build
# - name: Cabal Bulid
# run: cabal build all
# Cabal Build
- name: Cabal Bulid
run: cabal build all

# Cabal Test
- name: Cabal Test
run: cabal test all
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
/cabal.project.local
/.tags.lock
/tags
*.full-imports
3 changes: 3 additions & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ allow-newer:
, simple-sql-parser:mtl


constraints:
postgresql-binary == 0.13.1.3

125 changes: 68 additions & 57 deletions cabal.project.freeze
Original file line number Diff line number Diff line change
@@ -1,80 +1,83 @@
active-repositories: hackage.haskell.org:merge, owensmurray:merge
constraints: any.Cabal ==3.10.2.0,
any.Cabal-syntax ==3.10.2.0,
active-repositories: hackage.haskell.org:merge
constraints: any.Cabal ==3.12.0.0,
any.Cabal-syntax ==3.12.0.0,
any.HUnit ==1.6.2.0,
any.OneTuple ==0.4.1.1,
any.QuickCheck ==2.14.3,
any.OneTuple ==0.4.2,
any.QuickCheck ==2.15.0.1,
QuickCheck -old-random +templatehaskell,
any.StateVar ==1.2.2,
any.aeson ==2.2.1.0,
any.aeson ==2.2.3.0,
aeson +ordered-keymap,
any.ansi-terminal ==1.0.2,
any.ansi-terminal ==1.1.2,
ansi-terminal -example,
any.ansi-terminal-types ==0.11.5,
any.array ==0.5.6.0,
any.assoc ==1.1,
assoc +tagged,
any.ansi-terminal-types ==1.1,
any.array ==0.5.7.0,
any.assoc ==1.1.1,
assoc -tagged,
any.async ==2.2.5,
async -bench,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.base ==4.19.0.0,
any.base-orphans ==0.9.1,
any.bifunctors ==5.6.1,
any.base ==4.20.0.0,
any.base-orphans ==0.9.2,
any.bifunctors ==5.6.2,
bifunctors +tagged,
any.binary ==0.8.9.1,
any.binary ==0.8.9.2,
any.binary-parser ==0.5.7.6,
any.bytestring ==0.12.0.2,
any.bytestring ==0.12.1.0,
any.bytestring-strict-builder ==0.4.5.7,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cereal ==0.5.8.3,
cereal -bytestring-builder,
any.character-ps ==0.1,
any.charset ==0.3.10,
any.colour ==2.3.6,
any.comonad ==5.0.8,
comonad +containers +distributive +indexed-traversable,
any.containers ==0.6.8,
any.containers ==0.7,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
any.cryptohash-md5 ==0.11.101.0,
any.cryptohash-sha1 ==0.11.101.0,
any.data-bword ==0.1.0.2,
any.data-checked ==0.3,
any.data-default-class ==0.1.2.0,
any.data-default ==0.8.0.0,
any.data-default-class ==0.2.0.0,
any.data-dword ==0.3.2.1,
any.data-endian ==0.1.1,
any.data-fix ==0.3.2,
any.data-fix ==0.3.4,
any.data-serializer ==0.3.5,
any.data-textual ==0.3.0.3,
any.deepseq ==1.5.0.0,
any.directory ==1.3.8.1,
any.directory ==1.3.8.3,
any.distributive ==0.6.2.1,
distributive +semigroups +tagged,
any.dlist ==1.0,
dlist -werror,
any.entropy ==0.4.1.10,
entropy -donotgetentropy,
any.exceptions ==0.10.7,
any.filepath ==1.4.100.4,
any.filepath ==1.5.2.0,
any.free-categories ==0.2.0.2,
any.generically ==0.1.1,
any.generics-sop ==0.5.1.4,
any.ghc-bignum ==1.3,
any.ghc-boot-th ==9.8.1,
any.ghc-boot-th ==9.10.1,
any.ghc-internal ==9.1001.0,
any.ghc-prim ==0.11.0,
any.hashable ==1.4.3.0,
hashable +integer-gmp -random-initial-seed,
any.haskell-lexer ==1.1.1,
any.hashable ==1.5.0.0,
hashable -arch-native -random-initial-seed,
any.haskell-lexer ==1.1.2,
any.hsc2hs ==0.68.10,
hsc2hs -in-ghc-tree,
any.hspec ==2.11.7,
any.hspec-core ==2.11.7,
any.hspec-discover ==2.11.7,
any.hspec ==2.11.10,
any.hspec-core ==2.11.10,
any.hspec-discover ==2.11.10,
any.hspec-expectations ==0.8.4,
any.indexed-traversable ==0.1.3,
any.indexed-traversable-instances ==0.1.1.2,
any.integer-conversion ==0.1.0.1,
any.indexed-traversable ==0.1.4,
any.indexed-traversable-instances ==0.1.2,
any.integer-conversion ==0.1.1,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.mmorph ==1.2.0,
Expand All @@ -83,27 +86,34 @@ constraints: any.Cabal ==3.10.2.0,
any.network-info ==0.2.1,
any.network-ip ==0.3.0.3,
any.network-uri ==2.6.4.2,
any.optparse-applicative ==0.18.1.0,
optparse-applicative +process,
any.os-string ==2.0.2,
any.parsec ==3.1.17.0,
any.parsers ==0.12.11,
any.parsers ==0.12.12,
parsers +attoparsec +binary +parsec,
any.postgresql-binary ==0.13.1.3,
any.postgresql-libpq ==0.10.0.0,
any.postgresql-libpq ==0.11.0.0,
postgresql-libpq -use-pkg-config,
any.postgresql-libpq-configure ==0.11,
any.pretty ==1.1.3.6,
any.prettyprinter ==1.7.1,
prettyprinter -buildreadme +text,
any.prettyprinter-ansi-terminal ==1.1.3,
any.primitive ==0.9.0.0,
any.process ==1.6.18.0,
any.process ==1.6.19.0,
any.profunctors ==5.6.2,
any.quickcheck-io ==0.2.0,
any.random ==1.2.1.1,
any.random ==1.2.1.2,
any.records-sop ==0.1.1.1,
any.resource-pool ==0.4.0.0,
any.rts ==1.0.2,
any.safe-exceptions ==0.1.7.4,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.semialign ==1.3,
any.scientific ==0.3.8.0,
scientific -integer-simple,
any.semialign ==1.3.1,
semialign +semigroupoids,
any.semigroupoids ==6.0.0.1,
any.semigroupoids ==6.0.1,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.20,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
Expand All @@ -114,39 +124,40 @@ constraints: any.Cabal ==3.10.2.0,
any.splitmix ==0.1.0.5,
splitmix -optimised-mixer,
any.squeal-postgresql ==0.9.1.3,
any.stm ==2.5.2.1,
any.strict ==0.5,
any.stm ==2.5.3.1,
any.strict ==0.5.1,
any.tagged ==0.8.8,
tagged +deepseq +transformers,
any.template-haskell ==2.21.0.0,
any.text ==2.1,
any.text-iso8601 ==0.1,
any.tasty ==1.5.2,
tasty +unix,
any.template-haskell ==2.22.0.0,
any.text ==2.1.1,
any.text-iso8601 ==0.1.1,
any.text-latin1 ==0.3.1,
any.text-printer ==0.5.0.2,
any.text-short ==0.1.5,
any.text-short ==0.1.6,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.6.0.0,
any.th-compat ==0.1.4,
any.these ==1.2,
any.th-abstraction ==0.7.0.0,
any.th-compat ==0.1.5,
any.these ==1.2.1,
any.time ==1.12.2,
any.time-compat ==1.9.6.1,
time-compat -old-locale,
any.transformers ==0.6.1.0,
any.time-compat ==1.9.7,
any.transformers ==0.6.1.1,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.2,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-hint ==0.1,
any.unix ==2.8.3.0,
any.unix ==2.8.5.1,
any.unliftio ==0.2.25.0,
any.unliftio-core ==0.2.1.0,
any.unordered-containers ==0.2.20,
unordered-containers -debug,
any.uuid ==1.3.15,
any.uuid-types ==1.0.5.1,
any.vector ==0.13.1.0,
any.uuid ==1.3.16,
any.uuid-types ==1.0.6,
any.vector ==0.13.2.0,
vector +boundschecks -internalchecks -unsafechecks -wall,
any.vector-stream ==0.1.0.1,
any.witherable ==0.4.2
index-state: hackage.haskell.org 2024-01-22T21:44:21Z
any.witherable ==0.5
index-state: hackage.haskell.org 2024-11-22T14:59:16Z
Loading

0 comments on commit 89de8f3

Please sign in to comment.