API compatibility policy and practices between juju versions

John Arbash Meinel john at arbash-meinel.com
Thu Nov 21 15:51:28 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2013-11-20 3:05, Curtis Hovey-Canonical 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"

So I've done an audit, and bug #1250154 is very severe because it
affects every command. (The code to "maybe push secrets" uses
Client.EnvironmentGet but that API didn't exist in 1.16, but now every
API aware command uses that code.)

That can be fixed in a rather straightforward manner (eg we just don't
try to push secrets because we assume someone with a 1.16 client will
have done so).

The new summary bug is here:
  https://bugs.launchpad.net/juju-core/+bug/1253619
  "juju 1.18 needs to support all CLI against a 1.16 server"

Unfortunately the problem space is pretty wide (12 commands are
affected). This is broken up into mostly things the GUI wasn't doing:

1) Direct Machine manipulation (destroy-machine, add-machine)
2) Direct Machine access (debug-hooks, scp, ssh)
3) Environment level changes (set-environment, set-constraints in the
   environment, upgrade-juju)
4) "juju set" changed and we added "juju unset". This changed the
ServiceSet to NewServiceSetForClientAPI which treats the empty string
"" as a valid setting, rather than treating it as "reset to default",
which we use ServiceUnset for.
5) "juju status" which doesn't go via the API yet, but the GUI does
that via the AllWatcher (because they maintain an ongoing status compat).

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlKOLAAACgkQJdeBCYSNAAOE1ACgys/WH6oKAPnen2EdNZd6+VLS
94QAn1hMkUzMFHGp/womO+jAEp9NISeU
=boNo
-----END PGP SIGNATURE-----



More information about the Juju-dev mailing list