What happened to pinned bootstrap

Ian Booth ian.booth at canonical.com
Sun Mar 30 23:17:16 UTC 2014


On 31/03/14 02:11, Kapil Thangavelu wrote:
> sounds like a great case being made for --upload-tools by default.
>

--upload-tools does happen automatically on bootstrap, but only if no matching,
pre-built tools are found. So, if a 1.19 client were used to bootstrap and only
1.18 tools were available, upload-tools would be done automatically.

As John points out, tools matching is done based on major.minor version number.
My understanding was that X.Y.Z should be compatible with X.Y.W where W != Z. So
1.17.6 clients should have been compatible with 1.17.7 tools. If we break
compatibility, then we should have incremented the minor version number. Or, in
this case, given we didn't want to do that, ensure 1.17.7 tools were backwards
compatible with 1.17.6 clients.

Note that we used to just match tools on major version. This was correctly
deemed unworkable, and so the move to major.minor matching was at the time
considered to be sufficient so long as we coded for such compatibility. I think
the core issue here was just a simple mistake and/or misunderstanding of the
version compatibility policies in place. If the situation has highlighted the
need for a change in policy, that's fine, but we then need to agree that we need
to be stricter on tools matching.


> 
> 
> On Sun, Mar 30, 2014 at 12:23 AM, John Meinel <john at arbash-meinel.com>wrote:
> 
>> I thought at one point we were explicitly requiring that we bootstrap
>> exact versions of tools (so juju CLI 1.17.2 would only bootstrap a 1.17.2
>> set of tools). We at least did 1.17 will only bootstrap 1.17, but looking
>> at the code we still always deploy the latest 1.17 (which broke all the
>> 1.17 series of CLI because 1.17.7 has an incompatible required flag).
>>
>> There is an argument that we can't get away with such a thing in a stable
>> series anyway, so it isn't going to be a problem. Mostly, though, I had
>> thought that we did exact matching, but I can see from the code that is
>> clearly not true.
>>
>> Would it be very hard to do so? I think William had a very interesting
>> idea that CLI bootstrap would always only bootstrap the exact version of
>> tools, but could set the AgentVersion to the latest stable minor version,
>> so it essentially bootstraps and then immediately upgrades. (With the big
>> benefit that the upgrade process to migrate from old versions to new
>> versions gets run.)
>>
>> This could be a distraction from the other stuff we're working on, but it
>> doesn't look that hard to implement, and would avoid some of these
>> semi-accidental breaking of old tools.
>>
>> John
>> =:->
>>
>> --
>> Juju-dev mailing list
>> Juju-dev at lists.ubuntu.com
>> Modify settings or unsubscribe at:
>> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>>
>>
> 
> 
> 



More information about the Juju-dev mailing list