packages feed

cabal-cache-1.2.0.0: cabal-cache.cabal

cabal-version:          3.4

name:                   cabal-cache
version:                1.2.0.0
synopsis:               CI Assistant for Haskell projects
description:            CI Assistant for Haskell projects.  Implements package caching.
homepage:               https://github.com/haskell-works/cabal-cache
license:                BSD-3-Clause
license-file:           LICENSE
author:                 John Ky
maintainer:             newhoggy@gmail.com
copyright:              John Ky 2019-2023
category:               Development
tested-with:            GHC == 9.6.6, GHC == 9.4.8, GHC == 9.2.8
extra-doc-files:        CHANGELOG.md
                        README.md

source-repository head
  type: git
  location: https://github.com/haskell-works/cabal-cache

common base                           { build-depends: base                           >= 4.7        && < 5      }

common aeson                          { build-depends: aeson                          >= 2          && < 2.3    }
common amazonka                       { build-depends: amazonka                       >= 2          && < 3      }
common amazonka-core                  { build-depends: amazonka-core                  >= 2          && < 3      }
common amazonka-s3                    { build-depends: amazonka-s3                    >= 2          && < 3      }
common attoparsec                     { build-depends: attoparsec                     >= 0.14       && < 0.15   }
common bytestring                     { build-depends: bytestring                     >= 0.10.8.2   && < 0.13   }
common cabal-install-parsers          { build-depends: cabal-install-parsers          >= 0.6.1      && < 0.7    }
common conduit-extra                  { build-depends: conduit-extra                  >= 1.3.1.1    && < 1.4    }
common containers                     { build-depends: containers                     >= 0.6.0.1    && < 0.7    }
common cryptonite                     { build-depends: cryptonite                     >= 0.25       && < 1      }
common deepseq                        { build-depends: deepseq                        >= 1.4.4.0    && < 1.6    }
common directory                      { build-depends: directory                      >= 1.3.3.0    && < 1.4    }
common effectful                      { build-depends: effectful                      >= 2.5        && < 3      }
common effectful-core                 { build-depends: effectful-core                 >= 2.5        && < 3      }
common effectful-plugin               { build-depends: effectful-plugin               >= 1.1.0.4    && < 2      }
common effectful-zoo-amazonka         { build-depends: effectful-zoo:amazonka         >= 0.0.1.0    && < 0.1    }
common effectful-zoo-console          { build-depends: effectful-zoo:console          >= 0.0.1.0    && < 0.1    }
common effectful-zoo-core             { build-depends: effectful-zoo:core             >= 0.0.1.0    && < 0.1    }
common effectful-zoo-datalog          { build-depends: effectful-zoo:datalog          >= 0.0.1.0    && < 0.1    }
common effectful-zoo-hedgehog         { build-depends: effectful-zoo:hedgehog         >= 0.0.1.0    && < 0.1    }
common effectful-zoo-hunit            { build-depends: effectful-zoo:hunit            >= 0.0.1.0    && < 0.1    }
common effectful-zoo-lazy             { build-depends: effectful-zoo:lazy             >= 0.0.1.0    && < 0.1    }
common effectful-zoo-log              { build-depends: effectful-zoo:log              >= 0.0.1.0    && < 0.1    }
common exceptions                     { build-depends: exceptions                     >= 0.10.1     && < 0.11   }
common filepath                       { build-depends: filepath                       >= 1.3        && < 1.6    }
common generic-lens                   { build-depends: generic-lens                   >= 1.1.0.0    && < 2.3    }
common Glob                           { build-depends: Glob                           >= 0.10.2     && < 0.11   }
common hedgehog                       { build-depends: hedgehog                       >= 1.5        && < 1.6    }
common hedgehog-extras                { build-depends: hedgehog-extras                >= 0.4        && < 0.7    }
common hspec                          { build-depends: hspec                          >= 2.4        && < 3      }
common http-client                    { build-depends: http-client                    >= 0.5.14     && < 0.8    }
common http-client-tls                { build-depends: http-client-tls                >= 0.3        && < 0.4    }
common http-types                     { build-depends: http-types                     >= 0.12.3     && < 0.13   }
common hw-hedgehog                    { build-depends: hw-hedgehog                    >= 0.1.0.3    && < 0.2    }
common hw-hspec-hedgehog              { build-depends: hw-hspec-hedgehog              >= 0.1.0.4    && < 0.2    }
common hw-prelude                     { build-depends: hw-prelude                     >= 0.0.4.0    && < 0.1    }
common lens                           { build-depends: lens                           >= 4.17       && < 6      }
common mtl                            { build-depends: mtl                            >= 2.2.2      && < 2.4    }
common network-uri                    { build-depends: network-uri                    >= 2.6.4.1    && < 2.8    }
common optparse-applicative           { build-depends: optparse-applicative           >= 0.14       && < 0.19   }
common microlens                      { build-depends: microlens                      >= 0.4.13.1   && < 0.5    }
common process                        { build-depends: process                        >= 1.6.5.0    && < 1.7    }
common raw-strings-qq                 { build-depends: raw-strings-qq                 >= 1.1        && < 2      }
common relation                       { build-depends: relation                       >= 0.5        && < 0.6    }
common resourcet                      { build-depends: resourcet                      >= 1.2.2      && < 1.4    }
common resourcet-effectful            { build-depends: resourcet-effectful            >= 1.0.1.0    && < 1.1    }
common selective                      { build-depends: selective                      >= 0.1.0      && < 0.8    }
common stm                            { build-depends: stm                            >= 2.5.0.0    && < 3      }
common stringsearch                   { build-depends: stringsearch                   >= 0.3.6.6    && < 0.4    }
common tar                            { build-depends: tar                            >= 0.5.1.0    && < 0.7    }
common temporary                      { build-depends: temporary                      >= 1.3        && < 1.4    }
common text                           { build-depends: text                           >= 1.2.3.1    && < 2.2    }
common time                           { build-depends: time                           >= 1.4        && < 1.13   }
common topograph                      { build-depends: topograph                      >= 1          && < 2      }
common transformers                   { build-depends: transformers                   >= 0.5.6.2    && < 0.7    }
common unliftio                       { build-depends: unliftio                       >= 0.2.10     && < 0.3    }
common zlib                           { build-depends: zlib                           >= 0.6.2      && < 0.8    }

