packages feed

horizon-spec 0.3.0 → 0.4.0

raw patch · 5 files changed

+103/−21 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Horizon.Spec: [fromName] :: Name -> Text
- Horizon.Spec: [fromRepo] :: Repo -> Url
- Horizon.Spec: [fromSubdir] :: Subdir -> Path Rel Dir
- Horizon.Spec: [fromUrl] :: Url -> Text
- Horizon.Spec: [fromVersion] :: Version -> Text
+ Horizon.Spec: [$sel:fromName:MkName] :: Name -> Text
+ Horizon.Spec: [$sel:fromRepo:MkRepo] :: Repo -> Url
+ Horizon.Spec: [$sel:fromSubdir:MkSubdir] :: Subdir -> Path Rel Dir
+ Horizon.Spec: [$sel:fromUrl:MkUrl] :: Url -> Text
+ Horizon.Spec: [$sel:fromVersion:MkVersion] :: Version -> Text
+ Horizon.Spec: [MakeOverlay] :: OverlayExportSettings -> HorizonExport
+ Horizon.Spec: [MakePackageSet] :: PackageSetExportSettings -> HorizonExport
+ Horizon.Spec: [MkOverlayExportSettings] :: PackagesDir -> OverlayFile -> Overlay -> OverlayExportSettings
+ Horizon.Spec: [MkOverlayFile] :: Path Rel File -> OverlayFile
+ Horizon.Spec: [MkPackageSetExportSettings] :: PackagesDir -> PackageSetFile -> PackageSet -> PackageSetExportSettings
+ Horizon.Spec: [MkPackageSetFile] :: Path Rel File -> PackageSetFile
+ Horizon.Spec: data HorizonExport
+ Horizon.Spec: data OverlayExportSettings
+ Horizon.Spec: data PackageSetExportSettings
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.HorizonExport
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.OverlayExportSettings
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.OverlayFile
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.PackageSetExportSettings
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.PackageSetFile
+ Horizon.Spec: instance Dhall.Marshal.Decode.FromDhall Horizon.Spec.PackagesDir
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.HorizonExport
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.OverlayExportSettings
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.OverlayFile
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.PackageSetExportSettings
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.PackageSetFile
+ Horizon.Spec: instance Dhall.Marshal.Encode.ToDhall Horizon.Spec.PackagesDir
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.HorizonExport
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.OverlayExportSettings
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.OverlayFile
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.PackageSetExportSettings
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.PackageSetFile
+ Horizon.Spec: instance GHC.Classes.Eq Horizon.Spec.PackagesDir
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.HorizonExport
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.OverlayExportSettings
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.OverlayFile
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.PackageSetExportSettings
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.PackageSetFile
+ Horizon.Spec: instance GHC.Generics.Generic Horizon.Spec.PackagesDir
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.HorizonExport
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.OverlayExportSettings
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.OverlayFile
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.PackageSetExportSettings
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.PackageSetFile
+ Horizon.Spec: instance GHC.Show.Show Horizon.Spec.PackagesDir
+ Horizon.Spec: newtype OverlayFile
+ Horizon.Spec: newtype PackageSetFile

Files

