summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-28type safe targets for propertiesJoey Hess
* 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: - 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.
2016-03-25changelogJoey Hess
2016-03-25Merge remote-tracking branch 'felix/uwsgi-ini'Joey Hess
2016-03-25commentJoey Hess
2016-03-25Avoid generating excessively long paths to the unix socket file used for ssh ↵Joey Hess
connection caching. Mostly. Can still generate a too long one if $HOME is longer than 60 bytes.
2016-03-25(no commit message)picca
2016-03-24add news item for propellor 2.17.0Joey Hess
2016-03-24fix hook nameJoey Hess
2016-03-24clean up after mergeJoey Hess
2016-03-24setting up joeyconfig after mergeJoey Hess
2016-03-24no longer falsing rulesJoey Hess
2016-03-24prep releaseJoey Hess
2016-03-24Uwsgi: add ".ini" extension to app config filesFélix Sipma
files without extensions were ignored by uwsgi
2016-03-20tyoughtJoey Hess
2016-03-20make more clear that propellor targets debian stable's ghcJoey Hess
2016-03-20Merge branch 'master' of ssh://propellor.branchable.comJoey Hess
2016-03-20Merge branch 'joeyconfig'Joey Hess
2016-03-20tagJoey Hess
2016-03-20Added a commentarnaud@30aba4d9f1742050874551d3ddc55ca8694809f8
2016-03-19Added a commentarnaud@30aba4d9f1742050874551d3ddc55ca8694809f8
2016-03-19commentJoey Hess
2016-03-19Merge branch 'master' of ssh://propellor.branchable.comJoey Hess
2016-03-19commentJoey Hess
2016-03-19Added a comment: Spinning hosts in parallelarnaud@30aba4d9f1742050874551d3ddc55ca8694809f8
2016-03-19From GH PR #13evan@0e4cded17eab71af967a38b123fbc211cf215421
2016-03-19Merge branch 'joeyconfig'Joey Hess
2016-03-18propellor spinJoey Hess
2016-03-18Tor.named: Fix bug that sometimes caused the property to fail the first ↵Joey Hess
time, though retrying succeeded. May have only been a problem on debian stable, the /var/lib/tor/keys/ was not created by installing the package.
2016-03-18propellor spinJoey Hess
2016-03-18propellor spinJoey Hess
2016-03-18propellor spinJoey Hess
2016-03-18propellor spinJoey Hess
2016-03-18propellor spinJoey Hess
2016-03-18propellor spinJoey Hess
2016-03-17correctJoey Hess
2016-03-17Merge branch 'master' of ssh://propellor.branchable.comJoey Hess
2016-03-17commentJoey Hess
2016-03-17Added a comment: Buntish Releasesevan@0e4cded17eab71af967a38b123fbc211cf215421
2016-03-15linkJoey Hess
2016-03-11Merge branch 'master' of ssh://propellor.branchable.comJoey Hess
2016-03-11fix clone commandJoey Hess
2016-03-11Added a comment: In Fact Amazonka is Fairly Epicevan@0e4cded17eab71af967a38b123fbc211cf215421
2016-03-10(no commit message)evan@0e4cded17eab71af967a38b123fbc211cf215421
2016-03-10Added a comment: Amazonkaevan@0e4cded17eab71af967a38b123fbc211cf215421
2016-03-09Merge branch 'joeyconfig'Joey Hess
2016-03-09commentJoey Hess
2016-03-09Speed up propellor's build of itself, by asking cabal to only build the ↵Joey Hess
propellor-config binary and not all the libraries. This is a super speedup!
2016-03-09reorderJoey Hess
2016-03-09avoid error message when dpkg-parsechangelog is not installedJoey Hess
2016-03-08testJoey Hess