packages feed

pubgrub-0.1.0.0: pubgrub.cabal

cabal-version:      3.0
name:               pubgrub
version:            0.1.0.0
synopsis:           The PubGrub version solver
description:
    PubGrub is a version-solving algorithm: unit propagation with
    conflict-driven learning, and, when there is no solution, a proof of why
    that can be written out for a person to read.

    This is a Haskell implementation that is generic over the domain. A type class
    says what the variables, values, sets of values and facts are; a callback
    answers the solver's questions one variable at a time; and the explanation
    of a failure is worded by the domain.

    Start with the tutorial in "PubGrub.Tutorial". "PubGrub.Cookbook" has
    how-to guides, and "PubGrub" explains the model and re-exports what a user
    normally needs. The domain of Haskell packages is the @pubgrub-cabal@
    package.
category:           Distribution
license:            BSD-3-Clause
license-file:       LICENSE
author:             Andrea Bedini
maintainer:         andrea.bedini@moduscreate.com
copyright:          (c) 2026 Tweag I/O by Modus Create
homepage:           https://github.com/tweag/pubgrub-hs
bug-reports:        https://github.com/tweag/pubgrub-hs/issues
build-type:         Simple
tested-with:        GHC ==9.10.3 || ==9.12.2 || ==9.14.1
extra-doc-files:
    CHANGELOG.md
    README.md

source-repository head
    type:     git
    location: https://github.com/tweag/pubgrub-hs.git
    subdir:   pubgrub

common warnings
    ghc-options: -Wall

common language
    default-language:   GHC2021
    default-extensions: ImportQualifiedPost

library
    import:          warnings, language
    hs-source-dirs:  src
    exposed-modules:
        PubGrub
        PubGrub.Cookbook
        PubGrub.Derivation
        PubGrub.Incompatibility
        PubGrub.Pretty
        PubGrub.Provider
        PubGrub.Report
        PubGrub.SetOps
        PubGrub.Solver
        PubGrub.Term
        PubGrub.Tutorial
        PubGrub.Version
        PubGrub.VersionSet
    other-modules:
        PubGrub.PartialSolution
        PubGrub.Relation
        PubGrub.Store
    build-depends:
        , base        >=4.20  && <4.23
        , co-log-core >=0.3.2 && <0.4
        , containers  >=0.7   && <0.9
        , text        >=2.1   && <2.2

-- The suite compiles the library's sources itself rather than depending on
-- it, so that it can test the modules the library does not expose.
test-suite pubgrub-test
    import:         warnings, language
    type:           exitcode-stdio-1.0
    hs-source-dirs: src test
    main-is:        Main.hs
    other-modules:
        Cookbook
        CookbookSpec
        DocCode
        PartialSolutionSpec
        PubGrub
        PubGrub.Cookbook
        PubGrub.Derivation
        PubGrub.Incompatibility
        PubGrub.PartialSolution
        PubGrub.Pretty
        PubGrub.Provider
        PubGrub.Relation
        PubGrub.Report
        PubGrub.SetOps
        PubGrub.Solver
        PubGrub.Store
        PubGrub.Term
        PubGrub.Tutorial
        PubGrub.Version
        PubGrub.VersionSet
        RelationSpec
        StoreInvariantsSpec
        Toy
        ToyDomainSpec
    build-depends:
        , base             >=4.20  && <4.23
        , co-log-core      >=0.3.2 && <0.4
        , containers       >=0.7   && <0.9
        , tasty            >=1.5   && <1.6
        , tasty-hunit      >=0.10  && <0.11
        , tasty-quickcheck >=0.11  && <0.12
        , text             >=2.1   && <2.2