This seems really nice, but I'm slightly wary of "magic" heuristics like this.
In particular, bootstrapping can take a while and I have wasted
plenty of time in the past trying to find bugs but having bootstrapped
using the wrong binary...

So I'm hoping this new feature provides at least these properties:

- if I bootstrap/upgrade from locally built binaries, the bootstrap process will
always unambiguously tell me that.
- there is some way to find out in advance whether juju will bootstrap/upgrade
from the locally built binaries (it's hard to interrupt a bootstrap).
- the --build-agent flag will guarantee that juju will bootstrap with
locally built
binaries (no fallback to released version).

  cheers,
    rog.



On 15 August 2016 at 13:27, Ian Booth <ian.bo...@canonical.com> wrote:
> So if you pull master you'll no longer need to use upload-tools.
> Juju will Do the Right Thing*, when you type:
>
> $ juju bootstrap mycontroller aws|lxd|whatever
> or
> $ juju upgrade-juju
>
> *so long as your $GOPATH/bin is in your path (as a developer).
>
> 1. As a user, you bootstrap a controller using a released client (incl betas)
>
> Juju will look for and find a packaged agent binary via simplesreams and use 
> that.
>
> 2. As a user, you want to upgrade a Juju system using a newer release (incl 
> betas)
>
> Juju will look for and find a packaged agent binary via simplesreams and use 
> that.
>
> 3. As a developer, you want to deploy with a Juju built locally from source
>
> You'll first build your work, go install github.com/juju/juju/..., then
>
> $ juju bootstrap mycontroller lxd
>
> 4. As a developer, you want to upgrade a running system using some local 
> changes
> you've been hacking on. This works for either a system running a released
> version, or a system running a development version, ie either case 1, 2 or 3 
> above
>
> You'll first build your work, go install github.com/juju/juju/..., then
>
> $ juju upgrade-juju
>
> It should be apparent that there's now no difference in Juju commands when
> running a production system or a development one.
>
> As a developer, you also have the "advanced" option of not building the Juju
> source before bootstrapping or upgrading, and asking Juju to do it for you. 
> This
> is similar to what happens currently and can be error prone, and there's no 
> need
> anyway. But if needed:
>
> $ juju bootstrap mycontroller lxd --build-agent
> $ juju upgrade-juju --build-agent
>
> But as I said, there's no need for this really, so long as as a developer you
> have your $GOPATH/bin directory early in your path so that locally built juju
> gets used in preference to /usr/bin/juju
>
> These changes also are to support running Juju for a single architecture 
> using a
> snap.
>
> Please let me know if there's any questions. --upload-tools is still supported
> but will be removed soon. You can use --show-logs to see what Juju is doing.
> I must admit, not having to type --upload-tools all the time is to quote 
> Borat,
> "Niiiiiiiiiiiice".
>
>
> TODO
>
> We still need to add a --agent-binary option to upgrade-juju so you can point 
> it
> to the new jujud you want it to use. This is to allow developers to upgrade a
> system running from a snap. ie go install and then use the resulting binary
> after copying somewhere the snap can see it. There's a bit of usability to 
> work
> out there. Or it also allows you to send someone a jujud binary and they can
> just easily using that, rather than messing around with tarballs and
> simplestreams like they need to do today.
>
>
>
>
>
> --
> canonical-juju mailing list
> canonical-j...@lists.canonical.com
> Modify settings or unsubscribe at: 
> https://lists.canonical.com/mailman/listinfo/canonical-juju

-- 
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