Issue #12179 has been updated by Pieter van de Bruggen.

Reid Vandewiele wrote:
>     feature :minimum_versionable, "The provider is capable of selectively
>            upgrading to the latest version of a package if and only if the
>            installed version is less than a provided minimum version. Using a
>            minimum version of 1.5-2 as an example, this feature is used by
>            specifing `>= 1.5-2` as the desired value for the package."

Thanks for continuing to think abou this.  My concern is that this solution 
depends on many assumptions:

  * Is version disparity across multiple nodes acceptable or desirable?
  * Are packages guaranteed to remain backwards compatible (or will we need to 
add further restrictions to the comparison language)?
  * What does it mean to be "less than" a version?
    * Is '1.5' less than '1.5-2'?  (The '-2' representing a pre-release build.)
    * Is '1.5-2' less than '1.5'?  (The '-2' indicating a patch build.)
    * Do we compare ASCIIbetically?  If so, '10.0' is less than '2.0'.
    * Do we compare only the numeric parts?  If so, is having more numeric 
parts "greater"?  What about non-numeric word parts like "alpha"?
  * Can all packages in a provider be compared the same way?

I'm not opposed to the idea of a feature like this, I just want to make sure we 
can do so without it coming back to bite people later.
----------------------------------------
Feature #12179: Package resource should allow ensure=>">1.0" or ensure=>"<0.10" 
as well as 'latest', 'installed' and specific version number
https://projects.puppetlabs.com/issues/12179#change-63654

Author: Steve Shipway
Status: Needs Decision
Priority: Normal
Assignee: Randall Hansen
Category: language
Target version: 
Affected Puppet version: 2.7.9
Keywords: 
Branch: 


It would be helpful if the 'ensure' parameter to the Package resrouce could 
also specify 'at least version **x**' and 'no later than version **y**' as well 
as 'latest version', 'installed' (IE, any version) or a specific version number.

EG:

    package { 'foo': ensure=>'>1.0' }

would act as 'latest' if the current package was uninstalled or version before 
1.0, but would act as 'installed' otherwise. Similarly, 

    package { 'foo': ensure=>'<4.0' }

would act as 'installed' if version is <4.0 but would produce an error 
otherwise.

This would allow us to set a manifest to avoid packages with known problems in 
a certain version, but not upgrade unless necessary. 


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to