From 73df02d1341eca1267d6f4abcf7363749576ba0b Mon Sep 17 00:00:00 2001 From: Recursion Ninja Date: Wed, 28 Aug 2024 13:58:51 -0400 Subject: [PATCH] Updating GitHub actions [3] --- config/cabal.project.integration | 232 +++++++++++++++++++++++-------- 1 file changed, 175 insertions(+), 57 deletions(-) diff --git a/config/cabal.project.integration b/config/cabal.project.integration index a56b7c3e..67e672e8 100644 --- a/config/cabal.project.integration +++ b/config/cabal.project.integration @@ -1,49 +1,171 @@ --------------------------------------------------------------------------------- --- Domain of PHAGE packages --- * PHAGE-integration-tests +-- Build metadata flags +-- +-- Sensible alterations from the defaults to improve the build experience during +-- iterative development. Simultaneously, does not hinder release builds. --------------------------------------------------------------------------------- -packages: - pkg/PHAGE-integration-tests - pkg/PhyGraph - pkg/PhyloLib - pkg/*/*.cabal - -with-compiler: ghc-9.10.1 +Executable-Static: False +Haddock-HTML: True +Haddock-Tests: True +Haddock-benchmarks: True +Haddock-Internal: True +Haddock-Hyperlink-Source: True +Jobs: $ncpus +--keep-going: True +Minimize-Conflict-Set: True +Semaphore: True --------------------------------------------------------------------------------- --- Output paths +-- Dependency specifications -- --- Place build output(s) in more accessible locations. Binaries should go in `bin` --- and log files of the build/benchmarks/tests should go in `log`. +-- Always allow a newer version of libraries which are tightly coupled to the GHC +-- compiler version. This allows the project to build with newer versions of the +-- compiler without having to tediously tinker with dependencies, both direct and +-- transitive. +-- +-- Always allow a newer version of libraries which have had a major release due +-- to a security or performance patch. Add a `preference` indicating the desire +-- to use a version greater than or equal to the patch. --------------------------------------------------------------------------------- --- datadir: ./data --- docdir: ./doc --- htmldir: ./doc/html -symlink-bindir: ./bin -installdir: ./bin -logs-dir: ./log -install-method: copy -overwrite-policy: always +Allow-Newer: + aeson, + base, + base-compat, + binary, + bytestring, + Cabal, + containers, + deepseq, + ghc, + ghc-bignum, + ghc-prim, + hashable, + integer-gmp, + lens, + mtl, + pretty, + primative, + semigroupoids, + template-haskell, + text, + text-builder-linear, + th-abstraction, + time + +-- Required to use the GHC-bound (installed) version +Constraints: + base installed, + ghc installed, + ghc-bignum installed, + ghc-prim installed, + integer-gmp installed, + template-haskell installed + + +-- Reduce the project's dependency footprint via build flags +Constraints: + bifunctors -tagged, + comonad -indexed-traversable, + lens +inlining -test-hunit -test-properties -test-templates +trustworthy, + pointed -comonad -kan-extensions -semigroupoids -semigroups -stm -tagged, + semialign -semigroupoids, + semigroups -binary -bytestring -deepseq -hashable -tagged -template-haskell -text -transformers -unordered-containers, + semigroupoids -comonad, + + +-- Apply performance flags to specific packages +Constraints: + bitvec +simd, + directory +os-string, + hashable -random-initial-seed, + hashtables -bounds-checking -debug -portable +unsafe-tricks, + optparse-applicative +process, + tasty +unix, + text -pure-haskell +simdutf, + vector -BoundsChecks -InternalChecks -UnsafeChecks -Wall, + +Preferences: + aeson >= 2.1.0.0, + bytestring >= 0.12.0.0, + filepath >= 1.4.100.0, + mtl >= 2.3.1, + text >= 2.0.1, + unordered-containers >= 0.2.18.0, + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-alphabet + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-dynamic-character + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-dynamic-character-element + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-evaluation + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-file-formats + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-measure-class + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-measure-transition + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-measure-units + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b + +Source-Repository-Package + Type: git + Location: https://github.com/amnh/PHANE + Subdir: pkg/PHANE-PhyloLib + Tag: 6f300d99c3be9e5201f31ac4480bbacb3f547f8b --------------------------------------------------------------------------------- --- Build metadata flags +-- Output paths -- --- Sensible alterations from the defaults to improve the build experience during --- iterative development. Simultaneously, does not hinder release builds. +-- Place build output(s) in more accessible locations. Binaries should go in `bin` +-- and log files of the build/benchmarks/tests should go in `log`. --------------------------------------------------------------------------------- -haddock-html: True -haddock-tests: True -haddock-benchmarks: True -haddock-internal: True -haddock-hyperlink-source: True -jobs: $ncpus -keep-going: True -minimize-conflict-set: True +Builddir: ./doc +Symlink-bindir: ./bin +Installdir: ./bin +Logs-Dir: ./log +Install-method: copy +Overwrite-Policy: always +-- Datadir: ./data +-- Docdir: ./doc +-- HTMLdir: ./doc/html --------------------------------------------------------------------------------- @@ -62,14 +184,16 @@ minimize-conflict-set: True -- future breaking changes as well as improving overall code quality. --------------------------------------------------------------------------------- +Packages: . + -- Applies to *all* packages, not just dependencies... -package * +Package * benchmarks: False documentation: False tests: False optimization: 2 - +-- Applies to *only* the specified package! package PHAGE-integration-tests benchmarks: False documentation: False @@ -89,31 +213,25 @@ package PhyGraph --------------------------------------------------------------------------------- --- Dependency specifications +-- GHC-9.8.* comptibility -- --- Always allow a newer version of libraries which are tightly coupled to the GHC --- compiler version. This allows the project to build with newer versions of the --- compiler without having to tediously tinker with dependencies, both direct and --- transitive. +-- Updated Hackage references for GHC maintainer patched dependency packages -- --- Always allow a newer version of libraries which have had a major release due --- to a security or performance patch. Add a `preference` indicating the desire --- to use a version greater than or equal to the patch. +-- Also manual source references for other patched dependency packages --------------------------------------------------------------------------------- -allow-newer: - aeson, - bytestring, - text, - -preferences: - aeson >= 2.0.0, - bytestring >= 0.11.3, - filepath >= 1.4.100.0, - mtl >= 2.3, - text >= 2.0, - -source-repository-package - type: git - location: https://github.com/recursion-ninja/bv-little - tag: 4541d78545933f450af5c241a83e4b07a0e69dca +With-Compiler: + ghc-9.10.1 + +Active-Repositories: + hackage.haskell.org, + head.hackage.ghc.haskell.org:override + +Repository head.hackage.ghc.haskell.org + url: https://ghc.gitlab.haskell.org/head.hackage/ + secure: True + key-threshold: 3 + root-keys: + 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 + 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d + f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89