I remain strongly +1 on bootstrapping with tools that exactly match the
client version -- the client code near-enough directly drives those tools
as we bootstrap, and if we force pinned versions at bootstrap time we're
free to change how bootstrap works. If we need to deal with variation in
the version of the tools we're actually running, life becomes much harder
to no benefit. So: 1.18.2 client should always use 1.18.2 tools in the
course of bootstrapping.

As for automatically upgrading: it's clearly apparent that there's a
compelling case for not *always* doing so. But the bulk of patch releases
*will* be server-side bug fixes, and it's not great if we generally fail to
deliver those to casual users. I'm inclined to go with (1) a --version flag
for bootstrap, accepting only major.minor >= client tools and (2) a
--dry-run flag for upgrade-juju (with the caveat that you'd need to pass
its result in as --version to the next command, because new tools *could*
be published in the gap between the dry-run and the, uh, wet one). Aaron,
even though this doesn't promote your use case to the default, I think
this'll address your issues; confirm?

Cheers
William
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev

Reply via email to