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