horizon-spec 0.5 → 0.6
raw patch · 10 files changed
+183/−218 lines, 10 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Horizon.Spec: [MkOverlay] :: PackageList -> Overlay
+ Horizon.Spec: [MkOverlay] :: PackageSet -> Overlay
Files
- ChangeLog.md +5/−0
- dhall/package.dhall +1/−1
- horizon-spec.cabal +1/−1
- src/Horizon/Spec.hs +1/−1
- test/data/modified-overlay/input.dhall +6/−15
- test/data/modified-overlay/output.golden +83/−80
- test/data/modified-package-set/input.dhall +1/−13
- test/data/sample-overlay/input.dhall +1/−13
- test/data/sample-overlay/output.golden +83/−80
- test/data/sample-package-set/input.dhall +1/−14
ChangeLog.md view
@@ -1,5 +1,10 @@ # Changelog for horizon-spec +## v0.6++* Change Overlay to wrap a `PackageSet` rather than a `PackageList`. The+ compiler field is needed for cabal preprocessing.+ ## v0.5 * Add `doBenchmark`, `includeBenchmarks`, `includeExecutables` and
dhall/package.dhall view
@@ -70,7 +70,7 @@ let PackageSet = { compiler : Compiler, packages : PackageList } -let Overlay = PackageList+let Overlay = PackageSet let PackageSetExportSettings = { packagesDir : Directory
horizon-spec.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: horizon-spec-version: 0.5+version: 0.6 synopsis: Horizon Stable Package Set Type Definitions description: This package contains the type definitions for the Horizon stable package set (https://horizon-haskell.net). This is a schema used to define package sets sourcing from hackage and git.
src/Horizon/Spec.hs view
@@ -148,7 +148,7 @@ type Overlay :: Type newtype Overlay where- MkOverlay :: { fromOverlay :: PackageList } -> Overlay+ MkOverlay :: { fromOverlay :: PackageSet } -> Overlay deriving stock (Show, Eq, Generic) deriving newtype (FromDhall, ToDhall)
test/data/modified-overlay/input.dhall view
@@ -1,18 +1,9 @@ let H = ../../../dhall/package.dhall -in H.modPackageList- H.Modifiers::{ doCheck = True, doJailbreak = False }- ( toMap- { lens = H.callHackage "lens" "5.2"- , Cabal-syntax =- H.callGit- "https://gitlab.haskell.org/ghc/packages/Cabal"- "e714824c6e652bf894f914bc57feccc15759668a"- (Some "Cabal-syntax")- , network-mux =- H.callTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , myPackage = H.callLocal "./myPackage"- }- )+in { compiler = "ghc-9.4.2"+ , packages =+ H.modPackageList+ H.Modifiers::{ doCheck = True, doJailbreak = False }+ (toMap ../packages.dhall)+ } : H.Overlay
test/data/modified-overlay/output.golden view
@@ -1,88 +1,91 @@-[ { mapKey = "Cabal-syntax"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromGit- { url = "https://gitlab.haskell.org/ghc/packages/Cabal"- , revision = "e714824c6e652bf894f914bc57feccc15759668a"- , subdir = Some "Cabal-syntax/"- }- , modifiers =- { doBenchmark = False- , doCheck = True- , doJailbreak = False- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+{ compiler = "ghc-9.4.2"+, packages =+ [ { mapKey = "Cabal-syntax"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromGit+ { url = "https://gitlab.haskell.org/ghc/packages/Cabal"+ , revision = "e714824c6e652bf894f914bc57feccc15759668a"+ , subdir = Some "Cabal-syntax/"+ }+ , modifiers =+ { doBenchmark = False+ , doCheck = True+ , doJailbreak = False+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "lens"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromHackage- { name = "lens", version = "5.2" }- , modifiers =- { doBenchmark = False- , doCheck = True- , doJailbreak = False- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "lens"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromHackage+ { name = "lens", version = "5.2" }+ , modifiers =+ { doBenchmark = False+ , doCheck = True+ , doJailbreak = False+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "myPackage"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromLocal- "myPackage/"- , modifiers =- { doBenchmark = False- , doCheck = True- , doJailbreak = False- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "myPackage"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromLocal+ "myPackage/"+ , modifiers =+ { doBenchmark = False+ , doCheck = True+ , doJailbreak = False+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "network-mux"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , modifiers =- { doBenchmark = False- , doCheck = True- , doJailbreak = False- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "network-mux"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromTarball+ "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"+ , modifiers =+ { doBenchmark = False+ , doCheck = True+ , doJailbreak = False+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-]+ ]+}
test/data/modified-package-set/input.dhall view
@@ -4,18 +4,6 @@ , packages = H.modPackageList H.Modifiers::{ doCheck = True, doJailbreak = False }- ( toMap- { lens = H.callHackage "lens" "5.2"- , Cabal-syntax =- H.callGit- "https://gitlab.haskell.org/ghc/packages/Cabal"- "e714824c6e652bf894f914bc57feccc15759668a"- (Some "Cabal-syntax")- , network-mux =- H.callTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , myPackage = H.callLocal "./myPackage"- }- )+ (toMap ../packages.dhall) } : H.PackageSet
test/data/sample-overlay/input.dhall view
@@ -1,15 +1,3 @@ let H = ../../../dhall/package.dhall -in toMap- { lens = H.callHackage "lens" "5.2"- , Cabal-syntax =- H.callGit- "https://gitlab.haskell.org/ghc/packages/Cabal"- "e714824c6e652bf894f914bc57feccc15759668a"- (Some "Cabal-syntax")- , network-mux =- H.callTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , myPackage = H.callLocal "./myPackage"- }- : H.Overlay+in { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall } : H.Overlay
test/data/sample-overlay/output.golden view
@@ -1,88 +1,91 @@-[ { mapKey = "Cabal-syntax"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromGit- { url = "https://gitlab.haskell.org/ghc/packages/Cabal"- , revision = "e714824c6e652bf894f914bc57feccc15759668a"- , subdir = Some "Cabal-syntax/"- }- , modifiers =- { doBenchmark = False- , doCheck = False- , doJailbreak = True- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+{ compiler = "ghc-9.4.2"+, packages =+ [ { mapKey = "Cabal-syntax"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromGit+ { url = "https://gitlab.haskell.org/ghc/packages/Cabal"+ , revision = "e714824c6e652bf894f914bc57feccc15759668a"+ , subdir = Some "Cabal-syntax/"+ }+ , modifiers =+ { doBenchmark = False+ , doCheck = False+ , doJailbreak = True+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "lens"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromHackage- { name = "lens", version = "5.2" }- , modifiers =- { doBenchmark = False- , doCheck = False- , doJailbreak = True- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "lens"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromHackage+ { name = "lens", version = "5.2" }+ , modifiers =+ { doBenchmark = False+ , doCheck = False+ , doJailbreak = True+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "myPackage"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromLocal- "myPackage/"- , modifiers =- { doBenchmark = False- , doCheck = False- , doJailbreak = True- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "myPackage"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromLocal+ "myPackage/"+ , modifiers =+ { doBenchmark = False+ , doCheck = False+ , doJailbreak = True+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-, { mapKey = "network-mux"- , mapValue =- { source =- < FromGit : { url : Text, revision : Text, subdir : Optional Text }- | FromHackage : { name : Text, version : Text }- | FromLocal : Text- | FromTarball : Text- >.FromTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , modifiers =- { doBenchmark = False- , doCheck = False- , doJailbreak = True- , enableProfiling = True- , includeBenchmarks = True- , includeExecutables = True- , includeTests = True+ , { mapKey = "network-mux"+ , mapValue =+ { source =+ < FromGit : { url : Text, revision : Text, subdir : Optional Text }+ | FromHackage : { name : Text, version : Text }+ | FromLocal : Text+ | FromTarball : Text+ >.FromTarball+ "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"+ , modifiers =+ { doBenchmark = False+ , doCheck = False+ , doJailbreak = True+ , enableProfiling = True+ , includeBenchmarks = True+ , includeExecutables = True+ , includeTests = True+ }+ , flags = [] : List < Enable : Text | Disable : Text > }- , flags = [] : List < Enable : Text | Disable : Text > }- }-]+ ]+}
test/data/sample-package-set/input.dhall view
@@ -1,17 +1,4 @@ let H = ../../../dhall/package.dhall -in { compiler = "ghc-9.4.2"- , packages = toMap- { lens = H.callHackage "lens" "5.2"- , Cabal-syntax =- H.callGit- "https://gitlab.haskell.org/ghc/packages/Cabal"- "e714824c6e652bf894f914bc57feccc15759668a"- (Some "Cabal-syntax")- , network-mux =- H.callTarball- "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"- , myPackage = H.callLocal "./myPackage"- }- }+in { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall } : H.PackageSet