packages feed

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 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