heni-0.1.0.0: heni.cabal
cabal-version: 3.4
name: heni
version: 0.1.0.0
synopsis: Deliberate mutation testing with attributable evidence
description:
Run checked mutations in disposable workspaces and require precise
failure evidence from existing tests and commands.
homepage: https://github.com/shinzui/heni
bug-reports: https://github.com/shinzui/heni/issues
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: 2026 Nadeem Bitar
category: Testing
build-type: Simple
tested-with: ghc ==9.12.4
extra-doc-files:
CHANGELOG.md
README.md
docs/*.md
docs/adr/*.md
docs/design/*.md
docs/research/*.md
docs/validation/migration-measurements.json
docs/validation/migration-results.md
docs/validation/migration-source-identities.json
extra-source-files:
schemas/*.json
scripts/check-schemas.py
scripts/check-sdist.py
scripts/check-sdist.sh
scripts/measure-migration.py
scripts/test-migrations.sh
data-files:
examples/adapters/*.json
examples/adapters/README.md
examples/adapters/input
examples/migrations/README.md
examples/migrations/diagnostic-checker/LICENSE
examples/migrations/diagnostic-checker/heni.json
examples/migrations/diagnostic-checker/policy.txt
examples/migrations/diagnostic-checker/tools/Build.hs
examples/migrations/diagnostic-checker/tools/Check.hs
examples/migrations/generated-code/LICENSE
examples/migrations/generated-code/cabal.project
examples/migrations/generated-code/generated-fixture.cabal
examples/migrations/generated-code/heni.json
examples/migrations/generated-code/model.txt
examples/migrations/generated-code/test/Main.hs
examples/migrations/generated-code/tools/Build.hs
examples/migrations/patch-catalogue/LICENSE
examples/migrations/patch-catalogue/cabal.project
examples/migrations/patch-catalogue/heni-minimal-fixture.cabal
examples/migrations/patch-catalogue/heni.json
examples/migrations/patch-catalogue/patches/guard-bypass.patch
examples/migrations/patch-catalogue/patches/survivor.patch
examples/migrations/patch-catalogue/src/Capacity.hs
examples/migrations/patch-catalogue/test/Main.hs
examples/migrations/replacement/LICENSE
examples/migrations/replacement/cabal.project
examples/migrations/replacement/heni-minimal-fixture.cabal
examples/migrations/replacement/heni.json
examples/migrations/replacement/src/Capacity.hs
examples/migrations/replacement/test/Main.hs
examples/minimal/*.cabal
examples/minimal/cabal.project
examples/minimal/heni.json
examples/minimal/src/*.hs
examples/minimal/test/*.hs
examples/standalone/*.cabal
examples/standalone/*.hs
examples/standalone/target/*.hs
examples/standalone/target/*.json
examples/standalone/target/input
source-repository head
type: git
location: https://github.com/shinzui/heni.git
flag migration-tests
description: Run cross-package migration trials with an explicitly supplied CLI executable.
default: False
manual: True
common common
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
OverloadedLabels
OverloadedStrings
ghc-options:
-Wall
-Wcompat
-Wincomplete-uni-patterns
-Wincomplete-record-updates
build-depends:
base >=4.21.2 && <4.22,
containers >=0.7 && <0.9,
text >=2.1.4 && <2.2,
library
import: common
hs-source-dirs: src
build-depends:
aeson >=2.3.2 && <2.4,
bytestring >=0.12.2 && <0.13,
crypton >=2.2.5 && <2.3,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
process >=1.6.26.1 && <1.7,
stm >=2.5.3.1 && <2.6,
unix >=2.8.8 && <2.9,
exposed-modules:
Test.Heni
Test.Heni.Adapter
Test.Heni.BuildReuse
Test.Heni.Case
Test.Heni.Command
Test.Heni.Crash
Test.Heni.Edit
Test.Heni.Expectation
Test.Heni.Manifest
Test.Heni.Process
Test.Heni.Replay
Test.Heni.Report
Test.Heni.Resource
Test.Heni.Result
Test.Heni.Runner
Test.Heni.Scheduler
Test.Heni.Workspace
other-modules:
Test.Heni.Internal.Baseline
Test.Heni.Internal.Codec
Test.Heni.Internal.Files
Test.Heni.Internal.Model
Test.Heni.Internal.Prelude
Test.Heni.Internal.Process.Posix
executable heni-fixture
import: common
hs-source-dirs: test/fixture
main-is: Main.hs
build-depends:
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
process >=1.6.26.1 && <1.7,
unix >=2.8.8 && <2.9,
ghc-options: -threaded
executable heni-evidence-fixture
import: common
hs-source-dirs: test/evidence-fixture
main-is: Main.hs
build-depends:
bytestring >=0.12.2 && <0.13,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
ghc-options: -threaded
executable heni-library-example
import: common
hs-source-dirs: examples/library
main-is: Main.hs
other-modules: Definitions
build-depends: heni
ghc-options: -threaded
test-suite heni-runner
import: common
type: exitcode-stdio-1.0
hs-source-dirs:
test/runner
examples/library
main-is: Main.hs
other-modules:
Definitions
Paths_heni
autogen-modules: Paths_heni
build-depends:
aeson >=2.3.2 && <2.4,
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
build-tool-depends: heni:heni-fixture
ghc-options: -threaded
test-suite heni-process
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test/process
main-is: Main.hs
build-depends:
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
build-tool-depends: heni:heni-fixture
ghc-options: -threaded
test-suite heni-adapter
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test/adapter
main-is: Main.hs
build-depends:
aeson >=2.3.2 && <2.4,
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
build-tool-depends: heni:heni-evidence-fixture
ghc-options: -threaded
test-suite heni-unit
import: common
type: exitcode-stdio-1.0
hs-source-dirs:
test/unit
test/api
main-is: Main.hs
other-modules:
Consumer
Labels
build-depends: heni
ghc-options: -threaded
test-suite heni-workspace
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test/workspace
main-is: Main.hs
build-depends:
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
process >=1.6.26.1 && <1.7,
unix >=2.8.8 && <2.9,
ghc-options: -threaded
test-suite heni-scheduler
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test/scheduler
main-is: Main.hs
build-depends:
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
build-tool-depends: heni:heni-fixture
ghc-options: -threaded
executable heni-campaign-bench
import: common
hs-source-dirs:
bench/campaign
examples/library
main-is: Main.hs
other-modules:
Definitions
Paths_heni
autogen-modules: Paths_heni
build-depends:
aeson >=2.3.2 && <2.4,
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
unix >=2.8.8 && <2.9,
ghc-options: -threaded
test-suite heni-migration
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test/migration
main-is: Main.hs
other-modules:
Legacy
Paths_heni
autogen-modules: Paths_heni
build-depends:
aeson >=2.3.2 && <2.4,
bytestring >=0.12.2 && <0.13,
directory >=1.3.10.1 && <1.4,
filepath >=1.5.5 && <1.6,
heni ==0.1.0.0,
process >=1.6.26.1 && <1.7,
unix >=2.8.8 && <2.9,
build-tool-depends:
heni:heni-evidence-fixture,
heni:heni-fixture,
if !flag(migration-tests)
buildable: False
ghc-options: -threaded