mirror of
https://github.com/swarm-game/swarm.git
synced 2024-10-03 19:17:31 +03:00
Support GHC 9.8, bump upper bounds, and update CI (#1828)
Make sure Swarm builds with the most recent versions of dependencies. The only one that is still lagging is `filepath`, but `servant` doesn't support `filepath-1.5` so Swarm can't either. The only real update needed was due to some breaking changes in `aeson-2.2`, but the necessary changes were very minor. Also fixed a few places where GHC 9.8 is generating additional warnings. Also update our CI: `haskell-ci` recently dropped support for `hlint`, in favor of projects defining their own standalone `hlint` workflows.
This commit is contained in:
parent
46dda6cdeb
commit
096816133f
54
.github/workflows/haskell-ci.yml
vendored
54
.github/workflows/haskell-ci.yml
vendored
@ -17,9 +17,9 @@
|
||||
#
|
||||
# For more information, see https://github.com/haskell-CI/haskell-ci
|
||||
#
|
||||
# version: 0.17.20240109
|
||||
# version: 0.19.20240501
|
||||
#
|
||||
# REGENDATA ("0.17.20240109",["github","--config=cabal.haskell-ci","--copy-fields=all","swarm.cabal"])
|
||||
# REGENDATA ("0.19.20240501",["github","--config=cabal.haskell-ci","--copy-fields=all","swarm.cabal"])
|
||||
#
|
||||
name: Haskell-CI
|
||||
on:
|
||||
@ -52,14 +52,19 @@ jobs:
|
||||
timeout-minutes:
|
||||
60
|
||||
container:
|
||||
image: buildpack-deps:bionic
|
||||
image: buildpack-deps:jammy
|
||||
continue-on-error: ${{ matrix.allow-failure }}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- compiler: ghc-9.6.4
|
||||
- compiler: ghc-9.8.2
|
||||
compilerKind: ghc
|
||||
compilerVersion: 9.6.4
|
||||
compilerVersion: 9.8.2
|
||||
setup-method: ghcup
|
||||
allow-failure: false
|
||||
- compiler: ghc-9.6.5
|
||||
compilerKind: ghc
|
||||
compilerVersion: 9.6.5
|
||||
setup-method: ghcup
|
||||
allow-failure: false
|
||||
- compiler: ghc-9.4.8
|
||||
@ -81,6 +86,7 @@ jobs:
|
||||
mkdir -p "$HOME/.ghcup/bin"
|
||||
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
|
||||
chmod a+x "$HOME/.ghcup/bin/ghcup"
|
||||
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
|
||||
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
|
||||
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
|
||||
env:
|
||||
@ -147,11 +153,6 @@ jobs:
|
||||
- name: update cabal index
|
||||
run: |
|
||||
$CABAL v2-update -v
|
||||
- name: cache (tools)
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-fda4bbd7
|
||||
path: ~/.haskell-ci-tools
|
||||
- name: install cabal-plan
|
||||
run: |
|
||||
mkdir -p $HOME/.cabal/bin
|
||||
@ -164,26 +165,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.20231219/cabal-docspec-0.0.0.20231219-x86_64-linux.xz > cabal-docspec.xz
|
||||
echo '8b60448275466bbe2b9409741b5dd07a41c541283017b95b44efe6e31379d067 cabal-docspec.xz' | sha256sum -c -
|
||||
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240414/cabal-docspec-0.0.0.20240414-x86_64-linux.xz > cabal-docspec.xz
|
||||
echo '2d18a3f79619e8ec5f11870f926f6dc2616e02a6c889315b7f82044b95a1adb9 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: install hlint
|
||||
run: |
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $ARG_COMPILER --dry-run hlint --constraint='hlint >=3.5 && <3.6' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then if [ ! -e $HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint ]; then echo "Downloading HLint version $HLINTVER"; mkdir -p $HOME/.haskell-ci-tools; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\n' --silent --location --output $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz "https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz"; tar -xzv -f $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz -C $HOME/.haskell-ci-tools; fi ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then mkdir -p $CABAL_DIR/bin && ln -sf "$HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint" $CABAL_DIR/bin/hlint ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then hlint --version ; fi
|
||||
- name: save cache (tools)
|
||||
uses: actions/cache/save@v3
|
||||
if: always()
|
||||
with:
|
||||
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-fda4bbd7
|
||||
path: ~/.haskell-ci-tools
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: source
|
||||
- name: initial cabal.project for sdist
|
||||
@ -220,7 +209,7 @@ jobs:
|
||||
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
|
||||
cabal-plan
|
||||
- name: restore cache
|
||||
uses: actions/cache/restore@v3
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
|
||||
path: ~/.cabal/store
|
||||
@ -239,17 +228,6 @@ jobs:
|
||||
run: |
|
||||
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all
|
||||
cabal-docspec $ARG_COMPILER
|
||||
- name: hlint
|
||||
run: |
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src/swarm-util) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src/swarm-web) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src/swarm-engine) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src/swarm-scenario) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase -XStrictData src/swarm-lang) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase app/doc) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XBangPatterns -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFunctor -XDeriveGeneric -XDeriveTraversable -XExplicitForAll -XFlexibleContexts -XFlexibleInstances -XGADTSyntax -XMultiParamTypeClasses -XNumericUnderscores -XRankNTypes -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XImportQualifiedPost -XLambdaCase app/scene) ; fi
|
||||
if [ $((HCNUMVER >= 90400 && HCNUMVER < 90600)) -ne 0 ] ; then (cd ${PKGDIR_swarm} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 -XImportQualifiedPost app) ; fi
|
||||
- name: cabal check
|
||||
run: |
|
||||
cd ${PKGDIR_swarm} || false
|
||||
@ -258,7 +236,7 @@ jobs:
|
||||
run: |
|
||||
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
|
||||
- name: save cache
|
||||
uses: actions/cache/save@v3
|
||||
uses: actions/cache/save@v4
|
||||
if: always()
|
||||
with:
|
||||
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
|
||||
|
31
.github/workflows/hlint.yml
vendored
Normal file
31
.github/workflows/hlint.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
name: HLint
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '**.hs'
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
paths:
|
||||
- '**.hs'
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
hlint:
|
||||
name: HLint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: 'Set up HLint'
|
||||
uses: haskell-actions/hlint-setup@v2
|
||||
with:
|
||||
version: '3.8'
|
||||
|
||||
- name: 'Run HLint'
|
||||
uses: haskell-actions/hlint-run@v2
|
||||
with:
|
||||
path: '["src/", "app/", "test/"]'
|
||||
fail-on: suggestion
|
18
.mergify.yml
18
.mergify.yml
@ -14,7 +14,14 @@ queue_rules:
|
||||
- or:
|
||||
- check-success=Enforce issue references
|
||||
- -files~=\.hs$
|
||||
- check-success=Haskell-CI - Linux - ghc-9.6.4
|
||||
- or:
|
||||
- check-success=Normalize cabal
|
||||
- -files~=\.cabal$
|
||||
- or:
|
||||
- check-success=HLint
|
||||
- -files~=\.hs$
|
||||
- check-success=Haskell-CI - Linux - ghc-9.8.2
|
||||
- check-success=Haskell-CI - Linux - ghc-9.6.5
|
||||
- check-success=Haskell-CI - Linux - ghc-9.4.8
|
||||
- check-success=Haskell-CI - Linux - ghc-9.2.8
|
||||
|
||||
@ -43,7 +50,14 @@ pull_request_rules:
|
||||
- or:
|
||||
- check-success=Enforce issue references
|
||||
- -files~=\.hs$
|
||||
- check-success=Haskell-CI - Linux - ghc-9.6.4
|
||||
- or:
|
||||
- check-success=Normalize cabal
|
||||
- -files~=\.cabal$
|
||||
- or:
|
||||
- check-success=HLint
|
||||
- -files~=\.hs$
|
||||
- check-success=Haskell-CI - Linux - ghc-9.8.2
|
||||
- check-success=Haskell-CI - Linux - ghc-9.6.5
|
||||
- check-success=Haskell-CI - Linux - ghc-9.4.8
|
||||
- check-success=Haskell-CI - Linux - ghc-9.2.8
|
||||
- label=merge me
|
||||
|
@ -17,11 +17,5 @@ haddock: True
|
||||
-- Swarm has benchmarks so at least build them :)
|
||||
benchmarks: True
|
||||
|
||||
-- Run HLint
|
||||
hlint: True
|
||||
hlint-job: 9.4.8
|
||||
hlint-yaml: .hlint.yaml
|
||||
hlint-download-binary: True
|
||||
|
||||
raw-project
|
||||
flags: +ci
|
||||
|
@ -122,9 +122,10 @@ formatIncapableFix = \case
|
||||
-- >>> import Control.Carrier.Throw.Either (runThrow)
|
||||
-- >>> import Control.Algebra (run)
|
||||
-- >>> import Swarm.Game.Failure (LoadingFailure)
|
||||
-- >>> import qualified Data.Set as S
|
||||
-- >>> :set -XTypeApplications
|
||||
-- >>> w = mkEntity (defaultEntityDisplay 'l') "magic wand" mempty mempty [CAppear]
|
||||
-- >>> r = mkEntity (defaultEntityDisplay 'o') "the one ring" mempty mempty [CAppear]
|
||||
-- >>> w = mkEntity (defaultEntityDisplay 'l') "magic wand" mempty mempty (S.singleton CAppear)
|
||||
-- >>> r = mkEntity (defaultEntityDisplay 'o') "the one ring" mempty mempty (S.singleton CAppear)
|
||||
-- >>> m = fromRight mempty . run . runThrow @LoadingFailure $ buildEntityMap [w,r]
|
||||
-- >>> incapableError cs t = putStr . unpack $ formatIncapable m FixByEquip cs t
|
||||
--
|
||||
@ -134,10 +135,10 @@ formatIncapableFix = \case
|
||||
-- If God in troth thou wantest to play, try thou a Creative game.
|
||||
--
|
||||
-- >>> incapableError (R.singletonCap CAppear) (TConst Appear)
|
||||
-- You do not have the devices required for:
|
||||
-- You do not have the device required for:
|
||||
-- 'appear'
|
||||
-- Please equip:
|
||||
-- - the one ring or magic wand
|
||||
-- - magic wand or the one ring
|
||||
--
|
||||
-- >>> incapableError (R.singletonCap CRandom) (TConst Random)
|
||||
-- Missing the random capability for:
|
||||
|
@ -137,10 +137,10 @@ instantiateRobot maybeMachine i r =
|
||||
, _robotLogUpdated = False
|
||||
}
|
||||
|
||||
(.=?) :: (Ae.KeyValue a, Ae.ToJSON v, Eq v) => Ae.Key -> v -> v -> Maybe a
|
||||
(.=?) :: (Ae.KeyValue e a, Ae.ToJSON v, Eq v) => Ae.Key -> v -> v -> Maybe a
|
||||
(.=?) n v defaultVal = if defaultVal /= v then Just $ n Ae..= v else Nothing
|
||||
|
||||
(.==) :: (Ae.KeyValue a, Ae.ToJSON v) => Ae.Key -> v -> Maybe a
|
||||
(.==) :: (Ae.KeyValue e a, Ae.ToJSON v) => Ae.Key -> v -> Maybe a
|
||||
(.==) n v = Just $ n Ae..= v
|
||||
|
||||
instance Ae.ToJSON Robot where
|
||||
|
@ -24,7 +24,7 @@ import Data.Aeson.Types hiding (Key)
|
||||
import Data.Char qualified as C (toLower)
|
||||
import Data.Data (Data)
|
||||
import Data.Hashable (Hashable)
|
||||
import Data.List qualified as L (tail)
|
||||
import Data.List qualified as L (drop)
|
||||
import Data.Text hiding (filter, length, map)
|
||||
import GHC.Generics (Generic)
|
||||
import Swarm.Util qualified as Util
|
||||
@ -50,7 +50,7 @@ data AbsoluteDir = DEast | DNorth | DWest | DSouth
|
||||
deriving (Eq, Ord, Show, Read, Generic, Data, Hashable, Enum, Bounded)
|
||||
|
||||
directionJsonModifier :: String -> String
|
||||
directionJsonModifier = map C.toLower . L.tail
|
||||
directionJsonModifier = map C.toLower . L.drop 1
|
||||
|
||||
data CoordinateOrientation
|
||||
= Latitudinal
|
||||
|
@ -1,5 +1,8 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||
{-# OPTIONS_GHC -fno-warn-unrecognised-pragmas #-}
|
||||
|
||||
{-# HLINT ignore "Functor law" #-}
|
||||
|
||||
-- |
|
||||
-- SPDX-License-Identifier: BSD-3-Clause
|
||||
@ -207,8 +210,12 @@ getUserId conn userAlias = do
|
||||
<$> query conn "SELECT id FROM users WHERE alias = ?;" (Only userAlias)
|
||||
maybe insertNew return maybeId
|
||||
where
|
||||
-- Avoid GHC warning re: partiality of head
|
||||
queryHead = \case
|
||||
[] -> error "Query result in getUserId should never be empty!"
|
||||
hd : _ -> hd
|
||||
insertNew =
|
||||
fmap (UserId . fromOnly . head)
|
||||
fmap (UserId . fromOnly . queryHead)
|
||||
$ query
|
||||
conn
|
||||
"INSERT INTO users (alias) VALUES (?) RETURNING id;"
|
||||
|
54
swarm.cabal
54
swarm.cabal
@ -32,7 +32,7 @@ maintainer: byorgey@gmail.com
|
||||
bug-reports: https://github.com/swarm-game/swarm/issues
|
||||
copyright: Brent Yorgey 2021
|
||||
category: Game
|
||||
tested-with: ghc ==9.2.8 || ==9.4.8 || ==9.6.4
|
||||
tested-with: ghc ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2
|
||||
extra-source-files:
|
||||
CHANGELOG.md
|
||||
editors/emacs/*.el
|
||||
@ -157,7 +157,7 @@ library swarm-lang
|
||||
fused-effects,
|
||||
hashable,
|
||||
lens,
|
||||
lsp >=2.4 && <2.5,
|
||||
lsp >=2.4 && <2.7,
|
||||
megaparsec,
|
||||
mtl,
|
||||
parser-combinators,
|
||||
@ -249,14 +249,14 @@ library swarm-scenario
|
||||
build-depends:
|
||||
AhoCorasick >=0.0.4 && <0.0.5,
|
||||
JuicyPixels >=3.3 && <3.4,
|
||||
aeson >=2 && <2.2,
|
||||
aeson >=2.2 && <2.3,
|
||||
array >=0.5.4 && <0.6,
|
||||
base >=4.14 && <4.19,
|
||||
base >=4.14 && <4.20,
|
||||
boolexpr >=0.2 && <0.3,
|
||||
bytestring >=0.10 && <0.13,
|
||||
clock >=0.8.2 && <0.9,
|
||||
colour >=2.3.6 && <2.4,
|
||||
containers >=0.6.2 && <0.7,
|
||||
containers >=0.6.2 && <0.8,
|
||||
directory >=1.3 && <1.4,
|
||||
either >=5.0 && <5.1,
|
||||
extra >=1.7 && <1.8,
|
||||
@ -264,8 +264,8 @@ library swarm-scenario
|
||||
fused-effects >=1.1.1.1 && <1.2,
|
||||
hashable >=1.3.4 && <1.5,
|
||||
hsnoise >=0.0.3 && <0.1,
|
||||
lens >=4.19 && <5.3,
|
||||
linear >=1.21.6 && <1.23,
|
||||
lens >=4.19 && <5.4,
|
||||
linear >=1.21.6 && <1.24,
|
||||
megaparsec >=9.6.1 && <9.7,
|
||||
murmur3 >=1.0.4 && <1.1,
|
||||
nonempty-containers >=0.3.4 && <0.3.5,
|
||||
@ -349,14 +349,14 @@ library swarm-engine
|
||||
build-depends:
|
||||
AhoCorasick >=0.0.4 && <0.0.5,
|
||||
SHA >=1.6.4 && <1.6.5,
|
||||
aeson >=2 && <2.2,
|
||||
aeson >=2.2 && <2.3,
|
||||
array >=0.5.4 && <0.6,
|
||||
astar >=0.3 && <0.3.1,
|
||||
base >=4.14 && <4.19,
|
||||
base >=4.14 && <4.20,
|
||||
boolexpr >=0.2 && <0.3,
|
||||
bytestring,
|
||||
clock >=0.8.2 && <0.9,
|
||||
containers >=0.6.2 && <0.7,
|
||||
containers >=0.6.2 && <0.8,
|
||||
directory >=1.3 && <1.4,
|
||||
extra >=1.7 && <1.8,
|
||||
filepath >=1.4 && <1.5,
|
||||
@ -367,15 +367,15 @@ library swarm-engine
|
||||
http-client >=0.7 && <0.8,
|
||||
http-client-tls >=0.3 && <0.4,
|
||||
http-types >=0.12 && <0.13,
|
||||
lens >=4.19 && <5.3,
|
||||
linear >=1.21.6 && <1.23,
|
||||
lens >=4.19 && <5.4,
|
||||
linear >=1.21.6 && <1.24,
|
||||
mtl >=2.2.2 && <2.4,
|
||||
nonempty-containers >=0.3.4 && <0.3.5,
|
||||
prettyprinter >=1.7.0 && <1.8,
|
||||
random >=1.2.0 && <1.3,
|
||||
servant-docs >=0.12 && <0.14,
|
||||
text >=1.2.4 && <2.2,
|
||||
time >=1.9 && <1.14,
|
||||
time >=1.9 && <1.15,
|
||||
transformers >=0.5 && <0.7,
|
||||
transformers >=0.5.6.2 && <0.6.2.0,
|
||||
unordered-containers >=0.2.14 && <0.3,
|
||||
@ -421,7 +421,7 @@ library swarm-web
|
||||
servant-server >=0.19 && <0.21,
|
||||
text,
|
||||
wai >=3.2 && <3.3,
|
||||
wai-app-static >=3.1.8 && <3.1.9,
|
||||
wai-app-static >=3.1.8 && <3.2,
|
||||
warp,
|
||||
witch,
|
||||
|
||||
@ -473,7 +473,7 @@ library swarm-tournament
|
||||
time,
|
||||
transformers,
|
||||
wai >=3.2 && <3.3,
|
||||
wai-app-static >=3.1.8 && <3.1.9,
|
||||
wai-app-static >=3.1.8 && <3.2,
|
||||
wai-extra,
|
||||
warp,
|
||||
yaml,
|
||||
@ -508,21 +508,21 @@ library swarm-util
|
||||
other-modules: Paths_swarm
|
||||
autogen-modules: Paths_swarm
|
||||
build-depends:
|
||||
aeson >=2 && <2.2,
|
||||
base >=4.14 && <4.19,
|
||||
aeson >=2.2 && <2.3,
|
||||
base >=4.14 && <4.20,
|
||||
boolexpr >=0.2 && <0.3,
|
||||
clock >=0.8.2 && <0.9,
|
||||
containers >=0.6.2 && <0.7,
|
||||
containers >=0.6.2 && <0.8,
|
||||
directory >=1.3 && <1.4,
|
||||
either >=5.0 && <5.1,
|
||||
filepath >=1.4 && <1.5,
|
||||
fused-effects >=1.1.1.1 && <1.2,
|
||||
lens >=4.19 && <5.3,
|
||||
lens >=4.19 && <5.4,
|
||||
megaparsec >=9.6.1 && <9.7,
|
||||
minimorph >=0.3 && <0.4,
|
||||
mtl >=2.2.2 && <2.4,
|
||||
servant-docs >=0.12 && <0.14,
|
||||
template-haskell >=2.16 && <2.21,
|
||||
template-haskell >=2.16 && <2.22,
|
||||
text >=1.2.4 && <2.2,
|
||||
transformers >=0.5 && <0.7,
|
||||
vector >=0.12 && <0.14,
|
||||
@ -716,22 +716,22 @@ library
|
||||
other-modules: Paths_swarm
|
||||
autogen-modules: Paths_swarm
|
||||
build-depends:
|
||||
aeson >=2 && <2.2,
|
||||
aeson >=2.2 && <2.3,
|
||||
array >=0.5.4 && <0.6,
|
||||
base >=4.14 && <4.19,
|
||||
base >=4.14 && <4.20,
|
||||
brick >=2.1.1 && <2.4,
|
||||
brick-list-skip >=0.1.1.2 && <0.2,
|
||||
bytestring >=0.10 && <0.13,
|
||||
clock >=0.8.2 && <0.9,
|
||||
colour >=2.3.6 && <2.4,
|
||||
containers >=0.6.2 && <0.7,
|
||||
containers >=0.6.2 && <0.8,
|
||||
extra >=1.7 && <1.8,
|
||||
filepath >=1.4 && <1.5,
|
||||
fused-effects >=1.1.1.1 && <1.2,
|
||||
fuzzy >=0.1 && <0.2,
|
||||
githash >=0.1.6 && <0.2,
|
||||
lens >=4.19 && <5.3,
|
||||
linear >=1.21.6 && <1.23,
|
||||
lens >=4.19 && <5.4,
|
||||
linear >=1.21.6 && <1.24,
|
||||
mtl >=2.2.2 && <2.4,
|
||||
murmur3 >=1.0.4 && <1.1,
|
||||
natural-sort >=0.1.2 && <0.2,
|
||||
@ -742,7 +742,7 @@ library
|
||||
tagged >=0.8 && <0.9,
|
||||
text >=1.2.4 && <2.2,
|
||||
text-zipper >=0.10 && <0.14,
|
||||
time >=1.9 && <1.14,
|
||||
time >=1.9 && <1.15,
|
||||
transformers >=0.5 && <0.7,
|
||||
transformers >=0.5.6.2 && <0.6.2.0,
|
||||
vector >=0.12 && <0.14,
|
||||
@ -890,7 +890,7 @@ test-suite swarm-unit
|
||||
|
||||
build-depends:
|
||||
-- Imports shared with the library don't need bounds
|
||||
QuickCheck >=2.14 && <2.15,
|
||||
QuickCheck >=2.14 && <2.16,
|
||||
aeson,
|
||||
base,
|
||||
boolexpr,
|
||||
|
Loading…
Reference in New Issue
Block a user