Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 49 additions & 15 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
# version: 0.19.20250330
# version: 0.19.20260331
#
# REGENDATA ("0.19.20250330",["github","cabal.project"])
# REGENDATA ("0.19.20260331",["github","cabal.project"])
#
name: Haskell-CI
on:
Expand All @@ -20,6 +20,11 @@ on:
pull_request:
branches:
- master
merge_group:
branches:
- master
workflow_dispatch:
{}
jobs:
linux:
name: Haskell-CI - Linux - ${{ matrix.compiler }}
Expand All @@ -32,9 +37,14 @@ jobs:
strategy:
matrix:
include:
- compiler: ghc-9.12.1
- compiler: ghc-9.14.1
compilerKind: ghc
compilerVersion: 9.14.1
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.12.4
compilerKind: ghc
compilerVersion: 9.12.1
compilerVersion: 9.12.4
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.10.1
Expand Down Expand Up @@ -95,8 +105,8 @@ jobs:
chmod a+x "$HOME/.ghcup/bin/ghcup"
- name: Install cabal-install
run: |
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.1-p1 || (cat "$HOME"/.ghcup/logs/*.* && false)
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.1-p1 -vnormal+nowrap" >> "$GITHUB_ENV"
"$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
- name: Install GHC (GHCup)
if: matrix.setup-method == 'ghcup'
run: |
Expand Down Expand Up @@ -174,14 +184,14 @@ jobs:
- name: install cabal-docspec
run: |
mkdir -p $HOME/.cabal/bin
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240703/cabal-docspec-0.0.0.20240703-x86_64-linux.xz > cabal-docspec.xz
echo '48bf3b7fd2f7f0caa6162afee57a755be8523e7f467b694900eb420f5f9a7b76 cabal-docspec.xz' | sha256sum -c -
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20250606/cabal-docspec-0.0.0.20250606-x86_64-linux.xz > cabal-docspec.xz
echo 'cc20bb5c19501b42bde77556bc419c7c0a5c8d1eb65663024d8a4e4c868bef25 cabal-docspec.xz' | sha256sum -c -
xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec
rm -f cabal-docspec.xz
chmod a+x $HOME/.cabal/bin/cabal-docspec
cabal-docspec --version
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
path: source
- name: initial cabal.project for sdist
Expand Down Expand Up @@ -226,17 +236,41 @@ jobs:
echo "packages: ${PKGDIR_aeson_examples}" >> cabal.project
echo "packages: ${PKGDIR_aeson_benchmarks}" >> cabal.project
echo "package aeson" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
echo "package attoparsec-iso8601" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
echo "package attoparsec-aeson" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
echo "package text-iso8601" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
echo "package aeson-examples" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
echo "package aeson-benchmarks" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package aeson" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package attoparsec-iso8601" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package attoparsec-aeson" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package text-iso8601" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package aeson-examples" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package aeson-benchmarks" >> cabal.project ; fi
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package aeson" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package attoparsec-iso8601" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package attoparsec-aeson" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package text-iso8601" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package aeson-examples" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package aeson-benchmarks" >> cabal.project ; fi
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
cat >> cabal.project <<EOF
allow-newer: hermes-json:attoparsec-iso8601
EOF
Expand Down
20 changes: 9 additions & 11 deletions aeson.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: aeson
version: 2.2.4.0
version: 2.2.4.1
license: BSD-3-Clause
license-file: LICENSE
category: Text, Web, JSON
Expand All @@ -21,7 +21,8 @@ tested-with:
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
|| ==9.12.4
|| ==9.14.1

synopsis: Fast JSON parsing and encoding
homepage: https://github.com/haskell/aeson
Expand Down Expand Up @@ -95,19 +96,20 @@ library
build-depends:
, base >=4.12.0.0 && <5
, bytestring >=0.10.8.2 && <0.13
, containers >=0.6.0.1 && <0.8
, containers >=0.6.0.1 && <0.9
, deepseq >=1.4.4.0 && <1.6
, exceptions >=0.10.4 && <0.11
, ghc-prim >=0.5.0.0 && <0.14
, template-haskell >=2.14.0.0 && <2.24
, template-haskell >=2.14.0.0 && <2.25
, text >=1.2.3.0 && <1.3 || >=2.0 && <2.2
, time >=1.8.0.2 && <1.15
, time >=1.8.0.2 && <1.16

-- Compat
build-depends:
, generically >=0.1 && <0.2
, time-compat >=1.9.6 && <1.10

if !impl(ghc >=9.4)
build-depends: generically >=0.1 && <0.2

if !impl(ghc >=9.0)
build-depends: integer-gmp

Expand Down Expand Up @@ -203,20 +205,17 @@ test-suite aeson-tests
, bytestring
, containers
, data-fix
, deepseq
, Diff >=0.4 && <0.6 || ^>=1.0.2
, directory
, dlist
, filepath
, generic-deriving >=1.10 && <1.15
, generically
, ghc-prim >=0.2
, hashable
, indexed-traversable
, integer-logarithms >=1 && <1.1
, network-uri
, OneTuple
, primitive
, QuickCheck
, quickcheck-instances >=0.3.29 && <0.5
, scientific
Expand All @@ -226,7 +225,6 @@ test-suite aeson-tests
, tasty-golden
, tasty-hunit
, tasty-quickcheck
, template-haskell
, text
, text-short
, these
Expand Down
6 changes: 3 additions & 3 deletions attoparsec-aeson/attoparsec-aeson.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: attoparsec-aeson
version: 2.2.2.0
version: 2.2.2.1
synopsis: Parsing of aeson's Value with attoparsec
description:
Parsing of aeson's Value with attoparsec, originally from aeson.
Expand Down Expand Up @@ -28,7 +28,8 @@ tested-with:
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
|| ==9.12.4
|| ==9.14.1

library
hs-source-dirs: src
Expand All @@ -49,7 +50,6 @@ library
, bytestring >=0.10.8.2 && <0.13
, character-ps ^>=0.1
, integer-conversion >=0.1 && <0.2
, primitive >=0.8.0.0 && <0.10
, scientific >=0.3.7.0 && <0.4
, text >=1.2.3.0 && <1.3 || >=2.0 && <2.2
, vector >=0.12.0.1 && <0.14
Expand Down
5 changes: 3 additions & 2 deletions attoparsec-iso8601/attoparsec-iso8601.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ tested-with:
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
|| ==9.12.4
|| ==9.14.1

extra-source-files:
changelog.md
Expand All @@ -46,7 +47,7 @@ library
, base >=4.12.0.0 && <5
, integer-conversion >=0.1 && <0.2
, text >=1.2.3.0 && <1.3.0.0 || >=2.0 && <2.2
, time >=1.8.0.2 && <1.15
, time >=1.8.0.2 && <1.16
, time-compat >=1.9.4 && <1.10

source-repository head
Expand Down
6 changes: 2 additions & 4 deletions benchmarks/aeson-benchmarks.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ tested-with:
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
|| ==9.12.4
|| ==9.14.1

flag tasty-bench
description: Use tasty-bench, otherwise criterion
Expand Down Expand Up @@ -49,7 +50,6 @@ executable aeson-bench

build-depends:
aeson
, attoparsec
, attoparsec-aeson
, base
, base-compat-batteries
Expand All @@ -61,9 +61,7 @@ executable aeson-bench
, filepath
, hashable
, json
, scientific
, tagged
, template-haskell
, text
, time
, unordered-containers
Expand Down
10 changes: 2 additions & 8 deletions examples/aeson-examples.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ tested-with:
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
|| ==9.12.4
|| ==9.14.1

library twitter-generic
default-language: Haskell2010
Expand All @@ -32,7 +33,6 @@ library twitter-generic
build-depends:
aeson
, base <5
, base-compat
, deepseq
, text

Expand All @@ -48,7 +48,6 @@ library twitter-th
build-depends:
aeson
, base <5
, base-compat
, deepseq
, text

Expand All @@ -63,7 +62,6 @@ library twitter-manual
build-depends:
aeson
, base <5
, base-compat-batteries
, deepseq
, text

Expand All @@ -75,7 +73,6 @@ library github
build-depends:
aeson
, base <5
, base-compat-batteries
, deepseq
, text
, time
Expand All @@ -89,7 +86,6 @@ executable aeson-example-generic
build-depends:
aeson
, base <5
, base-compat
, bytestring

executable aeson-example-simplest
Expand All @@ -100,7 +96,6 @@ executable aeson-example-simplest
build-depends:
aeson
, base <5
, base-compat-batteries
, bytestring

executable aeson-example-th
Expand All @@ -111,5 +106,4 @@ executable aeson-example-th
build-depends:
aeson
, base <5
, base-compat
, bytestring
3 changes: 0 additions & 3 deletions examples/src/Generic.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,10 @@
-- automatically derive the Generic class for us.

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

import Prelude.Compat

import Data.Aeson (FromJSON, ToJSON, decode, encode)
import qualified Data.ByteString.Lazy.Char8 as BL
import GHC.Generics (Generic)
Expand Down
3 changes: 0 additions & 3 deletions examples/src/GitHub.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
-- From github package: https://hackage.haskell.org/package/github
Expand Down Expand Up @@ -35,8 +34,6 @@
--
module GitHub where

import Prelude.Compat

import Control.DeepSeq (NFData (..))
import Data.Text (Text)
import Data.Time (UTCTime)
Expand Down
2 changes: 0 additions & 2 deletions examples/src/Simplest.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}

module Main (main) where

import Prelude.Compat
import Data.Aeson

import Control.Applicative (empty)
Expand Down
3 changes: 0 additions & 3 deletions examples/src/TemplateHaskell.hs
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
-- We can use Template Haskell (TH) to generate instances of the
-- FromJSON and ToJSON classes automatically. This is the fastest way
-- to add JSON support for a type.
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}

module Main (main) where

import Prelude.Compat

import Data.Aeson (decode, encode)
import Data.Aeson.TH (deriveJSON, defaultOptions)
import qualified Data.ByteString.Lazy.Char8 as BL
Expand Down
3 changes: 0 additions & 3 deletions examples/src/Twitter.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}

module Twitter
(
Expand All @@ -20,8 +19,6 @@ module Twitter
, Result(..)
) where

import Prelude.Compat

import Control.DeepSeq
import Data.Data (Typeable, Data)
import Data.Int (Int64)
Expand Down
Loading
Loading