From eaf5317834b069144b5f4897f9c79831983e54dd Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Mon, 4 Dec 2023 00:00:50 +0000 Subject: [PATCH] compatibility with GHC 8.10.7, narrow dependency ranges (#914) * Revert "raise mtl version to 2.3.1 (#912)" This reverts commit 117168ccce93ef5ac478c02e3f02a018fa8a2200. * Revert "expand dependency ranges (#911)" This reverts commit 90a8fc91d35c578c3b52ad296a6f1df715da2278. * fix test * remove unnecessary forks * make text version dependent on GHC version * text * remove stack.yaml * bytestring * bytestring * hpack 0.35 * mtl --- cabal.project | 10 --- package.yaml | 23 ++++--- simplexmq.cabal | 161 +++++++++++++++++++++++++++++++----------------- stack.yaml | 88 -------------------------- 4 files changed, 120 insertions(+), 162 deletions(-) delete mode 100644 stack.yaml diff --git a/cabal.project b/cabal.project index 7e6c31714..12875306d 100644 --- a/cabal.project +++ b/cabal.project @@ -14,11 +14,6 @@ source-repository-package location: https://github.com/simplex-chat/hs-socks.git tag: a30cc7a79a08d8108316094f8f2f82a0c5e1ac51 -source-repository-package - type: git - location: https://github.com/kazu-yamamoto/http2.git - tag: f5525b755ff2418e6e6ecc69e877363b0d0bcaeb - source-repository-package type: git location: https://github.com/simplex-chat/direct-sqlcipher.git @@ -28,8 +23,3 @@ source-repository-package type: git location: https://github.com/simplex-chat/sqlcipher-simple.git tag: a46bd361a19376c5211f1058908fc0ae6bf42446 - -source-repository-package - type: git - location: https://github.com/simplex-chat/network-transport.git - tag: 0013798272a683e35ca38d2fdaf480942311fba8 diff --git a/package.yaml b/package.yaml index d555e5ebd..64f66d939 100644 --- a/package.yaml +++ b/package.yaml @@ -32,12 +32,11 @@ dependencies: - attoparsec == 0.14.* - base >= 4.14 && < 5 - base64-bytestring >= 1.0 && < 1.3 - - bytestring >= 0.10 && < 0.12 - case-insensitive == 1.2.* - composition == 1.0.* - constraints >= 0.12 && < 0.14 - containers == 0.6.* - - cryptonite >= 0.27 && < 0.31 + - cryptonite == 0.30.* - cryptostore == 0.2.* - data-default == 0.7.* - direct-sqlcipher == 2.3.* @@ -49,11 +48,11 @@ dependencies: - ini == 0.4.1 - iproute == 1.7.* - iso8601-time == 0.1.* - - memory >= 0.15 && < 0.19 - - mtl >= 2.3.1 && < 3 + - memory == 0.18.* + - mtl >= 2.3.1 && < 3.0 - network >= 3.1.2.7 && < 3.2 - network-info >= 0.2 && < 0.3 - - network-transport >= 0.5.4 && < 0.6 + - network-transport == 0.5.6 - network-udp >= 0.0 && < 0.1 - optparse-applicative >= 0.15 && < 0.17 - process == 1.6.* @@ -62,14 +61,12 @@ dependencies: - socks == 0.6.* - sqlcipher-simple == 0.4.* - stm == 2.5.* - - template-haskell >= 2.16 && < 2.21 - temporary == 1.3.* - - text >= 2.0 && < 3 - time == 1.9.* - time-compat == 1.9.* - time-manager == 0.0.* - tls >= 1.6.0 && < 1.7 - - transformers >= 0.5 && < 0.7 + - transformers == 0.6.* - unliftio == 0.2.* - unliftio-core == 0.2.* - websockets == 0.12.* @@ -88,6 +85,16 @@ when: - condition: flag(swift) cpp-options: - -DswiftJSON + - condition: impl(ghc >= 9.6.2) + dependencies: + - bytestring == 0.11.* + - template-haskell == 2.20.* + - text >= 2.0.1 && < 2.2 + - condition: impl(ghc < 9.6.2) + dependencies: + - bytestring == 0.10.* + - template-haskell == 2.16.* + - text >= 1.2.3.0 && < 1.3 library: source-dirs: src diff --git a/simplexmq.cabal b/simplexmq.cabal index 23f3bea48..e45616c90 100644 --- a/simplexmq.cabal +++ b/simplexmq.cabal @@ -174,12 +174,11 @@ library , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -191,11 +190,11 @@ library , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -204,14 +203,12 @@ library , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -222,6 +219,16 @@ library default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 executable ntf-server main-is: Main.hs @@ -239,12 +246,11 @@ executable ntf-server , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -256,11 +262,11 @@ executable ntf-server , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -270,14 +276,12 @@ executable ntf-server , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -288,6 +292,16 @@ executable ntf-server default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 executable smp-agent main-is: Main.hs @@ -305,12 +319,11 @@ executable smp-agent , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -322,11 +335,11 @@ executable smp-agent , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -336,14 +349,12 @@ executable smp-agent , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -354,6 +365,16 @@ executable smp-agent default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 executable smp-server main-is: Main.hs @@ -371,12 +392,11 @@ executable smp-server , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -388,11 +408,11 @@ executable smp-server , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -402,14 +422,12 @@ executable smp-server , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -420,6 +438,16 @@ executable smp-server default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 executable xftp main-is: Main.hs @@ -437,12 +465,11 @@ executable xftp , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -454,11 +481,11 @@ executable xftp , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -468,14 +495,12 @@ executable xftp , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -486,6 +511,16 @@ executable xftp default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 executable xftp-server main-is: Main.hs @@ -503,12 +538,11 @@ executable xftp-server , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , direct-sqlcipher ==2.3.* @@ -520,11 +554,11 @@ executable xftp-server , ini ==0.4.1 , iproute ==1.7.* , iso8601-time ==0.1.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -534,14 +568,12 @@ executable xftp-server , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -552,6 +584,16 @@ executable xftp-server default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 test-suite simplexmq-test type: exitcode-stdio-1.0 @@ -600,12 +642,11 @@ test-suite simplexmq-test , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 - , bytestring >=0.10 && <0.12 , case-insensitive ==1.2.* , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* - , cryptonite >=0.27 && <0.31 + , cryptonite ==0.30.* , cryptostore ==0.2.* , data-default ==0.7.* , deepseq ==1.4.* @@ -622,11 +663,11 @@ test-suite simplexmq-test , iproute ==1.7.* , iso8601-time ==0.1.* , main-tester ==0.2.* - , memory >=0.15 && <0.19 - , mtl >=2.3.1 && <3 + , memory ==0.18.* + , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* - , network-transport >=0.5.4 && <0.6 + , network-transport ==0.5.6 , network-udp ==0.0.* , optparse-applicative >=0.15 && <0.17 , process ==1.6.* @@ -637,15 +678,13 @@ test-suite simplexmq-test , socks ==0.6.* , sqlcipher-simple ==0.4.* , stm ==2.5.* - , template-haskell >=2.16 && <2.21 , temporary ==1.3.* - , text >=2.0 && <3 , time ==1.9.* , time-compat ==1.9.* , time-manager ==0.0.* , timeit ==2.0.* , tls >=1.6.0 && <1.7 - , transformers >=0.5 && <0.7 + , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , websockets ==0.12.* @@ -656,3 +695,13 @@ test-suite simplexmq-test default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , template-haskell ==2.20.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , template-haskell ==2.16.* + , text >=1.2.3.0 && <1.3 diff --git a/stack.yaml b/stack.yaml deleted file mode 100644 index 338748ecd..000000000 --- a/stack.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# This file was automatically generated by 'stack init' -# -# Some commonly used options have been documented as comments in this file. -# For advanced use and comprehensive documentation of the format, please see: -# https://docs.haskellstack.org/en/stable/yaml_configuration/ - -# Resolver to choose a 'specific' stackage snapshot or a compiler version. -# A snapshot resolver dictates the compiler version and the set of packages -# to be used for project dependencies. For example: -# -# resolver: lts-3.5 -# resolver: nightly-2015-09-21 -# resolver: ghc-7.10.2 -# -# The location of a snapshot can be provided as a file or url. Stack assumes -# a snapshot provided as a file might change, whereas a url resource does not. -# -# resolver: ./custom-snapshot.yaml -# resolver: https://example.com/snapshots/2018-01-01.yaml -resolver: nightly-2023-08-22 - -# User packages to be built. -# Various formats can be used as shown in the example below. -# -# packages: -# - some-directory -# - https://example.com/foo/bar/baz-0.0.2.tar.gz -# subdirs: -# - auto-update -# - wai -packages: - - . -# Dependency packages to be pulled from upstream that are not in the resolver. -# These entries can reference officially published versions as well as -# forks / in-progress versions pinned to a git hash. For example: -# -extra-deps: - - cryptostore-0.2.1.0@sha256:9896e2984f36a1c8790f057fd5ce3da4cbcaf8aa73eb2d9277916886978c5b19,3881 - - network-3.1.2.7@sha256:e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568,4888 - - simple-logger-0.1.0@sha256:be8ede4bd251a9cac776533bae7fb643369ebd826eb948a9a18df1a8dd252ff8,1079 - - tls-1.6.0@sha256:7ae39373fd2de27fb80e90f76d22aeeb9a074a0ddd120cbd02c9c52f516a9e55,6987 - # below dependencies are to update Aeson to 2.0.3 - - OneTuple-0.3.1@sha256:a848c096c9d29e82ffdd30a9998aa2931cbccb3a1bc137539d80f6174d31603e,2262 - - attoparsec-0.14.4@sha256:79584bdada8b730cb5138fca8c35c76fbef75fc1d1e01e6b1d815a5ee9843191,5810 - - hashable-1.4.0.2@sha256:0cddd0229d1aac305ea0404409c0bbfab81f075817bd74b8b2929eff58333e55,5005 - - semialign-1.2.0.1@sha256:0e179b4d3a8eff79001d374d6c91917c6221696b9620f0a4d86852fc6a9b9501,2836 - - text-short-0.1.5@sha256:962c6228555debdc46f758d0317dea16e5240d01419b42966674b08a5c3d8fa6,3498 - - time-compat-1.9.6.1@sha256:42d8f2e08e965e1718917d54ad69e1d06bd4b87d66c41dc7410f59313dba4ed1,5033 - - github: simplex-chat/aeson - commit: aab7b5a14d6c5ea64c64dcaee418de1bb00dcc2b - - github: kazu-yamamoto/http2 - commit: f5525b755ff2418e6e6ecc69e877363b0d0bcaeb - # - ../direct-sqlcipher - - github: simplex-chat/direct-sqlcipher - commit: f814ee68b16a9447fbb467ccc8f29bdd3546bfd9 - # - ../sqlcipher-simple - - github: simplex-chat/sqlcipher-simple - commit: a46bd361a19376c5211f1058908fc0ae6bf42446 - - github: simplex-chat/network-transport - commit: 0013798272a683e35ca38d2fdaf480942311fba8 - # - ../hs-tls/core - # - github: simplex-chat/hs-tls - # commit: f6cc753611f80af300401cfae63846e9d7c40d9e - # subdirs: - # - core -# Override default flag values for local packages and extra-deps -# flags: {} - -# Extra package databases containing global packages -# extra-package-dbs: [] - -# Control whether we use the GHC we find on the path -# system-ghc: true -# -# Require a specific version of stack, using version ranges -# require-stack-version: -any # Default -# require-stack-version: ">=2.1" -# -# Override the architecture used by stack, especially useful on Windows -# arch: i386 -# arch: x86_64 -# -# Extra directories used by stack for building -# extra-include-dirs: [/path/to/dir] -# extra-lib-dirs: [/path/to/dir] -# -# Allow a newer minor version of GHC than the snapshot specifies -# compiler-check: newer-minor