| From: |
| Mark Shuttleworth <mark-AT-ubuntu.com> |
| To: |
| debian-project-AT-lists.debian.org |
| Subject: |
| On cadence and collaboration |
| Date: |
| Wed, 05 Aug 2009 10:21:38 +0100 |
Hi folks
I've stayed quiet in this discussion, though several folks have invoked my
name and ascribed motivations to me that were a little upsetting. I'm not
responding to that here, instead I'd like to focus on what we can achieve
together, and how we can lead a very significant improvement in the health
of the whole free software ecosystem.
Apologies in advance if this mail is lengthy and not particularly witty!
Imagine you are the leader of a key upstream component. You care about
your users, you want them to appreciate and love the software you write.
But you also know that most users won't get the code from you - your code
will land in most users hands through one or other distribution - maybe
RHEL, maybe Fedora, maybe Debian or Ubuntu or Gentoo. And you can maintain
a few personal relationships with distribution-space that help to
straighten things out, but more often than not, users will get your code
from a distribution with whom you have little contact. To make things
worse, at any given time, different distributions may be shipping wildly
different versions of your code. That makes all the bug reports harder to
evaluate, and all the patches harder to apply. It also makes it harder to
know where to commit precious resources to stable version maintenance.
I hear this story all the time from upstreams. "We'd like to help
distributions, but WHICH distribution should we pick?" That's a very
difficult proposition for upstreams. They want to help, but they can't.
And they shouldn't have to pick favorites.
Adopting a broad pattern of cadence and collaboration between many
distributions won't be a silver bullet for ALL of those problems, but it
will go a very long way to simplifying the life of both upstreams and
distribution maintainers. If upstream knows, for example, that MANY
distributions will be shipping a particular version of their code and
supporting it for several years (in fact, if they can sit down with those
distributions and make suggestions as to which version would be best!)
then they are more likely to be able to justify doing point releases with
security fixes for that version... which in turn makes it easier for the
security teams and maintainers in the distribution.
We're already seeing a growing trend towards cadence in free software,
which I think is a wonderful move. Here, we are talking about elevating
that to something that the world has never seen in proprietary software
(and never will) - an entire industry collaborating. Collaboration is the
primary tool we have in our battle with proprietary software, we should
take the opportunities that present themselves to make that collaboration
easier and more effective.
OK, so that's the theory. How do we get there? How do we get many
distributions to sit down and explore the opportunities to agree on common
base versions for major releases?
Well, the first thing is to agree on the idea of a predictable cadence.
Although the big threads on this list are a little heartbreaking for me to
watch, I'm glad that there hasn't been a lot of upset at the idea of a
cadence in Debian so much as *which* cadence. We can solve the latter, we
couldn't solve the former. So I'm happy at least at that :-)
The second thing is to find the opportunities that are most likely to be
successful. That depends as much on psychology and practical interaction
as anything else.
As pointed out on this list, Debian and Ubuntu share a great deal. We have
largely common package names (imagine what a difference that will make to
practical discussions over IRC ;-)) and we have established relationships
between folks who care about most of the major components already. We have
lots of people with shared experience in both projects (most of the
strongest Ubuntu contributors are or have been very strong Debian
contributors too, and many new Debian maintainers have come to the project
through Ubuntu). When I look over the commentary on debian-devel and in
debbugs and on #debian-devel, I see a lot of familiar names from Ubuntu,
especially on the deep, hard problems that need solving at the core. I'm
proud of that.
So, practically, we would be in a good position to collaborate.
Psychologically, I don't know so much. Have you ever noticed how family
disputes can be the most bitter? Or how neighboring countries that share
the same food, the same dress, the same values, can often be the bitterest
feuds? Some days I think that applies between us. I see mails on this list
saying it would be easier and better for Debian to coordinate with
distributions that I think would be almost *impossible* to work with
practically, but somehow they are more attractive because they are not
family. Perhaps we know each other too well. It's hard to be a prophet in
your home town.
How do I think it could work in practice? Well, if Debian and Ubuntu went
ahead with the summit in December, where we reviewed plans for 2010 and
identified opportunities to collaborate, I think we would get (a) several
other smaller distributions to participate, and (b) several upstreams to
participate. That would be a big win. It would set us off on a good
course. If we delivered, then, we would virtually guarantee that almost
all the distributions and key upstreams would participate the next time
around. And if *that* worked, we'd win RHEL over too.
A December summit is not about tying anybody's hands. It's about looking
for opportunities, where they exist naturally, and communicating those
more widely. At the moment, if we happen to ship the same version, it's
partly an accident, and upstream doesn't know about it till afterwards.
With an effort made on reviewing and thinking about it, we should get much
better information and communicate much better. Which is a win, right?
So, I'd like to address some of the comments and ideas expressed on this
list recently.
First, there has been no secret cabal or skunkworks effort to influence
Debian. As best I can tell, folks from both Debian and Ubuntu who have
deep insight into release management established a shared interest in
working together better, at many levels, and this was one idea that came
forward. The fact that those discussions were open and ongoing was no
secret - I wouldn't have talked about it in the media if it were!
(Ironically, someone suggested that the fact that I was talking publicly
about something in Debian implied there was a secret cabal. Aiieee.)
I have always tried to make sure that I speak regularly with the DPL -
some DPL's have not responded to that at all, others have been happy to
speak. Steve and I have spoken about every quarter, which is great, and we
focus those conversations on ways we can make collaboration better.
Finding teams we can introduce to one another. Finding ways to communicate
better. This was again, one of the things that came up, as was the idea of
a joint sprint on boot process, which was very successful.
In both cases, the individuals and teams concerned have a mandate from
their organisations to think problems through and speak for the project.
Large organisations can't work any other way. I was stunned when I saw the
announcement of a "decision" because I know that Debian works by building
steady consensus (and by small groups who Just Do It now and then, but
that won't work on something like this). I had expected there would be
more of a proposal for discussion. As far as I can tell, that's what
happened at DebConf, but the announcement afterwards was abrupt. A pity,
because the discussions have been colored by the perception of an imposed
decision, when they needn't have been.
Second, this is not about Debian changing to meet the needs of Ubuntu.
As I've said elsewhere, Ubuntu would be happy to reach a compromise if
needed to work with Debian and others. I think there's agreement on a two
year cadence, and if needed we can change one of our cycles to help bring
multiple distributions into line. Alternatively, with Debian specifically,
we can contribute resources to help Debian meet a stretch (or squeeze ;-))
goal. From my perspective, committing Canonical employees to help Debian
freeze in December, or stretching our one cycle to get us both onto a two
year cadence, are roughly the same. It would be unreasonable to expect us
to do BOTH of those, but I'm happy to work one either basis. Compromise
requires some give from both parties, though.
But most importantly, this whole thing will have it's best and biggest
impact if it goes beyond Ubuntu and Debian. The debate on this list has
mostly been about "Ubuntu vs Debian", which misses the real goal: let's
send a signal to upstreams that they can participate and help shape the
way end users will experience their software. To do that, we need to get
multiple distributions. And looking at it that way, a December summit
gives us a much stronger ability to influence multiple distributions that
are planning releases in 2010. Based on the feedback from the Debian
release team that they liked the idea, I've been reaching out to other
distributions to try to get more of them together. This gets much more
powerful the more of them we bring to the same forum. I'm saddened that
the aggressive tone of this debate has thrown the exercise into question -
I think largely because of unfortunate communications after the
discussions at DebConf. C'est la vie.
Third, I think we need to call on the people who are not fundamentally
prejudiced to speak out.
I see many mails on this list from people who are clearly absolutely
certain in their minds that "Ubuntu is an evil thief of Debian's work". I
don't see any way to change their minds. No matter how many positive
examples of effort made by Ubuntu folks to collaborate we find, they will
always find examples that reinforce their view. If that view dominates the
discussion, we can never improve the situation, because that view says
"don't bother doing anything different, don't look for opportunities to
collaborate, don't make any offer to compromise". How can we achieve
anything from that basis? Debian is made up of hundreds of contributors,
many stay silent. I'm saddened that the loudest voices seem to be those
who are vociferous in their opposition to Ubuntu, rather than those who
are finding ways to make things better. I'm saddened that a good idea - a
sounder basis for collaboration, backed by real investment and effort -
gets crushed on the rocks of hate from folks who do not make the bulk of
the contribution.
It's not hard to tell if someone is expressing an opinion based on
prejudice or one based on openness. Anyone who says, definitively, that a
whole organisation or hundreds of people is "bad", is making a
generalisation that can only be harmful to relationships. I enjoyed Linus
Torvalds' recent interview where he talked about prejudice against
Microsoft in the Linux community, and how poisonous it is. The same is
true of prejudice against Ubuntu here in Debian.
There are very good people, with long histories in Debian, who have
pointed out the positive things that have come from Ubuntu. Listen to
them. Ubuntu is in a great position to help with big and deep changes that
need to be made. Look at the folks who have been instrumental in
discussions around multi-arch, or the move to event-based booting, for
recent examples, and you'll see people who work effectively in both
projects. Neither project can claim credit for all the good work that goes
on, but it would be very wrong to make a sweeping statement that Ubuntu
makes no contribution.
As for my motivations - I love free software and want it to win. If it
wins properly, it will not come in a single package branded "Debian" or
"Ubuntu" or "Red Hat", it will come in a coordinated diversity. I have no
interest in seeing anything bad happen to Debian. Quite the reverse, I've
acted in the ways I thought would carry the greatness of Debian into new
places in the most effective way possible. I'm sorry that some folks have
responded to that as if it were a threat, and sought to create divide and
disharmony. I stayed away from DebConf this year - the first time in six
years - because I didn't want to be a flashpoint for division, when there
are so many positive threads of collaboration under way. I hope this mail
doesn't turn into a magnet for flies and pus. If it suits your brain to
think that I'm an evil capitalist thieving pig, so be it, I doubt there's
anything I could do to change your mind. Paranoia will only get you so
far. But if you're open minded, take the time to look again at what I've
done and said, and ask if it's made a positive difference to Debian and
free software in the last five years, and make your own mind up.
Rather than turning this into a debate on the integrity of individuals or
organisations or projects, let's look at how to make a big improvement in
the free software ecosystem.
In summary (and thank you to anyone who made it this far :-)):
To achieve anything together, we'll both need to work together, we'll need
to make compromises or we'll need to contribute effort to the other side.
If the Debian community is willing to consider a December freeze, then
Ubuntu (and Canonical) will commit resources to help Debian meet that
goal. It means we'll get less done in Ubuntu, but the benefits of having a
schedule which could attract many other distributions would outweigh that.
I think multiple other distributions, who tend to think in financial years
(2010) and plan accordingly, will join a December freeze summit, and there
are significant benefits to Debian to being part of that rather than on a
different schedule.
This is a good faith offer of help and support in order to reach a tough
but noble and achievable goal. It won't be easy, the first time or the
next, but it will kickstart a process that will bring dividends to Debian,
and to the whole broader ecosystem. Ask upstreams what they think, and
whether they would want to participate, and you'll hear a very positive
response.
Mark