puppetlabs/puppet — pull request #2309 by lollipopman (2014-01-29 21:34:41+00:00)
Title: Separate out hold state into a separate property

Currently holding a package and specifying a version are mutually
exclusive states on ensure:
```
package { 'foo':
ensure => '0.4'
}

-- OR --

package { 'foo':
ensure => held
}
```
This is unfortunate as the typical usage for package holding is to hold
a specific version of a package to avoid OS upgrades upgrading the
package version.

This commit adds a hold property and defaults hold to true when a
package version is specified.
```
package { 'foo':
ensure => '0.4'
# default
# hold => true
}

-- OR --

package { 'foo':
ensure => '0.4',
hold => false
}
```
relevant bug: https://tickets.puppetlabs.com/browse/PUP-1537