Skip to content

Commit

Permalink
Bump base for ghc-8.4 (#306)
Browse files Browse the repository at this point in the history
Fixes #303. I bumped base to `>=4.11`, matched `ghc-8.4.4` included
packages' lower bounds, and fixed warnings including `cabal check`
warnings except for the example.
  • Loading branch information
Mikolaj authored Mar 18, 2024
2 parents 3f0535b + 036165c commit 1066cab
Show file tree
Hide file tree
Showing 33 changed files with 148 additions and 173 deletions.
74 changes: 36 additions & 38 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/andreasabel/haskell-ci
#
# version: 0.17.20240127
# version: 0.18.0.20240225
#
# REGENDATA ("0.17.20240127",["github","cabal.project"])
# REGENDATA ("0.18.0.20240225",["github","cabal.project"])
#
name: Haskell-CI
on:
Expand All @@ -37,9 +37,9 @@ jobs:
compilerVersion: 9.8.1
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.6.3
- compiler: ghc-9.6.4
compilerKind: ghc
compilerVersion: 9.6.3
compilerVersion: 9.6.4
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.4.8
Expand Down Expand Up @@ -77,16 +77,6 @@ jobs:
compilerVersion: 8.4.4
setup-method: ghcup
allow-failure: false
- compiler: ghc-8.2.2
compilerKind: ghc
compilerVersion: 8.2.2
setup-method: ghcup
allow-failure: false
- compiler: ghc-8.0.2
compilerKind: ghc
compilerVersion: 8.0.2
setup-method: ghcup
allow-failure: false
fail-fast: false
steps:
- name: apt
Expand Down Expand Up @@ -185,6 +175,7 @@ jobs:
echo "packages: $GITHUB_WORKSPACE/source/hackage-root-tool" >> cabal.project
echo "packages: $GITHUB_WORKSPACE/source/hackage-repo-tool" >> cabal.project
echo "packages: $GITHUB_WORKSPACE/source/hackage-security-HTTP" >> cabal.project
echo "packages: $GITHUB_WORKSPACE/source/precompute-fileinfo" >> cabal.project
cat cabal.project
- name: sdist
run: |
Expand All @@ -210,6 +201,8 @@ jobs:
echo "PKGDIR_hackage_repo_tool=${PKGDIR_hackage_repo_tool}" >> "$GITHUB_ENV"
PKGDIR_hackage_security_HTTP="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hackage-security-HTTP-[0-9.]*')"
echo "PKGDIR_hackage_security_HTTP=${PKGDIR_hackage_security_HTTP}" >> "$GITHUB_ENV"
PKGDIR_precompute_fileinfo="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/precompute-fileinfo-[0-9.]*')"
echo "PKGDIR_precompute_fileinfo=${PKGDIR_precompute_fileinfo}" >> "$GITHUB_ENV"
rm -f cabal.project cabal.project.local
touch cabal.project
touch cabal.project.local
Expand All @@ -220,25 +213,28 @@ jobs:
echo "packages: ${PKGDIR_hackage_root_tool}" >> cabal.project
echo "packages: ${PKGDIR_hackage_repo_tool}" >> cabal.project
echo "packages: ${PKGDIR_hackage_security_HTTP}" >> cabal.project
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-security" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-security-http-client" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package example-client" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-security-curl" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-root-tool" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-repo-tool" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package hackage-security-HTTP" >> cabal.project ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
echo "packages: ${PKGDIR_precompute_fileinfo}" >> cabal.project
echo "package hackage-security" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package hackage-security-http-client" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package example-client" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package hackage-security-curl" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package hackage-root-tool" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package hackage-repo-tool" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package hackage-security-HTTP" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package precompute-fileinfo" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
cat >> cabal.project <<EOF
constraints: base-compat >= 0.12.2
allow-newer: containers
EOF
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(example-client|hackage-repo-tool|hackage-root-tool|hackage-security|hackage-security-HTTP|hackage-security-curl|hackage-security-http-client)$/; }' >> cabal.project.local
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(example-client|hackage-repo-tool|hackage-root-tool|hackage-security|hackage-security-HTTP|hackage-security-curl|hackage-security-http-client|precompute-fileinfo)$/; }' >> cabal.project.local
cat cabal.project
cat cabal.project.local
- name: dump install plan
Expand Down Expand Up @@ -280,6 +276,8 @@ jobs:
${CABAL} -vnormal check
cd ${PKGDIR_hackage_security_HTTP} || false
${CABAL} -vnormal check
cd ${PKGDIR_precompute_fileinfo} || false
${CABAL} -vnormal check
- name: haddock
run: |
if [ $((HCNUMVER >= 80600)) -ne 0 ] ; then $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ; fi
Expand All @@ -292,17 +290,17 @@ jobs:
rm -f cabal.project.local
- name: constraint set containers-0.7
run: |
if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all --dry-run ; fi
if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi
if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' --dependencies-only -j2 all ; fi
if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
if [ $((HCNUMVER >= 80200 && HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
if [ $((HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all --dry-run ; fi
if [ $((HCNUMVER < 90800)) -ne 0 ] ; then cabal-plan topo | sort ; fi
if [ $((HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' --dependencies-only -j2 all ; fi
if [ $((HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
if [ $((HCNUMVER < 90800)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='containers >= 0.7' all ; fi
- name: constraint set no-lukko
run: |
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' all --dry-run ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then cabal-plan topo | sort ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' --dependencies-only -j2 all ; fi
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' all ; fi
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' all --dry-run
cabal-plan topo | sort
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' --dependencies-only -j2 all
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='hackage-security -lukko' all
- name: save cache
uses: actions/cache/save@v4
if: always()
Expand Down
4 changes: 2 additions & 2 deletions cabal.haskell-ci
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ raw-project
base-compat >= 0.12.2

constraint-set no-lukko
ghc: >=8.2
ghc: >=8.4
constraints: hackage-security -lukko

constraint-set containers-0.7
ghc: >= 8.2 && < 9.8
ghc: >= 8.4 && < 9.8
constraints: containers >= 0.7
tests: True
run-tests: True
Expand Down
6 changes: 2 additions & 4 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@ packages: hackage-security
hackage-root-tool
hackage-repo-tool
hackage-security-HTTP
precompute-fileinfo

package hackage-security
tests: true

-- FIXME/TODO
-- packages: precompute-fileinfo

-- constraints: hackage-security -lukko
-- constraints: hackage-security -lukko
16 changes: 7 additions & 9 deletions example-client/example-client.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

flag use-network-uri
description: Are we using network-uri?
Expand All @@ -37,12 +35,12 @@ executable example-client
main-is: Main.hs
other-modules: ExampleClient.Options

build-depends: base >= 4.9 && < 4.20,
bytestring >= 0.9,
directory >= 1.2,
filepath >= 1.2,
optparse-applicative >= 0.11,
time >= 1.5,
build-depends: base >= 4.11 && < 4.20,
bytestring >= 0.10.8.2,
directory >= 1.3.1.5,
filepath >= 1.4.2,
optparse-applicative >= 0.13,
time >= 1.8.0.2,
hackage-security >= 0.5,
hackage-security-HTTP,
hackage-security-curl,
Expand All @@ -67,5 +65,5 @@ executable example-client
if flag(Cabal-syntax)
build-depends: Cabal-syntax >= 3.7 && < 3.12
else
build-depends: Cabal >= 1.12 && < 3.7,
build-depends: Cabal >= 2.2.0.1 && < 3.7,
Cabal-syntax < 3.7
19 changes: 8 additions & 11 deletions hackage-repo-tool/hackage-repo-tool.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

extra-source-files:
ChangeLog.md README.md
Expand Down Expand Up @@ -62,18 +60,18 @@ executable hackage-repo-tool

-- For boot libraries we try to accomodate the versions bundled with
-- the respective GHC release
build-depends: base >= 4.9 && < 4.20,
bytestring >= 0.9 && < 0.13,
directory >= 1.2 && < 1.4,
filepath >= 1.3 && < 1.5,
time >= 1.5 && < 1.13
build-depends: base >= 4.11 && < 4.20,
bytestring >= 0.10.8.2 && < 0.13,
directory >= 1.3.1.5 && < 1.4,
filepath >= 1.4.2 && < 1.5,
time >= 1.8.0.2 && < 1.13
if !os(windows)
build-depends: unix >= 2.5 && < 2.9
build-depends: unix >= 2.7.2.2 && < 2.9

-- For non-boot libraries we try to support single major versions
-- to reduce the risk of semantic differences
build-depends: microlens >= 0.4.11.2 && < 0.5,
optparse-applicative >= 0.15.1 && < 0.18,
optparse-applicative >= 0.13 && < 0.19,
tar >= 0.5 && < 0.7,
zlib >= 0.6 && < 0.8,
hackage-security >= 0.6 && < 0.7
Expand All @@ -89,8 +87,7 @@ executable hackage-repo-tool
if flag(Cabal-syntax)
build-depends: Cabal-syntax >= 3.7 && < 3.12
else
build-depends: Cabal >= 1.14 && < 1.26
|| >= 2.0 && < 2.6
build-depends: Cabal >= 2.2.0.1 && < 2.6
|| >= 3.0 && < 3.7,
Cabal-syntax < 3.7

Expand Down
4 changes: 2 additions & 2 deletions hackage-repo-tool/src/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ createPackageMetadata opts repoLoc whenWrite pkgId = do

-- | Find the files we need to add to the index
findNewIndexFiles :: GlobalOpts -> RepoLoc -> WhenWrite -> IO [IndexPath]
findNewIndexFiles opts@GlobalOpts{..} repoLoc whenWrite = do
findNewIndexFiles opts@GlobalOpts{} repoLoc whenWrite = do
indexTS <- getFileModTime opts repoLoc (InRep repoLayoutIndexTar)
indexFiles <- getRecursiveContents absIndexDir

Expand All @@ -430,7 +430,7 @@ findNewIndexFiles opts@GlobalOpts{..} repoLoc whenWrite = do

-- | Extract the cabal file from the package tarball and copy it to the index
extractCabalFile :: GlobalOpts -> RepoLoc -> WhenWrite -> PackageIdentifier -> IO ()
extractCabalFile opts@GlobalOpts{..} repoLoc whenWrite pkgId = do
extractCabalFile opts@GlobalOpts{} repoLoc whenWrite pkgId = do
srcTS <- getFileModTime opts repoLoc src
dstTS <- getFileModTime opts repoLoc dst
let skip = case whenWrite of
Expand Down
3 changes: 1 addition & 2 deletions hackage-root-tool/Main.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{-# LANGUAGE CPP, ScopedTypeVariables, RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables, RecordWildCards #-}
module Main (main) where

import Data.Monoid
import Control.Exception
import GHC.Conc.Sync (setUncaughtExceptionHandler)
import System.Exit
Expand Down
10 changes: 4 additions & 6 deletions hackage-root-tool/hackage-root-tool.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

extra-source-files:
ChangeLog.md
Expand All @@ -38,10 +36,10 @@ source-repository head

executable hackage-root-tool
main-is: Main.hs
build-depends: base >= 4.9 && < 5,
filepath >= 1.2 && < 1.5,
optparse-applicative >= 0.11 && < 0.18,
hackage-security >= 0.5 && < 0.7
build-depends: base >= 4.11 && < 5,
filepath >= 1.4.2 && < 1.5,
optparse-applicative >= 0.13 && < 0.19,
hackage-security >= 0.5 && < 0.7
default-language: Haskell2010
other-extensions: CPP, ScopedTypeVariables, RecordWildCards
ghc-options: -Wall
8 changes: 3 additions & 5 deletions hackage-security-HTTP/hackage-security-HTTP.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

extra-source-files:
ChangeLog.md
Expand All @@ -43,10 +41,10 @@ flag use-network-uri

library
exposed-modules: Hackage.Security.Client.Repository.HttpLib.HTTP
build-depends: base >= 4.9 && < 4.20,
bytestring >= 0.9 && < 0.13,
build-depends: base >= 4.11 && < 4.20,
bytestring >= 0.10.8.2 && < 0.13,
HTTP >= 4000.2.19 && < 4000.5,
mtl >= 2.1 && < 2.4,
mtl >= 2.2.2 && < 2.4,
zlib >= 0.5 && < 0.8,
hackage-security >= 0.5 && < 0.7
hs-source-dirs: src
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{-# LANGUAGE CPP #-}
-- | Implementation of 'HttpClient' using the HTTP package
module Hackage.Security.Client.Repository.HttpLib.HTTP (
withClient
Expand Down
10 changes: 4 additions & 6 deletions hackage-security-curl/hackage-security-curl.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,17 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

flag use-network-uri
description: Are we using network-uri?
manual: False

library
exposed-modules: Hackage.Security.Client.Repository.HttpLib.Curl
build-depends: base >= 4.9 && < 4.20,
bytestring >= 0.9,
process >= 1.1,
hackage-security
build-depends: base >= 4.11 && < 4.20,
bytestring >= 0.10.8.2 && < 0.13,
process >= 1.6.3 && < 1.7,
hackage-security >= 0.6.2 && < 0.7
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall
Expand Down
13 changes: 6 additions & 7 deletions hackage-security-http-client/hackage-security-http-client.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ copyright: Copyright 2015 Well-Typed LLP
category: Distribution
build-type: Simple
cabal-version: >=1.10
extra-source-files: ChangeLog.md

tested-with:
GHC == 9.8.1
Expand All @@ -24,20 +25,18 @@ tested-with:
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2

flag use-network-uri
description: Are we using network-uri?
manual: False

library
exposed-modules: Hackage.Security.Client.Repository.HttpLib.HttpClient
build-depends: base >= 4.9 && < 4.20,
bytestring >= 0.9,
http-client >= 0.4 && < 0.8,
http-types >= 0.8,
hackage-security >= 0.5 && < 0.7
build-depends: base >= 4.11 && < 4.20,
bytestring >= 0.10.8.2 && < 0.13,
http-client >= 0.4 && < 0.8,
http-types >= 0.12.4 && < 0.13,
hackage-security >= 0.5 && < 0.7
hs-source-dirs: src
default-language: Haskell2010
default-extensions: FlexibleContexts
Expand Down
Loading

0 comments on commit 1066cab

Please sign in to comment.