Non-matching client and server seems like crack for anything other than
status and upgrade. Possibly only upgrade. Is there a reason we can't just
require everyone to upgrade in lockstep and warn if not?
On Nov 19, 2013 6:06 PM, "Curtis Hovey-Canonical" <cur...@canonical.com>
wrote:

> I am not sure if I am leading a discussion or just stating that we
> have a problem that I don't believe can be ever solved.
>
> We abandoned the release of 1.16.4 because we found it was
> incompatible with 1.16.3
>     https://bugs.launchpad.net/juju-core/+bug/1252469
>     "API incompatability: ERROR no such request "DestroyMachines" on
> Client"
>
> I now believe this bug is in the same class of problem:
>     https://bugs.launchpad.net/juju-core/+bug/1250154
>     "ERROR no such request "EnvironmentGet" on Client"
>
> I suspect both bugs also mean that 1.18.x will be incompatible with 1.16.x
>
> 1. I think Juju selects the latest version at the patch-level because
> they are always cli/api compatible between clients and servers. We
> *require* 100% api/cli compatibility. This is the first bug.
>
> 2. I believe enterprises like our own IS will stagger minor upgrades.
> Over a period of weeks, 1.18.0 will be used with 1.16.3 and they
> require api/cli compatibility. This is bug two.
>
> Enforcing point 1 is tremendously hard. We would have an ever growing
> matrix of tests for the juju client-server combinations + a test for
> every patch landed to verify that the user can accomplish the task. We
> don't have the staff to do this. We are taking risks with each patch
> release.
>
> We are not enforcing point 2 at all. CI has found some bugs because it
> nominally acts like devops when it runs upgrade tests. Even when the
> upgrade fails, we attempt to scp the logs from the failing machine
> just like a devop would.
>
> Speaking for CI, we would never want a feature removed in a single
> release. The feature needs to be deprecated so that we. like all IS
> departments, have time adjust scripts as we transition from one
> version to the next.
>
> I think deprecated-for-one-release is hard. in the case of API every
> where, I think that means that we add api, but fallback to cli so that
> things like scp and terminate-machine always work across versions. The
> old way of doing something is removed after one minor release.
>
> I personally think a non-matching tools on bootstrap/depoy is crack.
> At least warn that the client and server do not match. I think we can
> promise status and upgrade-juju works between versions, allowing the
> devops to do the upgrade. The aborted 1.16.4 can do that, so I helped
> others build their own package and setup the private cloud to use just
> the version so that they could switch everything to the version that
> works best for them.
>
>
>
> --
> Curtis Hovey
> Canonical Cloud Development and Operations
> http://launchpad.net/~sinzui
>
> --
> Juju-dev mailing list
> Juju-dev@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>
-- 
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