packages feed

oglyad-0.1.2.0: oglyad.cabal

cabal-version:   3.0
name:            oglyad
version:         0.1.2.0
synopsis:        repository metadata and health checker for Terra
description:
  oglyad checks a terrapkg/packages checkout against Terra's published
  repodata and upstream releases. it reports packages that never got built,
  stale builds, upstream version drift, broken update.rhai scripts, and
  overlap with Fedora.

category:        Distribution
homepage:        https://github.com/terrapkg/oglyad
bug-reports:     https://github.com/terrapkg/oglyad/issues
license:         GPL-3.0-or-later
license-file:    LICENSE
author:          Cypress Reed
maintainer:      cypress@fyralabs.com
build-type:      Simple
extra-doc-files:
  CHANGELOG.md
  README.md

-- the lower bounds are what Fedora ships, which CI builds against. the upper
-- bounds follow the PVP from the newest versions that have been built
tested-with:     GHC ==9.10.3

source-repository head
  type:     git
  location: https://github.com/terrapkg/oglyad.git

common shared
  default-language:   GHC2021
  default-extensions:
    DerivingStrategies
    DeriveAnyClass
    LambdaCase
    MultiWayIf
    OverloadedStrings
    RecordWildCards

  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates -Wredundant-constraints

  build-depends:
    , base                 >=4.20 && <4.21
    , containers           >=0.7 && <0.8
    , deepseq              >=1.5 && <1.6
    , text                 >=2.1.3 && <2.2
    , time                 >=1.12.2 && <1.13

-- the modules shared by the binary and the test suite. there's deliberately
-- no library: packaged with Fedora's ghc-rpm-macros, an internal library
-- turns into a private .so that also links the test suite's dependencies
common modules
  hs-source-dirs:  src
  other-modules:
    Oglyad.App
    Oglyad.Check
    Oglyad.Check.BuildLag
    Oglyad.Check.Drift
    Oglyad.Check.DuplicateName
    Oglyad.Check.FedoraOverlap
    Oglyad.Check.NoAutoupdate
    Oglyad.Check.Stale
    Oglyad.Check.UnparsedRhai
    Oglyad.Check.UpstreamError
    Oglyad.Collect
    Oglyad.Ignore
    Oglyad.Process
    Oglyad.Regex
    Oglyad.Release
    Oglyad.Report
    Oglyad.Source.Anda
    Oglyad.Source.Cache
    Oglyad.Source.Monorepo
    Oglyad.Source.Repodata
    Oglyad.Source.Rhai
    Oglyad.Source.RhaiEval
    Oglyad.Source.Upstream
    Oglyad.Types
    Oglyad.Version
    Paths_oglyad

  autogen-modules: Paths_oglyad
  build-depends:
    , aeson                >=2.2.3 && <2.4
    , async                >=2.2.6 && <2.3
    , base16-bytestring    >=1.0.2 && <1.1
    , bytestring           >=0.12.2 && <0.13
    , conduit              >=1.3.6 && <1.4
    , cryptohash-sha256    >=0.11.102 && <0.12
    , directory            >=1.3.8 && <1.4
    , filepath             >=1.5.4 && <1.6
    , http-client          >=0.7.19 && <0.8
    , http-client-tls      >=0.3.6 && <0.5
    , http-types           >=0.12.4 && <0.13
    , megaparsec           >=9.7 && <9.9
    , mtl                  >=2.3.1 && <2.4
    , typed-process        >=0.2.13 && <0.3
    , vector               >=0.13.2 && <0.14
    , xml-conduit          >=1.10.1 && <1.11
    , xml-types            >=0.3.8 && <0.4

executable oglyad
  import:         shared, modules
  hs-source-dirs: app
  main-is:        Main.hs
  ghc-options:    -threaded -rtsopts "-with-rtsopts=-N4"
  build-depends:  optparse-applicative >=0.18.1 && <0.20

test-suite oglyad-test
  import:         shared, modules
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Spec.hs
  ghc-options:    -threaded
  build-depends:
    , hspec                >=2.11.16 && <2.12
    , QuickCheck           >=2.15 && <2.20
    , temporary            >=1.3 && <1.4