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