flag dev
  description: Enable development settings like -Werror
  default: False
  manual: True

common project-config
  default-language:     Haskell2010
  default-extensions:   AllowAmbiguousTypes
                        ApplicativeDo
                        BlockArguments
                        DataKinds
                        DefaultSignatures
                        DeriveGeneric
                        DeriveAnyClass
                        DerivingStrategies
                        DerivingVia
                        DisambiguateRecordFields
                        DuplicateRecordFields
                        FlexibleContexts
                        FunctionalDependencies
                        GADTs
                        ImportQualifiedPost
                        LambdaCase
                        LiberalTypeSynonyms
                        MonadComprehensions
                        MonoLocalBinds
                        MultiWayIf
                        NoFieldSelectors
                        NoImplicitPrelude
                        OverloadedLabels
                        OverloadedRecordDot
                        OverloadedStrings
                        PackageImports
                        PartialTypeSignatures
                        PatternSynonyms
                        QuantifiedConstraints
                        QuasiQuotes
                        RecordWildCards
                        RecursiveDo
                        RoleAnnotations
                        ScopedTypeVariables
                        TupleSections
                        TypeFamilies
                        TypeFamilyDependencies
                        TypeApplications
                        TypeOperators
                        UndecidableInstances
                        UnicodeSyntax
                        ViewPatterns
  ghc-options:          -Wall
                        -Wincomplete-record-updates
                        -Wincomplete-uni-patterns
                        -- -Wno-incomplete-patterns
                        -Wtabs
                        -Wunused-packages
  if flag(dev)
    ghc-options:        -Werror

