summaryrefslogtreecommitdiff
path: root/doc/news
diff options
context:
space:
mode:
authorJoey Hess2016-04-05 13:38:00 -0400
committerJoey Hess2016-04-05 13:38:00 -0400
commite41e55edf4857247219ffb28b609ca18ab5f196d (patch)
tree124176a62c28f3f2e0de777f7df98f9cdb940c05 /doc/news
parent49886a928f3c5e443d3117317655897359e547e0 (diff)
add news item for propellor 3.0.1
Diffstat (limited to 'doc/news')
-rw-r--r--doc/news/version_3.0.0.mdwn74
-rw-r--r--doc/news/version_3.0.1.mdwn7
2 files changed, 7 insertions, 74 deletions
diff --git a/doc/news/version_3.0.0.mdwn b/doc/news/version_3.0.0.mdwn
deleted file mode 100644
index a147c3cd..00000000
--- a/doc/news/version_3.0.0.mdwn
+++ /dev/null
@@ -1,74 +0,0 @@
-propellor 3.0.0 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * Property types have been improved to indicate what systems they target.
- This prevents using eg, Property FreeBSD on a Debian system.
- Transition guide for this sweeping API change:
- - First, upgrade to propellor 2.17.2 and deploy that to all your hosts.
- Otherwise, propellor --spin will fail when you upgrade to
- propellor 3.0.0.
- - Change "host name & foo & bar"
- to "host name $ props & foo & bar"
- - Similarly, `propertyList` and `combineProperties` need `props`
- to be used to combine together properties; they no longer accept
- lists of properties. (If you have such a list, use `toProps`.)
- - And similarly, Chroot, Docker, and Systemd container need `props`
- to be used to combine together the properies used inside them.
- - The `os` property is removed. Instead use `osDebian`, `osBuntish`,
- or `osFreeBSD`. These tell the type checker the target OS of a host.
- - 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 TypeOperators #-} to use these fancy types.
- 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 Debian"
- - It's also possible make a property support a set of OS's, for example:
- "Property (Debian + FreeBSD)"
- - Removed `infoProperty` and `simpleProperty` constructors, instead use
- `property` to construct a Property.
- - Due to the polymorphic type returned by `property`, additional type
- signatures tend to be needed when using it. For example, this will
- fail to type check, because the type checker cannot guess what type
- you intend the intermediate property "go" to have:
- foo :: Property UnixLike
- foo = go `requires` bar
- where
- go = property "foo" (return NoChange)
- To fix, specify the type of go:
- go :: Property UnixLike
- - `ensureProperty` now needs to be passed a witness to the type of the
- property it's used in.
- change this: foo = property desc $ ... ensureProperty bar
- to this: foo = property' desc $ \w -> ... ensureProperty w bar
- - General purpose properties like cmdProperty have type "Property UnixLike".
- When using that to run a command only available on Debian, you can
- tighten the type to only the OS that your more specific property works on.
- For example:
- upgraded :: Property Debian
- upgraded = tightenTargets (cmdProperty "apt-get" ["upgrade"])
- - Several utility functions have been renamed:
- getInfo to fromInfo
- propertyInfo to getInfo
- propertyDesc to getDesc
- propertyChildren to getChildren
- * The new `pickOS` property combinator can be used to combine different
- properties, supporting different OS's, into one Property that chooses
- which to use based on the Host's OS.
- * Re-enabled -O0 in propellor.cabal to reign in ghc's memory use handling
- these complex new types.
- * Added dependency on concurrent-output; removed embedded copy.
- * Apt.PPA: New module, contributed by Evan Cofsky.
- * Improved propellor's first run experience; propellor --init will
- walk the user through setting up ~/.propellor, with a choice between
- a clone of propellor's git repository, or a minimal config, and will
- configure propellor to use a gpg key.
- * Stack support. "git config propellor.buildsystem stack" will make
- propellor build its config using stack.
- * When propellor is installed using stack, propellor --init will
- automatically set propellor.buildsystem=stack."""]] \ No newline at end of file
diff --git a/doc/news/version_3.0.1.mdwn b/doc/news/version_3.0.1.mdwn
new file mode 100644
index 00000000..0b6578f3
--- /dev/null
+++ b/doc/news/version_3.0.1.mdwn
@@ -0,0 +1,7 @@
+propellor 3.0.1 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * propellor --init now runs cabal sandbox init if cabal has been
+ configured with require-sandbox: True.
+ Thanks, Sean Whitton
+ * Re-bundled concurrent-output so propellor can be deployed to Debian
+ stable systems without installing it (insecurely) from hackage."""]] \ No newline at end of file