From e41e55edf4857247219ffb28b609ca18ab5f196d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 5 Apr 2016 13:38:00 -0400 Subject: add news item for propellor 3.0.1 --- doc/news/version_3.0.0.mdwn | 74 --------------------------------------------- doc/news/version_3.0.1.mdwn | 7 +++++ 2 files changed, 7 insertions(+), 74 deletions(-) delete mode 100644 doc/news/version_3.0.0.mdwn create mode 100644 doc/news/version_3.0.1.mdwn (limited to 'doc/news') 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 -- cgit v1.2.3