library
  import:               base, project-config,
                        aeson,
                        amazonka,
                        amazonka-core,
                        amazonka-s3,
                        attoparsec,
                        bytestring,
                        conduit-extra,
                        containers,
                        cryptonite,
                        deepseq,
                        directory,
                        effectful,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-amazonka,
                        effectful-zoo-console,
                        effectful-zoo-core,
                        effectful-zoo-datalog,
                        effectful-zoo-lazy,
                        effectful-zoo-log,
                        exceptions,
                        filepath,
                        generic-lens,
                        http-client,
                        http-client-tls,
                        http-types,
                        hw-prelude,
                        microlens,
                        network-uri,
                        optparse-applicative,
                        process,
                        relation,
                        resourcet,
                        resourcet-effectful,
                        stm,
                        text,
                        topograph,
  other-modules:        Paths_cabal_cache
  autogen-modules:      Paths_cabal_cache
  hs-source-dirs:       src
  exposed-modules:      HaskellWorks.CabalCache.AppError
                        HaskellWorks.CabalCache.AWS.Env
                        HaskellWorks.CabalCache.AWS.Error
                        HaskellWorks.CabalCache.AWS.S3
                        HaskellWorks.CabalCache.AWS.S3.URI
                        HaskellWorks.CabalCache.Concurrent.DownloadQueue
                        HaskellWorks.CabalCache.Concurrent.Fork
                        HaskellWorks.CabalCache.Concurrent.Type
                        HaskellWorks.CabalCache.Core
                        HaskellWorks.CabalCache.Data.List
                        HaskellWorks.CabalCache.Error
                        HaskellWorks.CabalCache.Exit
                        HaskellWorks.CabalCache.GhcPkg
                        HaskellWorks.CabalCache.Hash
                        HaskellWorks.CabalCache.IO.Console
                        HaskellWorks.CabalCache.IO.File
                        HaskellWorks.CabalCache.IO.Lazy
                        HaskellWorks.CabalCache.IO.Tar
                        HaskellWorks.CabalCache.Location
                        HaskellWorks.CabalCache.Metadata
                        HaskellWorks.CabalCache.Options
                        HaskellWorks.CabalCache.Store
                        HaskellWorks.CabalCache.Text
                        HaskellWorks.CabalCache.Topology
                        HaskellWorks.CabalCache.Types
                        HaskellWorks.CabalCache.URI
                        HaskellWorks.CabalCache.Version
  ghc-options:          -fplugin=Effectful.Plugin

executable cabal-cache
  import:               base, project-config,
                        aeson,
                        amazonka,
                        amazonka-core,
                        bytestring,
                        cabal-install-parsers,
                        containers,
                        directory,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-amazonka,
                        effectful-zoo-core,
                        effectful-zoo-datalog,
                        effectful-zoo-lazy,
                        effectful-zoo-log,
                        effectful,
                        exceptions,
                        filepath,
                        generic-lens,
                        hw-prelude,
                        lens,
                        network-uri,
                        optparse-applicative,
                        resourcet-effectful,
                        stm,
                        stringsearch,
                        temporary,
                        text,
  build-depends:        cabal-cache
  main-is:              Main.hs
  hs-source-dirs:       app
  other-modules:        App.Amazonka
                        App.Commands
                        App.Commands.Options.Parser
                        App.Commands.Debug
                        App.Commands.Debug.S3
                        App.Commands.Debug.S3.Cp
                        App.Commands.Options.Types
                        App.Commands.Plan
                        App.Commands.SyncFromArchive
                        App.Commands.SyncToArchive
                        App.Commands.Version
                        App.Run
                        App.Static
                        App.Static.Base
                        App.Static.Posix
                        App.Static.Windows
                        Paths_cabal_cache
  autogen-modules:      Paths_cabal_cache
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  ghc-options:          -fplugin=Effectful.Plugin

test-suite cabal-cache-test
  import:               base, project-config,
                        aeson,
                        amazonka,
                        bytestring,
                        directory,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-amazonka,
                        effectful-zoo-core,
                        effectful-zoo-hedgehog,
                        effectful-zoo-hunit,
                        effectful-zoo-lazy,
                        effectful,
                        exceptions,
                        filepath,
                        generic-lens,
                        Glob,
                        hedgehog-extras,
                        hedgehog,
                        hspec,
                        hw-hspec-hedgehog,
                        hw-prelude,
                        microlens,
                        network-uri,
                        raw-strings-qq,
                        resourcet-effectful,
                        text,
                        time
  type:                 exitcode-stdio-1.0
  main-is:              Spec.hs
  build-depends:        cabal-cache
  hs-source-dirs:       test
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  build-tool-depends:   hspec-discover:hspec-discover
  other-modules:        HaskellWorks.CabalCache.AwsSpec
                        HaskellWorks.CabalCache.IntegrationSpec
                        HaskellWorks.CabalCache.LocationSpec
                        HaskellWorks.CabalCache.QuerySpec
                        Test.Base
  ghc-options:          -fplugin=Effectful.Plugin