summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2016-03-24 15:17:16 -0400
committerJoey Hess2016-03-24 15:17:16 -0400
commit7ee3157ab1922fd2f7158fd40927dca8a83ad4b0 (patch)
treee4d3e187212469699b19c058f98a2ea0ff0fa9c1
parent51fa88feb1fd3621360c1db5b6b771a798a25a88 (diff)
docs and enable PolyKinds globally
-rw-r--r--debian/changelog32
-rw-r--r--propellor.cabal6
2 files changed, 33 insertions, 5 deletions
diff --git a/debian/changelog b/debian/changelog
index 2c2b2ea7..c9286fcf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,31 @@
+propellor (3.0.0) UNRELEASED; urgency=medium
+
+ * Property types have been improved to indicate what systems they target.
+ Transition guide:
+ - Change "Property NoInfo" to "Property UnixLike"
+ - Change "Property HasInfo" to "Property (HasInfo + UnixLike)"
+ - Change "RevertableProperty NoInfo" to
+ "RevertableProperty UnixLike UnixLike"
+ - Change "RevertableProperty HasInfo" to
+ "RevertableProperty (HasInfo + UnixLike) UnixLike"
+ - GHC needs {-# LANGUAGE PolyKinds #-} to use these new type signatures.
+ This is enabled by default for all modules in propellor.cabal. But
+ if you are using propellor as a library, you may need to enable it
+ manually.
+ - If you know a property only works on a particular OS, like Debian
+ or FreeBSD, use that instead of "UnixLike". For example:
+ "Property (HasInfo + Debian)"
+ - It's also possible make a property support a set of OS's, for example:
+ "Property (HasInfo + Debian + FreeBSD)"
+ - The new `pickOS` property combinator can be used to combine different
+ properties, supporting different OS's, into one Property that chooses
+ what to do based on the Host's OS.
+ - `ensureProperty` now needs information about the metatypes of the
+ property it's used in to be passed to it. See the documentation
+ of `ensureProperty` for an example.
+
+ -- Joey Hess <id@joeyh.name> Thu, 24 Mar 2016 15:02:33 -0400
+
propellor (2.17.0) unstable; urgency=medium
* Added initial support for FreeBSD.
@@ -470,12 +498,12 @@ propellor (2.0.0) unstable; urgency=medium
This was done to make sure that ensureProperty is only used on
properties that do not have Info.
Transition guide:
- - Change all "Property" to "Property NoInfo" or "Property WithInfo"
+ - Change all "Property" to "Property NoInfo" or "Property HasInfo"
(The compiler can tell you if you got it wrong!)
- To construct a RevertableProperty, it is useful to use the new
(<!>) operator
- Constructing a list of properties can be problimatic, since
- Property NoInto and Property WithInfo are different types and cannot
+ Property NoInto and Property HasInfo are different types and cannot
appear in the same list. To deal with this, "props" has been added,
and can built up a list of properties of different types,
using the same (&) and (!) operators that are used to build
diff --git a/propellor.cabal b/propellor.cabal
index a631f262..1179ca23 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -36,7 +36,7 @@ Description:
Executable propellor
Main-Is: wrapper.hs
- GHC-Options: -threaded -Wall -fno-warn-tabs
+ GHC-Options: -threaded -Wall -fno-warn-tabs -XPolyKinds
Hs-Source-Dirs: src
Build-Depends:
-- propellor needs to support the ghc shipped in Debian stable
@@ -47,7 +47,7 @@ Executable propellor
Executable propellor-config
Main-Is: config.hs
- GHC-Options: -threaded -Wall -fno-warn-tabs
+ GHC-Options: -threaded -Wall -fno-warn-tabs -XPolyKinds
Hs-Source-Dirs: src
Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5,
IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal,
@@ -55,7 +55,7 @@ Executable propellor-config
exceptions (>= 0.6), stm, text, unix
Library
- GHC-Options: -Wall -fno-warn-tabs
+ GHC-Options: -Wall -fno-warn-tabs -XPolyKinds
Hs-Source-Dirs: src
Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5,
IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal,