hnix-store/hnix-store-core/hnix-store-core.cabal

170 lines
3.8 KiB
Plaintext
Raw Normal View History

cabal-version: 2.2
name: hnix-store-core
2021-06-10 17:16:38 +03:00
version: 0.5.0.0
synopsis: Core effects for interacting with the Nix store.
description:
2021-03-16 11:54:23 +03:00
This package contains types and functions needed to describe
interactions with the Nix store abstracted away from
specific effectful context.
homepage: https://github.com/haskell-nix/hnix-store
license: Apache-2.0
license-file: LICENSE
author: Shea Levy
maintainer: shea@shealevy.com
copyright: 2018 Shea Levy
category: Nix
build-type: Simple
2021-03-16 11:54:23 +03:00
extra-source-files:
ChangeLog.md
, README.md
, tests/samples/example0.drv
, tests/samples/example1.drv
Common commons
if impl(ghc >= 8.10)
ghc-options: -Wall -Wunused-packages
else
ghc-options: -Wall
library
import: commons
2021-03-16 11:54:23 +03:00
exposed-modules:
System.Nix.Base32
, System.Nix.Build
, System.Nix.Derivation
, System.Nix.Hash
2021-06-08 14:23:25 +03:00
, System.Nix.Internal.Base
2021-03-16 11:54:23 +03:00
, System.Nix.Internal.Base32
2021-06-08 14:23:25 +03:00
, System.Nix.Internal.Truncation
2021-03-16 11:54:23 +03:00
, System.Nix.Internal.Hash
, System.Nix.Internal.Nar.Parser
, System.Nix.Internal.Nar.Streamer
, System.Nix.Internal.Nar.Effects
, System.Nix.Internal.Signature
, System.Nix.Internal.StorePath
, System.Nix.Nar
, System.Nix.ReadonlyStore
, System.Nix.Signature
, System.Nix.StorePath
, System.Nix.StorePathMetadata
build-depends:
base >=4.12 && <5
, relude
2021-03-16 11:54:23 +03:00
, attoparsec
, algebraic-graphs >= 0.5 && < 0.6
, base16-bytestring
, base64-bytestring
, bytestring
, cereal
, containers
treewide: migrate crypto(hash-* -> nite) Reference: Main cause: https://github.com/haskell-hvr/cryptohash-sha512/issues/7 The whole `cryptohash-*` package family is abandoned, there is no signs of maintainer activity there, so it stopped following Haskell ecosystem & `base` releases. Knowing the human history & situation around it - it would not be reviwed, which gives experience to not hardcode on the (specifically when emotional) dependency. Experience I drawn from this story is to keep things simplier when possible & have more flexible systems as a result code. It was "a bit too much" for what hashing is, for the code to have 2 hashing type systems (external & internal) & reinventment of `HashAlgorithm` type duplicate. The whole code was really rigid with a lot of type applicating the data kinds, those are dependent type features & should be used cautiously, since interface became rigid to changes, so afterwards it is easier & effective to dismantle and recreate the subsystem then to evolve it. Previous hashing history: https://github.com/haskell-nix/hnix-store/issues/156 https://github.com/haskell-nix/hnix-store/issues/142 https://github.com/haskell-nix/hnix-store/pull/93 https://github.com/haskell-nix/hnix-store/issues/92 https://github.com/haskell-nix/hnix-store/issues/90 https://github.com/haskell-nix/hnix-store/issues/83 https://github.com/haskell-nix/hnix-store/pull/64 https://github.com/haskell-nix/hnix-store/pull/38 https://github.com/haskell-nix/hnix-store/pull/32 https://github.com/haskell-nix/hnix-store/pull/31 https://github.com/haskell-nix/hnix-store/pull/28 https://github.com/haskell-nix/hnix-store/pull/27 https://github.com/haskell-nix/hnix-store/pull/25 https://github.com/haskell-nix/hnix-store/issues/18 https://github.com/haskell-nix/hnix-store/pull/14
2021-06-09 15:24:52 +03:00
-- Required for cryptonite low-level type convertion
, memory
, cryptonite
2021-03-16 11:54:23 +03:00
, directory
, filepath
, hashable
, lifted-base
, monad-control
, mtl
, nix-derivation >= 1.1.1 && <2
, saltine
, time
, text
, unix
, unordered-containers
, vector
2021-08-06 17:38:43 +03:00
mixins:
base hiding (Prelude)
, relude (Relude as Prelude)
, relude
default-extensions:
OverloadedStrings
, DeriveGeneric
, DeriveDataTypeable
, DeriveFunctor
, DeriveFoldable
, DeriveTraversable
, DeriveLift
, FlexibleContexts
, FlexibleInstances
, StandaloneDeriving
, TypeApplications
, TypeSynonymInstances
, InstanceSigs
, MultiParamTypeClasses
, TupleSections
, LambdaCase
, BangPatterns
, ViewPatterns
hs-source-dirs: src
default-language: Haskell2010
2018-05-01 11:46:56 +03:00
Flag bounded_memory
2021-01-06 13:51:12 +03:00
description: Run tests of constant memory use (requires +RTS -T)
default: False
2018-05-01 11:46:56 +03:00
test-suite format-tests
import: commons
2021-01-06 13:51:12 +03:00
if flag(bounded_memory)
cpp-options: -DBOUNDED_MEMORY
ghc-options: -rtsopts -fprof-auto
2021-01-06 13:51:12 +03:00
type: exitcode-stdio-1.0
main-is: Driver.hs
other-modules:
2021-03-16 11:54:23 +03:00
Arbitrary
Derivation
NarFormat
Hash
StorePath
2021-01-06 13:51:12 +03:00
hs-source-dirs:
2021-03-16 11:54:23 +03:00
tests
build-tool-depends:
tasty-discover:tasty-discover
2021-01-06 13:51:12 +03:00
build-depends:
hnix-store-core
, attoparsec
, base
2021-08-06 17:38:43 +03:00
, relude
2021-01-06 13:51:12 +03:00
, base16-bytestring
, base64-bytestring
, binary
, bytestring
, containers
treewide: migrate crypto(hash-* -> nite) Reference: Main cause: https://github.com/haskell-hvr/cryptohash-sha512/issues/7 The whole `cryptohash-*` package family is abandoned, there is no signs of maintainer activity there, so it stopped following Haskell ecosystem & `base` releases. Knowing the human history & situation around it - it would not be reviwed, which gives experience to not hardcode on the (specifically when emotional) dependency. Experience I drawn from this story is to keep things simplier when possible & have more flexible systems as a result code. It was "a bit too much" for what hashing is, for the code to have 2 hashing type systems (external & internal) & reinventment of `HashAlgorithm` type duplicate. The whole code was really rigid with a lot of type applicating the data kinds, those are dependent type features & should be used cautiously, since interface became rigid to changes, so afterwards it is easier & effective to dismantle and recreate the subsystem then to evolve it. Previous hashing history: https://github.com/haskell-nix/hnix-store/issues/156 https://github.com/haskell-nix/hnix-store/issues/142 https://github.com/haskell-nix/hnix-store/pull/93 https://github.com/haskell-nix/hnix-store/issues/92 https://github.com/haskell-nix/hnix-store/issues/90 https://github.com/haskell-nix/hnix-store/issues/83 https://github.com/haskell-nix/hnix-store/pull/64 https://github.com/haskell-nix/hnix-store/pull/38 https://github.com/haskell-nix/hnix-store/pull/32 https://github.com/haskell-nix/hnix-store/pull/31 https://github.com/haskell-nix/hnix-store/pull/28 https://github.com/haskell-nix/hnix-store/pull/27 https://github.com/haskell-nix/hnix-store/pull/25 https://github.com/haskell-nix/hnix-store/issues/18 https://github.com/haskell-nix/hnix-store/pull/14
2021-06-09 15:24:52 +03:00
, cryptonite
2021-01-06 13:51:12 +03:00
, directory
, filepath
, process
, tasty
, tasty-golden
, hspec
2021-01-06 13:51:12 +03:00
, tasty-hspec
, tasty-hunit
, tasty-quickcheck
, temporary
, text
, unix
2021-08-06 17:38:43 +03:00
mixins:
base hiding (Prelude)
, relude (Relude as Prelude)
, relude
default-extensions:
OverloadedStrings
, DeriveGeneric
, DeriveDataTypeable
, DeriveFunctor
, DeriveFoldable
, DeriveTraversable
, DeriveLift
, FlexibleContexts
, FlexibleInstances
, StandaloneDeriving
, TypeApplications
, TypeSynonymInstances
, InstanceSigs
, MultiParamTypeClasses
, TupleSections
, LambdaCase
, BangPatterns
, ViewPatterns
2021-01-06 13:51:12 +03:00
default-language: Haskell2010