Propellor is versioned using the Haskell [Package Version Policy](https://www.haskell.org/haskellwiki/Package_versioning_policy). This means that propellor 2.10.x contains some changes to its API; code written for propellor 2.9.x may need to be changed. Conversely, there are no breaking changes between 2.10.1 and 2.10.2. Whenever possible, breaking changes are made in a way that either changes a data type, or a function name, so that code that used the old API version won't compile under the new one. Sometimes, changes to the behavior of properties also merit a major version change. For example, propellor 0.8.0 completely revamped the privdata storage, and users had to manually transition.