ChangeLog.md view
@@ -1,5 +1,14 @@ # Changelog for horizon-spec +## v0.4.0++* Add `HorizonExport` type for declaratively expressing+  export settings for horizon commands.+* Add `PackageSetExportSettings` for expressing package set+  export settings.+* Add `OverlayExportSettings` for expressing overlay+  export settings.+ ## v0.3.0  * Add `LocalSource` and `TarballSource` types
dhall/package.dhall view
@@ -3,6 +3,10 @@       ? 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@@ -53,8 +57,22 @@  let Overlay = PackageList +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 → Attr HaskellPackage.Type+    : Name → Version → PackageEntry     = λ(name : Name) →       λ(version : Version) →         { mapKey = name@@ -64,7 +82,7 @@         }  let callGit-    : Name → Url → Revision → Optional Subdir → Attr HaskellPackage.Type+    : Name → Url → Revision → Optional Subdir → PackageEntry     = λ(name : Name) →       λ(url : Url) →       λ(revision : Revision) →@@ -76,7 +94,7 @@         }  let callLocal-    : Name → Subdir → Attr HaskellPackage.Type+    : Name → Subdir → PackageEntry     = λ(name : Name) →       λ(subdir : Subdir) →         { mapKey = name@@ -84,7 +102,7 @@         }  let callTarball-    : Name → Url → Attr HaskellPackage.Type+    : Name → Url → PackageEntry     = λ(name : Name) →       λ(url : Url) →         { mapKey = name@@ -111,13 +129,19 @@ in  { Attr     , CabalFlag     , Compiler+    , Directory+    , FilePath     , Flag     , HaskellSource     , HaskellPackage+    , HorizonExport     , Modifiers     , Name+    , OverlayExportSettings     , Overlay+    , PackageEntry     , PackageList+    , PackageSetExportSettings     , PackageSet     , Revision     , Subdir
horizon-spec.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               horizon-spec-version:            0.3.0+version:            0.4.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.
src/Horizon/Spec.hs view
@@ -1,24 +1,30 @@-{-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveAnyClass        #-}+{-# LANGUAGE DuplicateRecordFields #-} module Horizon.Spec-  ( Url(MkUrl, fromUrl)-  , Repo(MkRepo, fromRepo)-  , Subdir(MkSubdir, fromSubdir)-  , Name(MkName, fromName)-  , Version (MkVersion, fromVersion)+  ( CabalFlag(MkCabalFlag)+  , Compiler(MkCompiler, fromCompiler)+  , Flag(Enable, Disable)   , GitSource(MkGitSource, url, revision, subdir)   , HackageSource(MkHackageSource, name, version)-  , LocalSource(MkLocalSource, fromLocalSource)-  , TarballSource(MkTarballSource, fromTarballSource)+  , HaskellPackage(MkHaskellPackage, source, modifiers, flags)   , HaskellSource(FromGit, FromHackage, FromTarball, FromLocal)-  , Flag(Enable, Disable)-  , CabalFlag(MkCabalFlag)+  , HorizonExport(MakePackageSet, MakeOverlay)+  , LocalSource(MkLocalSource, fromLocalSource)   , Modifiers(doJailbreak, doCheck, enableProfiling)-  , HaskellPackage(MkHaskellPackage, source, modifiers, flags)-  , Revision(MkRevision, fromRevision)-  , Compiler(MkCompiler, fromCompiler)-  , PackageList(MkPackageList, fromPackageList)+  , Name(MkName, fromName)+  , OverlayExportSettings(MkOverlayExportSettings, packagesDir, overlayFile, overlay)+  , OverlayFile(MkOverlayFile, fromOverlayFile)   , Overlay(MkOverlay, fromOverlay)+  , PackageList(MkPackageList, fromPackageList)+  , PackageSetExportSettings(MkPackageSetExportSettings, packagesDir, packageSetFile, packageSet)+  , PackageSetFile(MkPackageSetFile, fromPackageSetFile)   , PackageSet(MkPackageSet, compiler, packages)+  , Repo(MkRepo, fromRepo)+  , Revision(MkRevision, fromRevision)+  , Subdir(MkSubdir, fromSubdir)+  , TarballSource(MkTarballSource, fromTarballSource)+  , Url(MkUrl, fromUrl)+  , Version (MkVersion, fromVersion)   )   where @@ -26,7 +32,7 @@ import           Data.Map   (Map) import           Data.Text  (Text) import           Dhall      (FromDhall, Generic, ToDhall)-import           Path       (Dir, Path, Rel)+import           Path       (Dir, File, Path, Rel) import           Path.Dhall ()  @@ -145,5 +151,46 @@ data PackageSet where   MkPackageSet :: { compiler :: Compiler                   , packages :: PackageList } -> PackageSet+  deriving stock (Show, Eq, Generic)+  deriving anyclass (FromDhall, ToDhall)++type PackagesDir :: Type+newtype PackagesDir where+  MkPackagesDir :: { fromPackagesDir :: Path Rel Dir } -> PackagesDir+  deriving stock (Show, Eq, Generic)+  deriving newtype (FromDhall, ToDhall)++type PackageSetFile :: Type+newtype PackageSetFile where+  MkPackageSetFile :: { fromPackageSetFile :: Path Rel File } -> PackageSetFile+  deriving stock (Show, Eq, Generic)+  deriving newtype (FromDhall, ToDhall)++type OverlayFile :: Type+newtype OverlayFile where+  MkOverlayFile :: { fromOverlayFile :: Path Rel File } -> OverlayFile+  deriving stock (Show, Eq, Generic)+  deriving newtype (FromDhall, ToDhall)++type PackageSetExportSettings :: Type+data PackageSetExportSettings where+  MkPackageSetExportSettings :: { packagesDir :: PackagesDir+                                , packageSetFile :: PackageSetFile+                                , packageSet :: PackageSet } -> PackageSetExportSettings+  deriving stock (Show, Eq, Generic)+  deriving anyclass (FromDhall, ToDhall)++type OverlayExportSettings :: Type+data OverlayExportSettings where+  MkOverlayExportSettings :: { packagesDir :: PackagesDir+                             , overlayFile :: OverlayFile+                             , overlay :: Overlay } -> OverlayExportSettings+  deriving stock (Show, Eq, Generic)+  deriving anyclass (FromDhall, ToDhall)++type HorizonExport :: Type+data HorizonExport where+  MakePackageSet :: PackageSetExportSettings -> HorizonExport+  MakeOverlay :: OverlayExportSettings -> HorizonExport   deriving stock (Show, Eq, Generic)   deriving anyclass (FromDhall, ToDhall)
test/Spec.hs view
@@ -8,7 +8,7 @@ import           Dhall                     (FromDhall, ToDhall, auto, embed,                                             inject, inputFile) import           Dhall.Pretty              (layout, prettyExpr)-import           Horizon.Spec              (Overlay, PackageSet)+import           Horizon.Spec              (HorizonExport, Overlay, PackageSet) import           Prettyprinter.Render.Text (renderStrict) import           Test.Syd                  (Spec, describe,                                             doNotRandomiseExecutionOrder, it,@@ -35,3 +35,5 @@   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"