Juju Delegated Team
Nicholas Skaggs
nicholas.skaggs at canonical.com
Mon Sep 12 22:52:51 UTC 2016
Given the feedback at today's DMB meeting, I am attempting to provide
more detail on the background of the juju source packages within ubuntu.
I'll also provide a little snapshot of the journey on improving these
packages since my involvement in the team. I am happy to answer any
questions anyone may have -- feel free to send them my way.
From June 2014 to August 2014 the juju core and TB engaged in a
discussion around a stable release exception for juju. I'll link you to
the relevant conversations here:
https://lists.ubuntu.com/archives/technical-board/2014-June/001969.html
https://lists.ubuntu.com/archives/technical-board/2014-July/001972.html
and replies
The approval
https://lists.ubuntu.com/archives/technical-board/2014-August/001992.html
In summary, similar to landscape, juju is subject to many external
influences, including external providers, as well as external machines
and operating systems. The client server nature of juju demands that the
agent and client stay in sync. The TB has defined several ways in which
they acknowledge the stability of a package can be adversely affected,
even which no change occurs to the package itself. For juju, this
typically means server or providers changes. Quoting Alexis's initial email:
> Juju is built on cloud APIs from Microsoft, Joyent, HP, Openstack, and many
> others, and we have been required to push updates that fix juju when those
> APIs change in backwards incompatible ways. Likewise juju is subject to
> changes in real and virtual machine hardware deployed in the field and in
> particular is being used as a test bed for high density server systems with
> ARM and Power hardware which provide very rapid moving targets.
At some point that wiki page Martin created at that time was broken and
I was asked to create a new page to be referenced for SRU's which
outline our requirements. That page is here:
https://wiki.ubuntu.com/JujuUpdates.
This exception grant predates my direct involvement with juju.
As to the history of the package, others can certainly provide much more
detail than I. However, as an outside observer involved with QA and
community testing, I saw juju struggling to meet the distro's
requirements for development and landing. Often they wished to land late
in the cycle, or even post release as an SRU. This caused tension and
extra work for everyone.
This was the case when I joined the team in April and no 2.0 releases
had been uploaded while the archive was open during the development
cycle. My first work was involved in trying to land juju-2.0 into xenial
and formulating this FFe:
https://bugs.launchpad.net/ubuntu/+source/juju-core/+bug/1545913. I
discovered the security team's requests for breaking out the packaged
dependencies
(https://bugs.launchpad.net/ubuntu/+source/juju-core/+bug/1568148) and
set to work on solving the many packaging issues, adding adt tests to
prevent LXD breakage, and including what I saw was an issue with the LTS
upgrade story. So I advocated a solution for trusty users migrating with
juju-1 installed. This led to the creation of the juju-1-default
package. If you check the bottom of that bug I listed 3 things to
improve on during the yakkety cycle. All three have been worked this
cycle, including regular beta uploads, further package dependency work,
and now this ppu application.
Since that initial work, keeping uploads and SRUs into xenial and
yakkety on a regular basis has been challenging because of juju
packaging defects and autopkgtest failures, archive changes, and things
like 32-bit built failures. I believe juju has fallen down and simply
avoided uploading once things got difficult in the past. I've worked to
try and solve these issues, and in the cases of 32-bit failures, worked
with the release and SRU teams to get working builds despite my concerns
about the lack of upstream support and the precarious nature of
unsupported builds.
For example, when 32-bit ppc failed to build recently, pitti was helpful
in pointing out resources to help solve the problem. I added a patch to
keep the build rather than remove it as upstream wished
(https://launchpad.net/ubuntu/+source/juju-core/2.0~beta15-0ubuntu2.16.04.1).
When 32-bit builds failed again
(https://launchpad.net/ubuntu/+source/juju-core/2.0~beta17-0ubuntu1.16.10.1),
I sought resolution in some way on a best effort basis. My belief and
initial discussions with others such as slangasek and pitti was that
there was no good way forward. My primary concerns were for users on
running a neutered or old version of juju and our inability to get a
much needed fix into Xenial. This inability to push SRU's is a big deal
and needs to be solved. Broken or outdated packages should not be left
to rot. This led me to request removal of these builds from xenial; and
the associated work to providing a package to transition 32-bit users
off the old build
(https://lists.ubuntu.com/archives/ubuntu-release/2016-September/003882.html).
Based on a follow-up IRC conversation with pitti's and rbasak's concerns
and feedback, among others, a consensus was reached to retain whatever
support possible, on the basis a neutered package is better than no
package at all. In agreement, I will again seek to put the distro first
and find a solution to preserve a 32-bit package on xenial. I've
requested for upstream to allow building without providers, so when
external code drops support for 32-bit, it can be removed from the
build. This upstream work I trust should guarantee I am not blocked on
deploying critical releases, while still allowing a best effort for
unsupported builds. It is work upstream will undertake that otherwise
wouldn't have occurred.
Historically I've worked within the community and advocated for
solutions that will help the distro as a whole, rather than focusing on
specific upstream desires. I understand and agree with the rational of
LTS releases, I've been on both sides of SRU's, and I'm no stranger to
the discussing the release cycle
(http://www.theorangenotebook.com/2013/03/staring-down-scarecrow-should-ubuntu.html).
Again my goal is to continue to work with the security, foundations,
release and SRU teams to make juju a better citizen within the distro. I
believe the yakkety cycle has been a much better example of what juju
could be, and I trust with ppu rights this could be further improved.
These challenges are not going to go away, but I believe juju needs
someone willing to engage and understand the challenges of a
distribution. I trust this engagement will mean a better package for
ubuntu and juju.
Thanks again for your consideration, and please don't hesitate to reach
out with any questions or concerns.
Nicholas
More information about the Devel-permissions
mailing list