packages feed

horizon-spec 0.6.4 → 0.9.0

raw patch · 20 files changed

+69/−690 lines, 20 filesdep −horizon-specdep −prettyprinterdep −sydtestdep ~containersdep ~dhalldep ~path

Dependencies removed: horizon-spec, prettyprinter, sydtest

Dependency ranges changed: containers, dhall, path, path-dhall-instance, template-haskell, text, th-lift

Files

ChangeLog.md view
@@ -1,5 +1,16 @@ # Changelog for horizon-spec +## v0.9.0++* Support horizon-spec (dhall) 0.9.0.+* Remove `FromLocal` and `callLocal`.++## v0.7.0++* Horizon.Spec.Types.Policy: Add `Policy` type with `Keep` and `Pin`+  constructors.+* Horizon.Spec.Types.HaskellPackage: Add 'policy' field.+ ## v0.6.4  * Separate Types out into separate modules.
LICENSE view
@@ -1,4 +1,4 @@-Copyright 2022 Homotopic.Tech Ltd+Copyright 2022-2023 Homotopic.Tech Ltd  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in
README.md view
@@ -2,18 +2,3 @@  horizon-spec contains the type definitions for [horizon-platform](https://horizon-haskell.net).--Both haskell and dhall versions are supplied.--## Building--```-nix build-```--## Development--```-nix develop-cabal test all-```
− dhall/package.dhall
@@ -1,157 +0,0 @@-let Prelude =-        env:DHALL_PRELUDE-      ? https://raw.githubusercontent.com/dhall-lang/dhall-lang/v21.1.0/Prelude/package.dhall-          sha256:0fed19a88330e9a8a3fbe1e8442aa11d12e38da51eb12ba8bcb56f3c25d0854a--let FilePath = Text--let Directory = Text--let Name = Text--let Version = Text--let Revision = Text--let Subdir = Text--let Url = Text--let HaskellSource =-      < FromHackage : { name : Name, version : Version }-      | FromGit : { url : Url, revision : Revision, subdir : Optional Subdir }-      | FromLocal : Subdir-      | FromTarball : Url-      >--let Modifiers =-      { Type =-          { doBenchmark : Bool-          , doCheck : Bool-          , doJailbreak : Bool-          , enableProfiling : Bool-          , includeBenchmarks : Bool-          , includeExecutables : Bool-          , includeTests : Bool-          }-      , default =-        { doBenchmark = False-        , doCheck = False-        , doJailbreak = True-        , enableProfiling = True-        , includeBenchmarks = True-        , includeExecutables = True-        , includeTests = True-        }-      }--let Attr = λ(a : Type) → { mapKey : Text, mapValue : a }--let Flag-    : ∀(x : Type) → Type-    = λ(x : Type) → < Enable : x | Disable : x >--let CabalFlag = Flag Text--let HaskellPackage =-      { Type =-          { source : HaskellSource-          , modifiers : Modifiers.Type-          , flags : List CabalFlag-          }-      , default = { modifiers = Modifiers.default, flags = [] : List CabalFlag }-      }--let Compiler = Text--let PackageEntry = Attr HaskellPackage.Type--let PackageList = List PackageEntry--let PackageSet = { compiler : Compiler, packages : PackageList }--let Overlay = PackageSet--let PackageSetExportSettings =-      { packagesDir : Directory-      , packageSetFile : FilePath-      , packageSet : PackageSet-      }--let OverlayExportSettings =-      { packagesDir : Directory, overlayFile : FilePath, overlay : Overlay }--let HorizonExport =-      < MakePackageSet : PackageSetExportSettings-      | MakeOverlay : OverlayExportSettings-      >--let callHackage-    : Name → Version → HaskellPackage.Type-    = λ(name : Name) →-      λ(version : Version) →-        HaskellPackage::{ source = HaskellSource.FromHackage { name, version } }--let callGit-    : Url → Revision → Optional Subdir → HaskellPackage.Type-    = λ(url : Url) →-      λ(revision : Revision) →-      λ(subdir : Optional Subdir) →-        HaskellPackage::{-        , source = HaskellSource.FromGit { url, revision, subdir }-        }--let callLocal-    : Subdir → HaskellPackage.Type-    = λ(subdir : Subdir) →-        HaskellPackage::{ source = HaskellSource.FromLocal subdir }--let callTarball-    : Url → HaskellPackage.Type-    = λ(url : Url) → HaskellPackage::{ source = HaskellSource.FromTarball url }--let modPackageList-    : Modifiers.Type → PackageList → PackageList-    = λ(xs : Modifiers.Type) →-      λ(ps : PackageList) →-        Prelude.List.map-          PackageEntry-          PackageEntry-          (λ(x : PackageEntry) → x with mapValue.modifiers = xs)-          ps--let modPackageSet-    : Modifiers.Type → PackageSet → PackageSet-    = λ(xs : Modifiers.Type) →-      λ(ps : PackageSet) →-        ps-        with packages = modPackageList xs ps.packages--in  { Attr-    , CabalFlag-    , Compiler-    , Directory-    , FilePath-    , Flag-    , HaskellSource-    , HaskellPackage-    , HorizonExport-    , Modifiers-    , Name-    , OverlayExportSettings-    , Overlay-    , PackageEntry-    , PackageList-    , PackageSetExportSettings-    , PackageSet-    , Revision-    , Subdir-    , Version-    , Url-    , callGit-    , callHackage-    , callLocal-    , callTarball-    , modPackageList-    , modPackageSet-    }
horizon-spec.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               horizon-spec-version:            0.6.4+version:            0.9.0 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.@@ -15,16 +15,7 @@ build-type:         Simple extra-source-files:   ChangeLog.md-  dhall/package.dhall   README.md-  test/data/modified-overlay/input.dhall-  test/data/modified-overlay/output.golden-  test/data/modified-package-set/input.dhall-  test/data/modified-package-set/output.golden-  test/data/sample-overlay/input.dhall-  test/data/sample-overlay/output.golden-  test/data/sample-package-set/input.dhall-  test/data/sample-package-set/output.golden  source-repository head   type:     git@@ -41,7 +32,6 @@     Horizon.Spec.Types.HaskellPackage     Horizon.Spec.Types.HaskellSource     Horizon.Spec.Types.HorizonExport-    Horizon.Spec.Types.LocalSource     Horizon.Spec.Types.Modifiers     Horizon.Spec.Types.Name     Horizon.Spec.Types.Overlay@@ -52,6 +42,7 @@     Horizon.Spec.Types.PackageSet     Horizon.Spec.Types.PackageSetExportSettings     Horizon.Spec.Types.PackageSetFile+    Horizon.Spec.Types.Policy     Horizon.Spec.Types.Repo     Horizon.Spec.Types.Revision     Horizon.Spec.Types.Subdir@@ -76,32 +67,13 @@     -Wno-safe -Wno-unsafe    build-depends:-    , base                 >=4.7 && <5-    , containers-    , dhall-    , path-    , path-dhall-instance-    , template-haskell-    , text-    , th-lift--  default-language:   Haskell2010--executable horizon-spec-tests-  main-is:            Spec.hs-  hs-source-dirs:     test-  ghc-options:-    -Weverything -Wno-all-missed-specialisations -Wno-implicit-prelude-    -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module-    -Wno-safe -Wno-unsafe--  default-extensions: TypeApplications-  build-depends:-    , base           >=4.7 && <5-    , dhall-    , horizon-spec-    , prettyprinter-    , sydtest-    , text+    , base                 >=4.7    && <5+    , containers           >=0.6.6  && <0.7+    , dhall                >=1.41.2 && <1.42+    , path                 >=0.9.2  && <0.10+    , path-dhall-instance  >=0.2.1  && <0.3+    , template-haskell     >=2.19.0 && <2.20+    , text                 >=2.0.1  && <2.1+    , th-lift              >=0.8.2  && <0.9    default-language:   Haskell2010
src/Horizon/Spec.hs view
@@ -1,33 +1,32 @@ {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} {-# LANGUAGE DuplicateRecordFields #-}-module Horizon.Spec (-  module Horizon.Spec.Types.CabalFlag,-  module Horizon.Spec.Types.Compiler,-  module Horizon.Spec.Types.Flag,-  module Horizon.Spec.Types.GitSource,-  module Horizon.Spec.Types.HackageSource,-  module Horizon.Spec.Types.HaskellPackage,-  module Horizon.Spec.Types.HaskellSource,-  module Horizon.Spec.Types.HorizonExport,-  module Horizon.Spec.Types.LocalSource,-  module Horizon.Spec.Types.Modifiers,-  module Horizon.Spec.Types.Name,-  module Horizon.Spec.Types.OverlayExportSettings,-  module Horizon.Spec.Types.OverlayFile,-  module Horizon.Spec.Types.Overlay,-  module Horizon.Spec.Types.PackageList,-  module Horizon.Spec.Types.PackageSetExportSettings-,  module Horizon.Spec.Types.PackageSetFile-,  module Horizon.Spec.Types.PackageSet-,  module Horizon.Spec.Types.PackagesDir-,  module Horizon.Spec.Types.Repo-,  module Horizon.Spec.Types.Revision-,  module Horizon.Spec.Types.Subdir-,  module Horizon.Spec.Types.TarballSource-,  module Horizon.Spec.Types.Url-,  module Horizon.Spec.Types.Version-  )-  where+module Horizon.Spec+ ( module Horizon.Spec.Types.CabalFlag+ , module Horizon.Spec.Types.Compiler+ , module Horizon.Spec.Types.Flag+ , module Horizon.Spec.Types.GitSource+ , module Horizon.Spec.Types.HackageSource+ , module Horizon.Spec.Types.HaskellPackage+ , module Horizon.Spec.Types.HaskellSource+ , module Horizon.Spec.Types.HorizonExport+ , module Horizon.Spec.Types.Modifiers+ , module Horizon.Spec.Types.Name+ , module Horizon.Spec.Types.OverlayExportSettings+ , module Horizon.Spec.Types.OverlayFile+ , module Horizon.Spec.Types.Overlay+ , module Horizon.Spec.Types.PackageList+ , module Horizon.Spec.Types.PackageSetExportSettings+ , module Horizon.Spec.Types.PackageSetFile+ , module Horizon.Spec.Types.PackageSet+ , module Horizon.Spec.Types.PackagesDir+ , module Horizon.Spec.Types.Repo+ , module Horizon.Spec.Types.Revision+ , module Horizon.Spec.Types.Subdir+ , module Horizon.Spec.Types.TarballSource+ , module Horizon.Spec.Types.Url+ , module Horizon.Spec.Types.Version+ , module Horizon.Spec.Utils+ ) where  import           Horizon.Spec.Types.CabalFlag import           Horizon.Spec.Types.Compiler@@ -37,7 +36,6 @@ import           Horizon.Spec.Types.HaskellPackage import           Horizon.Spec.Types.HaskellSource import           Horizon.Spec.Types.HorizonExport-import           Horizon.Spec.Types.LocalSource import           Horizon.Spec.Types.Modifiers import           Horizon.Spec.Types.Name import           Horizon.Spec.Types.Overlay@@ -54,3 +52,4 @@ import           Horizon.Spec.Types.TarballSource import           Horizon.Spec.Types.Url import           Horizon.Spec.Types.Version+import           Horizon.Spec.Utils
src/Horizon/Spec/Types/HaskellPackage.hs view
@@ -12,14 +12,16 @@ import           Horizon.Spec.Types.CabalFlag     (CabalFlag) import           Horizon.Spec.Types.HaskellSource (HaskellSource) import           Horizon.Spec.Types.Modifiers     (Modifiers, defaultModifiers)+import           Horizon.Spec.Types.Policy        (Policy)  type HaskellPackage :: Type data HaskellPackage where   MkHaskellPackage :: { source :: HaskellSource                       , modifiers :: Modifiers+                      , policy :: [Policy]                       , flags :: [CabalFlag] } -> HaskellPackage   deriving stock (Show, Eq, Generic)   deriving anyclass (FromDhall, ToDhall)  mkHaskellPackage :: HaskellSource -> HaskellPackage-mkHaskellPackage x = MkHaskellPackage { source = x, flags = [], modifiers = defaultModifiers }+mkHaskellPackage x = MkHaskellPackage { source = x, flags = [], modifiers = defaultModifiers, policy = [] }
src/Horizon/Spec/Types/HaskellSource.hs view
@@ -1,19 +1,17 @@ {-# LANGUAGE DeriveAnyClass #-} -module Horizon.Spec.Types.HaskellSource (HaskellSource(FromGit, FromHackage, FromTarball, FromLocal)) where+module Horizon.Spec.Types.HaskellSource (HaskellSource(FromGit, FromHackage, FromTarball)) where  import           Data.Kind                        (Type) import           Dhall                            (FromDhall, Generic, ToDhall) import           Horizon.Spec.Types.GitSource     (GitSource) import           Horizon.Spec.Types.HackageSource (HackageSource)-import           Horizon.Spec.Types.LocalSource   (LocalSource) import           Horizon.Spec.Types.TarballSource (TarballSource)  type HaskellSource :: Type data HaskellSource where   FromGit :: GitSource -> HaskellSource   FromHackage :: HackageSource -> HaskellSource-  FromLocal :: LocalSource -> HaskellSource   FromTarball :: TarballSource -> HaskellSource   deriving stock (Show, Eq, Generic)   deriving anyclass (FromDhall, ToDhall)
− src/Horizon/Spec/Types/LocalSource.hs
@@ -1,12 +0,0 @@-module Horizon.Spec.Types.LocalSource (LocalSource(MkLocalSource), fromLocalSource) where--import           Data.Kind                 (Type)-import           Dhall                     (FromDhall, ToDhall)-import           Horizon.Spec.Types.Subdir (Subdir)---type LocalSource :: Type-newtype LocalSource where-  MkLocalSource :: { fromLocalSource :: Subdir } -> LocalSource-  deriving stock (Eq, Show)-  deriving newtype (FromDhall, ToDhall)
+ src/Horizon/Spec/Types/Policy.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE DeriveAnyClass #-}+module Horizon.Spec.Types.Policy (Policy(Keep, Pin)) where++import           Data.Kind    (Type)+import           Dhall        (FromDhall, ToDhall)+import           GHC.Generics (Generic)++type Policy :: Type+data Policy where+  Keep :: Policy+  Pin  :: Policy+  deriving stock (Eq, Show, Ord, Generic)+  deriving anyclass (FromDhall, ToDhall)
src/Horizon/Spec/Utils.hs view
@@ -2,14 +2,13 @@   ( callHackage   , callGit   , callTarball-  , callLocal) where+  ) where  import           Horizon.Spec.Types.GitSource      (GitSource (MkGitSource)) import           Horizon.Spec.Types.HackageSource  (HackageSource (MkHackageSource)) import           Horizon.Spec.Types.HaskellPackage (HaskellPackage,                                                     mkHaskellPackage)-import           Horizon.Spec.Types.HaskellSource  (HaskellSource (FromGit, FromHackage, FromLocal, FromTarball))-import           Horizon.Spec.Types.LocalSource    (LocalSource (MkLocalSource))+import           Horizon.Spec.Types.HaskellSource  (HaskellSource (FromGit, FromHackage, FromTarball)) import           Horizon.Spec.Types.Name           (Name) import           Horizon.Spec.Types.Repo           (Repo) import           Horizon.Spec.Types.Revision       (Revision)@@ -26,6 +25,3 @@  callTarball :: Url -> HaskellPackage callTarball = mkHaskellPackage . FromTarball . MkTarballSource--callLocal :: Subdir -> HaskellPackage-callLocal = mkHaskellPackage . FromLocal . MkLocalSource
− test/Spec.hs
@@ -1,39 +0,0 @@-{-# LANGUAGE OverloadedStrings   #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}-module Main ( main ) where--import           Data.Proxy                (Proxy (Proxy))-import           Data.Text.Encoding        (encodeUtf8)-import           Dhall                     (FromDhall, ToDhall, auto, embed,-                                            inject, inputFile)-import           Dhall.Pretty              (layout, prettyExpr)-import           Horizon.Spec              (HorizonExport, Overlay, PackageSet)-import           Prettyprinter.Render.Text (renderStrict)-import           Test.Syd                  (Spec, describe,-                                            doNotRandomiseExecutionOrder, it,-                                            pureGoldenByteStringFile,-                                            sequential, sydTest)--expectedOutputTest-  :: forall a.-     FromDhall a-  => ToDhall a-  => Proxy a-  -> FilePath-  -> Spec-expectedOutputTest _ n = describe n $ do-  it "expands correctly" $ do-    x <- inputFile @a auto $ "test/data/" ++ n ++ "/input.dhall"-    let doc = prettyExpr $ embed inject x-    let docstr = encodeUtf8 $ renderStrict $ layout doc-    pure $ pureGoldenByteStringFile ("test/data/" ++ n ++ "/output.golden") docstr--main :: IO ()-main = sydTest $ doNotRandomiseExecutionOrder $ sequential $ do-  expectedOutputTest (Proxy @PackageSet) "sample-package-set"-  expectedOutputTest (Proxy @PackageSet) "modified-package-set"-  expectedOutputTest (Proxy @Overlay) "sample-overlay"-  expectedOutputTest (Proxy @Overlay) "modified-overlay"-  expectedOutputTest (Proxy @HorizonExport) "sample-package-set-export"-  expectedOutputTest (Proxy @HorizonExport) "sample-overlay-export"
− test/data/modified-overlay/input.dhall
@@ -1,9 +0,0 @@-let H = ../../../dhall/package.dhall--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
@@ -1,91 +0,0 @@-{ 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  ]-}
− test/data/modified-package-set/input.dhall
@@ -1,9 +0,0 @@-let H = ../../../dhall/package.dhall--in    { compiler = "ghc-9.4.2"-      , packages =-          H.modPackageList-            H.Modifiers::{ doCheck = True, doJailbreak = False }-            (toMap ../packages.dhall)-      }-    : H.PackageSet
− test/data/modified-package-set/output.golden
@@ -1,91 +0,0 @@-{ 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  ]-}
− test/data/sample-overlay/input.dhall
@@ -1,3 +0,0 @@-let H = ../../../dhall/package.dhall--in  { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall } : H.Overlay
− test/data/sample-overlay/output.golden
@@ -1,91 +0,0 @@-{ 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  ]-}
− test/data/sample-package-set/input.dhall
@@ -1,4 +0,0 @@-let H = ../../../dhall/package.dhall--in    { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall }-    : H.PackageSet
− test/data/sample-package-set/output.golden
@@ -1,91 +0,0 @@-{ 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  , { 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 >-      }-    }-  ]-}