<feed xmlns='http://www.w3.org/2005/Atom'>
<title>propellor/src/Propellor/Property.hs, branch master</title>
<subtitle>gnusosa's centralized propellor repository for hosts spin-up.
</subtitle>
<id>https://git.gnusosa.net/propellor/atom?h=master</id>
<link rel='self' href='https://git.gnusosa.net/propellor/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/'/>
<updated>2018-01-24T17:32:04Z</updated>
<entry>
<title>Add HasCallStack constraint to pickOS and unsupportedOS, so the call stack includes the caller.</title>
<updated>2018-01-24T17:32:04Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2018-01-24T17:32:04Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=a730bbda2b91cf2bac9b63be8647ba322691e57f'/>
<id>urn:sha1:a730bbda2b91cf2bac9b63be8647ba322691e57f</id>
<content type='text'>
This commit was sponsored by Jochen Bartl on Patreon.
</content>
</entry>
<entry>
<title>Added Propellor.Property.impossible</title>
<updated>2017-11-12T01:33:26Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-12T01:33:26Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=19a0a53469ad5288fa6688f5e140994a3be63f8e'/>
<id>urn:sha1:19a0a53469ad5288fa6688f5e140994a3be63f8e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>XFCE and applyPath properties</title>
<updated>2017-07-05T20:01:55Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-07-05T20:01:55Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=c282a894b56012ae4f68b518e5fad01052ac4f22'/>
<id>urn:sha1:c282a894b56012ae4f68b518e5fad01052ac4f22</id>
<content type='text'>
* Propellor.Property.XFCE added with some useful properties for the
  desktop environment.
* Added File.applyPath property.

This commit was sponsored by Riku Voipio.
</content>
</entry>
<entry>
<title>Removed dependency on MissingH, instead depends on split and hashable.</title>
<updated>2017-05-16T00:09:31Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-05-16T00:09:31Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=ba3bd76f4ade7ffeea3c1837f868f5264d284a8c'/>
<id>urn:sha1:ba3bd76f4ade7ffeea3c1837f868f5264d284a8c</id>
<content type='text'>
MissingH is a heavy dependency, which pulls in parsec and a bunch of stuff.
So eliminating it makes propellor easier to install and less likely to
fail to build.

changesFileContent now uses hashable's hash. This may not be stable across
upgrades, I'm not sure -- but it's surely ok here, as the hash is not
stored.

socketFile also uses hash. I *think* this is ok, even if it's not stable.
If it's not stable, an upgrade might make propellor hash a hostname to a
different number, but with 9 digets of number in use, the chances of a
collision are small. In any case, I've opned a bug report asking for the
stability to be documented, and I think it's intended to be stable, only
the documentation is bad.

NB: I have not checked that the arch linux and freebsd packages for the new
deps, that Propellor.Bootstrap lists, are the right names or even exist.

Since propellor depends on hashable, it could be changed to use
unordered-containers, rather than containers, which would be faster and
perhaps less deps too.

This commit was sponsored by Alexander Thompson on Patreon.
</content>
</entry>
<entry>
<title>desc</title>
<updated>2017-03-15T19:59:44Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-03-15T19:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=30871a7c2652dbfc07485bdc28d522c7c3272464'/>
<id>urn:sha1:30871a7c2652dbfc07485bdc28d522c7c3272464</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Added Monoid instances for Property and RevertableProperty.</title>
<updated>2017-03-15T19:39:18Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-03-15T19:36:29Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=472759eef32534fd1f1e14bb05f5cb97b18de760'/>
<id>urn:sha1:472759eef32534fd1f1e14bb05f5cb97b18de760</id>
<content type='text'>
* Added Monoid instances for Property and RevertableProperty.
* Removed applyToList. Instead, use mconcat. (API change)
  Eg, if you had: applyToList accountFor [User "joey", User "root"]
  use instead: mconcat (map accountFor [User "joey", User "root"])

mappend x y is basically the same as x `before` y. In particular, if x
fails to be ensured, it won't ensure y. This seems to make sense, since
applyToList had that behavior, and so does the Monoid for Propellor
Result. The alternative would be to try to ensure both and combine
the results. However, I don't see any reason to do it that way.

It would be nice if the description of both properties were displayed when
ensuring the combination. But then, it would need to display eg:

	ensuring x..ok
	ensuring y..failed
	ensuring x and ensuring y..failed

Without a way to get rid of that redundant last line, I don't want to do
that.

Note that the haddocks for the Monoid instances need a really wide screen
to display! This is IMHO an infelicity in haddock, and I can't do anything
about it really.

This commit was sponsored by Fernando Jimenez on Patreon.
</content>
</entry>
<entry>
<title>Property types changed to use a Maybe (Propellor Result). (API change)</title>
<updated>2017-03-15T18:09:07Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-03-15T18:09:07Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=52ca81661f156122a3a5d4a438fea83e067215ac'/>
<id>urn:sha1:52ca81661f156122a3a5d4a438fea83e067215ac</id>
<content type='text'>
* Property types changed to use a Maybe (Propellor Result). (API change)
* When Nothing needs to be done to ensure a property, propellor
  will avoid displaying its description at all. The doNothing property
  is an example of such a property.

This is mostly in preparation for Monoid instances for Property types, but
is's also nice that anything that uses doNothing will avoid printing out
any message at all. At least, I think it probably is. It might potentially
be confusing for something that sometimes takes an action and sometimes
resolves to doNothing and in either case has a description set to not
always show the description. If this did turn out to be confusing, the
change to doNothing could be reverted.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
</content>
</entry>
<entry>
<title>response</title>
<updated>2017-02-03T19:42:21Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-02-03T19:42:21Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=b52c37df64ab2a3e261c7f9daba9e7b812e55706'/>
<id>urn:sha1:b52c37df64ab2a3e261c7f9daba9e7b812e55706</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix type in example</title>
<updated>2017-01-06T00:34:22Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-01-06T00:32:56Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=d1e5b88edaebd6a06d1745de893a273a1e6aba65'/>
<id>urn:sha1:d1e5b88edaebd6a06d1745de893a273a1e6aba65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>GHC's fileSystemEncoding is used for all String IO, to avoid encoding-related crashes in eg, Propellor.Property.File.</title>
<updated>2016-12-24T19:14:05Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2016-12-24T19:14:05Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=44bf67b7a2da75ef80e32d6409cc41a6ab8b6ffe'/>
<id>urn:sha1:44bf67b7a2da75ef80e32d6409cc41a6ab8b6ffe</id>
<content type='text'>
</content>
</entry>
</feed>
