This turns on the GHC option `-Werror` to ensure that warnings fail the build in dev mode. The flag is enabled in the CI. README is updated with cabal based instructions.
342 lines
11 KiB
Plaintext
342 lines
11 KiB
Plaintext
cabal-version: 2.4
|
|
name: minio-hs
|
|
version: 1.6.0
|
|
synopsis: A MinIO Haskell Library for Amazon S3 compatible cloud
|
|
storage.
|
|
description: The MinIO Haskell client library provides simple APIs to
|
|
access MinIO, Amazon S3 and other API compatible cloud
|
|
storage servers.
|
|
homepage: https://github.com/minio/minio-hs#readme
|
|
license: Apache-2.0
|
|
license-file: LICENSE
|
|
author: MinIO Dev Team
|
|
maintainer: dev@min.io
|
|
category: Network, AWS, Object Storage
|
|
build-type: Simple
|
|
stability: Experimental
|
|
extra-doc-files:
|
|
CHANGELOG.md
|
|
CONTRIBUTING.md
|
|
docs/API.md
|
|
README.md
|
|
extra-source-files:
|
|
examples/*.hs
|
|
stack.yaml
|
|
tested-with: GHC == 8.6.5
|
|
, GHC == 8.8.4
|
|
, GHC == 8.10.7
|
|
, GHC == 9.0.2
|
|
, GHC == 9.2.4
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/minio/minio-hs.git
|
|
|
|
Flag dev
|
|
Description: Build package in development mode
|
|
Default: False
|
|
Manual: True
|
|
|
|
common base-settings
|
|
ghc-options: -Wall
|
|
-Wcompat
|
|
-Widentities
|
|
-Wincomplete-uni-patterns
|
|
-Wincomplete-record-updates
|
|
-haddock
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wredundant-constraints
|
|
if impl(ghc >= 8.2)
|
|
ghc-options: -fhide-source-paths
|
|
if impl(ghc >= 8.4)
|
|
ghc-options: -Wpartial-fields
|
|
-- -Wmissing-export-lists
|
|
if impl(ghc >= 8.8)
|
|
ghc-options: -Wmissing-deriving-strategies
|
|
-Werror=missing-deriving-strategies
|
|
-- if impl(ghc >= 8.10)
|
|
-- ghc-options: -Wunused-packages -- disabled due to bug related to mixin config
|
|
if impl(ghc >= 9.0)
|
|
ghc-options: -Winvalid-haddock
|
|
if impl(ghc >= 9.2)
|
|
ghc-options: -Wredundant-bang-patterns
|
|
if flag(dev)
|
|
ghc-options: -Werror
|
|
|
|
default-language: Haskell2010
|
|
|
|
default-extensions: BangPatterns
|
|
, DerivingStrategies
|
|
, FlexibleContexts
|
|
, FlexibleInstances
|
|
, LambdaCase
|
|
, MultiParamTypeClasses
|
|
, MultiWayIf
|
|
, OverloadedStrings
|
|
, RankNTypes
|
|
, ScopedTypeVariables
|
|
, TupleSections
|
|
, TypeFamilies
|
|
|
|
|
|
other-modules: Lib.Prelude
|
|
, Network.Minio.API
|
|
, Network.Minio.APICommon
|
|
, Network.Minio.Data
|
|
, Network.Minio.Data.ByteString
|
|
, Network.Minio.Data.Crypto
|
|
, Network.Minio.Data.Time
|
|
, Network.Minio.CopyObject
|
|
, Network.Minio.Errors
|
|
, Network.Minio.ListOps
|
|
, Network.Minio.PresignedOperations
|
|
, Network.Minio.PutObject
|
|
, Network.Minio.SelectAPI
|
|
, Network.Minio.Sign.V4
|
|
, Network.Minio.Utils
|
|
, Network.Minio.XmlGenerator
|
|
, Network.Minio.XmlParser
|
|
, Network.Minio.JsonParser
|
|
|
|
mixins: base hiding (Prelude)
|
|
, relude (Relude as Prelude)
|
|
, relude
|
|
|
|
build-depends: base >= 4.7 && < 5
|
|
, relude >= 0.7 && < 2
|
|
, aeson >= 1.2 && < 3
|
|
, base64-bytestring >= 1.0
|
|
, binary >= 0.8.5.0
|
|
, bytestring >= 0.10
|
|
, case-insensitive >= 1.2
|
|
, conduit >= 1.3
|
|
, conduit-extra >= 1.3
|
|
, connection
|
|
, cryptonite >= 0.25
|
|
, cryptonite-conduit >= 0.2
|
|
, digest >= 0.0.1
|
|
, directory
|
|
, filepath >= 1.4
|
|
, http-client >= 0.5
|
|
, http-client-tls
|
|
, http-conduit >= 2.3
|
|
, http-types >= 0.12
|
|
, ini
|
|
, memory >= 0.14
|
|
, network-uri
|
|
, resourcet >= 1.2
|
|
, retry
|
|
, text >= 1.2
|
|
, time >= 1.9
|
|
, transformers >= 0.5
|
|
, unliftio >= 0.2 && < 0.3
|
|
, unliftio-core >= 0.2 && < 0.3
|
|
, unordered-containers >= 0.2
|
|
, xml-conduit >= 1.8
|
|
|
|
library
|
|
import: base-settings
|
|
hs-source-dirs: src
|
|
exposed-modules: Network.Minio
|
|
, Network.Minio.AdminAPI
|
|
, Network.Minio.S3API
|
|
|
|
Flag live-test
|
|
Description: Build the test suite that runs against a live MinIO server
|
|
Default: False
|
|
Manual: True
|
|
|
|
test-suite minio-hs-live-server-test
|
|
import: base-settings
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: test, src
|
|
main-is: LiveServer.hs
|
|
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
|
other-modules: Network.Minio
|
|
, Network.Minio.S3API
|
|
, Network.Minio.AdminAPI
|
|
, Network.Minio.API.Test
|
|
, Network.Minio.JsonParser.Test
|
|
, Network.Minio.TestHelpers
|
|
, Network.Minio.Utils.Test
|
|
, Network.Minio.XmlGenerator.Test
|
|
, Network.Minio.XmlParser.Test
|
|
build-depends: minio-hs
|
|
, raw-strings-qq
|
|
, tasty
|
|
, tasty-hunit
|
|
, tasty-quickcheck
|
|
, tasty-smallcheck
|
|
, QuickCheck
|
|
if !flag(live-test)
|
|
buildable: False
|
|
|
|
test-suite minio-hs-test
|
|
import: base-settings
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: test, src
|
|
main-is: Spec.hs
|
|
build-depends: minio-hs
|
|
, raw-strings-qq
|
|
, QuickCheck
|
|
, tasty
|
|
, tasty-hunit
|
|
, tasty-quickcheck
|
|
, tasty-smallcheck
|
|
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
|
other-modules: Lib.Prelude
|
|
, Network.Minio
|
|
, Network.Minio.S3API
|
|
, Network.Minio.AdminAPI
|
|
, Network.Minio.TestHelpers
|
|
, Network.Minio.API.Test
|
|
, Network.Minio.JsonParser.Test
|
|
, Network.Minio.Utils.Test
|
|
, Network.Minio.XmlGenerator.Test
|
|
, Network.Minio.XmlParser.Test
|
|
|
|
Flag examples
|
|
Description: Build the examples
|
|
Default: False
|
|
Manual: True
|
|
|
|
common examples-settings
|
|
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
|
default-language: Haskell2010
|
|
default-extensions: OverloadedStrings
|
|
build-depends: base >= 4.7 && < 5
|
|
, bytestring
|
|
, case-insensitive
|
|
, conduit
|
|
, conduit-extra
|
|
, filepath
|
|
, minio-hs
|
|
, optparse-applicative
|
|
, text
|
|
, time
|
|
, unliftio
|
|
, unordered-containers
|
|
hs-source-dirs: examples
|
|
if !flag(examples)
|
|
buildable: False
|
|
|
|
executable BucketExists
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: BucketExists.hs
|
|
|
|
executable CopyObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: CopyObject.hs
|
|
|
|
executable FileUploader
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: FileUploader.hs
|
|
|
|
executable GetConfig
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: GetConfig.hs
|
|
|
|
executable GetObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: GetObject.hs
|
|
|
|
executable HeadObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: HeadObject.hs
|
|
|
|
executable Heal
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: Heal.hs
|
|
|
|
executable ListBuckets
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ListBuckets.hs
|
|
|
|
executable ListIncompleteUploads
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ListIncompleteUploads.hs
|
|
|
|
executable ListObjects
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ListObjects.hs
|
|
|
|
executable MakeBucket
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: MakeBucket.hs
|
|
|
|
executable PresignedGetObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: PresignedGetObject.hs
|
|
|
|
executable PresignedPostPolicy
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: PresignedPostPolicy.hs
|
|
|
|
executable PresignedPutObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: PresignedPutObject.hs
|
|
|
|
executable PutObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: PutObject.hs
|
|
|
|
executable RemoveBucket
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: RemoveBucket.hs
|
|
|
|
executable RemoveIncompleteUpload
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: RemoveIncompleteUpload.hs
|
|
|
|
executable RemoveObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: RemoveObject.hs
|
|
|
|
executable SelectObject
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: SelectObject.hs
|
|
|
|
executable ServerInfo
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ServerInfo.hs
|
|
|
|
executable ServiceSendRestart
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ServiceSendRestart.hs
|
|
|
|
executable ServiceSendStop
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ServiceSendStop.hs
|
|
|
|
executable ServiceStatus
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: ServiceStatus.hs
|
|
|
|
executable SetConfig
|
|
import: examples-settings
|
|
scope: private
|
|
main-is: SetConfig.hs
|