On Friday, April 24, 2015 at 12:44:08 PM UTC-5, Vince Skahan wrote:
>
> On Thursday, April 23, 2015 at 3:44:35 PM UTC-7, jcf wrote:
>>
>> There is actually nothing in semver that precludes co-terming major 
>> release versions,  and less that precludes "--version"  from both 
>> displaying the local package version,  AND the release number targeted by 
>> said package if you disagreed with the first point. This is one of those 
>> circumstances where being pedantic means you reduce understanding,  not 
>> increase it.
>>
>
> Agree.
>


Yes, but I think there's a combination of problems here.

Let's take puppetserver first, because in some ways it's easiest.  The 
version of puppetserver in the puppetserver-2.0.0 packages really is 2.0.0, 
thus software version code and package version code are consistent.  The 
issue is that puppetserver 2.0.0 implements version 4.0.0 (I think) of 
"Puppet", where "Puppet" these days means the DSL, plugin API, and built-in 
type and function libraries.  This is roughly analogous to version 31 of 
Firefox handling version 5 of HTML, but more confusing because it's new 
that there is a split between software version and -- I'm not even sure 
what to call it, but maybe "framework version".  Inasmuch as puppetserver 
is taking over from the older Ruby implementation of the master, it may be 
that these numbers can be reconciled in the future.  (See also below.)

The puppet-agent package is where the real fun starts.  As best I can 
determine, the version number of the puppet-agent package is associated 
with the overall all-in-one installation image and packaging, as opposed to 
the software packaged within, the central piece of which is the Ruby 
implementation of the Puppet software (version 4.0.0 of that software in 
the puppet-agent-1.0.0 package).  I do not understand this decision, as it 
seems to fly in the face standard package versioning practice.  That aspect 
of it could certainly be fixed, however -- it should not produce any great 
difficulties to bump up the version number for the package to correctly 
agree with the version of the packaged software.

Then there's the question of standalone software packaged together with the 
agent, and the version numbers of those programs.  In truth, I don't think 
the version number mismatch is a significant issue there if you accept 
all-in-one packaging to begin with.  In my experience, it's pretty common 
for AIOs to bundle software with different version numbers, but it is 
unusual for such an AIO to be versioned differently than the bundle's focal 
software.  I think this issue would be substantially mitigated just by 
making the version number of the puppet-agent package in fact match the 
version of the puppet agent software contained within.

 

>
> What I'm looking for is clarity for the users.  What is there now is 
> beyond unclear.
>
> The problem as I see it is bundling.  Puppet is grouping standalone 
> components into an aggregate 'release' of something bigger.  The pieces 
> have versions that are far different from the aggregate.   Each piece's 
> --version string doesn't even match the version of the rpm they were 
> bundled into. That is just wrong.
>


As you have seen, I somewhat agree.  For what it's worth, I raised a bit of 
a stink a few months ago in the developers group about PL's decision to 
make Puppet 4 *depend* on an AIO-style installation image, but I was unable 
to persuade much of anyone.  Given PL's decision to go that direction, AIO 
packaging is a natural result, albeit an unnecessary and unwelcome one.

 

>
> Put yourself in the user's shoes:
>
>    - I think I'm running puppet open source 4.0.0 including both server 
>    and agent
>    - there is a puppetserver-2.0.0 there, and a puppet-agent-1.0.0 there 
>      - geez, I must be YEARS behind current !
>    - so I look in /opt/puppetlabs/bin and see five binaries, none of 
>    which have --version = 4.0.0 or even 'close' to the rpm version they came 
>    from
>    - and that is clear 'how' exactly ?
>
>
The 'puppet' binary reports version 4.0.0, which is consistent with the 
idea that you're running that version of Puppet.  If I wanted to verify 
which version of puppet I was running, that's certainly the binary I'd look 
to.  As I said, though, the package in which it is provided should also 
bear that version number.

That puppetserver's version doesn't match the Puppet framework version it 
supports certainly seems more confusing to me.

 

> My suggestion would be:
>
>    - puppetserver rpm should be 4.0.0 for puppet release 4.0.0
>    - puppet-agent rpm should be 4.0.0 for puppet release 4.0.0
>
>
The latter, for sure.  The former would be desirable, too, but only in 
conjunction with puppetserver's software version actually being bumped up 
to 4.0.0.

 

> And to me I'd add:
>
>    - everything in a typically public-interface directory (not a bundled 
>    ruby version, for example) that is therein and supports a --version should 
>    return a version reflecting the rpm version they were packaged in somehow 
>    that is user obvious.
>
> or if you can't do that, bundle each of them into their own individually 
> versioned rpms (ie. facter-2.4.3) and have puppet-agent require multiple 
> rpms.
>
>

I would be all for packaging the (semi-)independent components separately, 
each in a package with version number matching the packaged software's 
version number.  I would be even more for ensuring that none of it depended 
on being installed in an AIO-style image, but that's a separable issue.

If the intention is for any of the core components (agent and server, more 
or less) to continue to be developed on their own cycles, then it might be 
appropriate to add an additional version number to associate the binaries 
with the puppet framework version with which they are associated.  For 
example, one might then have

# puppetserver --version --framework-version
puppetserver version: 2.0.0 
Puppet framework version: 4.0.0


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/b9949b77-947c-43b9-aa9e-1dcbf7f72858%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to