LWN.net Logo

Who should maintain Python for Debian?

By Jake Edge
May 9, 2012

A two-year old Debian technical committee "bug" highlights some interesting aspects of Debian governance. The problem comes down to technical and personal disagreements about Python maintenance for the distribution. That bug has remained open since March 2010, though it may soon be resolved—based on the history, even saying that may be premature. That history raises a larger question, however: how should a project handle a situation where developers and maintainers of cooperating packages can't seem to get along—or even communicate?

March 2010

More than two years ago, Sandro Tosi noted some problems in the maintenance of the Python interpreter package. In that report, he pointed out that Python 2.6 for Debian was delayed for 14 months after it was available upstream, though the maintainer (Matthias Klose) had released two Python 2.6 packages for Ubuntu in the interim. In addition, once a Debian version was uploaded to unstable, it contained changes to the location of installed modules that broke various packaging tools and packages (mostly Python modules). That transition came with no warning, Tosi said, which is symptomatic of another problem: Klose is not communicating with the rest of the Debian Python community.

Because of those problems, Tosi asked the committee to make a decision about who should maintain the interpreter packages going forward. Tosi suggested that a new maintenance team be appointed for the Python interpreter and python-defaults packages. That message to the committee was signed by Tosi and three others (Luca Falavigna, Josselin Mouette, and Bernd Zeimetz) all of whom were proposed as the new maintainers. Others "willing to help, including of course the current maintainer" were also to be included.

The discussion continued for several weeks, committee member Bdale Garbee did some investigation into the problems and concluded that a better Debian Python policy and plan was needed before any kind of decision could be made, while others discussed ways to add co-maintainers. The problems clearly go back further than the bug report, perhaps as far as a DebConf 6 Python packaging meeting that evidently went awry—probably even further back than that.

Beyond the technical complaints, one of the major problems that is mentioned frequently by the (self) proposed new maintainers group is a lack of communication from Klose. Coordination with the module and Python application maintainers has been essentially non-existent, they said. Certainly the bug report itself is one example of that; in a long thread over two years, there is not one message from Klose. In addition, a look at the debian-python mailing list shows only a handful of messages from him in that time frame.

Klose maintains some "key packages (bash, binutils, gcc, java, python, and several others)", according to Tosi. That may leave him stretched a little thin. It may also be that he prefers other forms of communication (IRC is mentioned frequently). There are also hints in the thread that Klose may no longer be talking to those in the "new maintainer" camp due to longstanding "bad blood" stemming from both technical and personality conflicts.

Whatever the reasons, there is some kind of fragmentation going on in the Debian Python community. Part of it seems to be caused by Ubuntu-Debian conflicts, but the bulk of it stems from Klose's maintainership, which, at least in the eyes of some, is characterized by a "my way or the highway" attitude. The technical committee was fairly obviously leery of stepping into the middle of that mess and just making a decision. The committee members discussing it seem to have reached consensus that there are problems in the community, but none of the proposed solutions look like they will clearly make things better.

November 2010

The initial discussion petered out in July 2010. In November 2010, Debian Project Leader (DPL) Stefano Zacchiroli noted that he was frequently asked about the issue. Things had gotten better, he said, and discussions on transition strategies were taking place on the mailing list, which was a step in the right direction. He noted that while Klose was not always participating in those discussions, "it is also clear that he follows them and seems to agree with where they are going". But, that said, he stills sees a problem:

Nevertheless, the big issue is undeniably still open: maintenance of the main Python interpreter packages is still up to a single maintainer, with no mutual trust and/or communication between him and (most of) the rest of the Debian Python community.

Additionally, as DPL, I'm worried by seeing packages as important as the Python interpreters maintained by a single person. Even if all other surrounding issues were not there, that would be a bus-factor problem worth fixing by itself. (I concede there are other similar situations in the archive, but this is no excuse; they are just other problems to be solved.)

He concluded by saying that he didn't envy the committee for the decision it has to make, but was clearly encouraging a resolution to the problem. After there was no response for nearly two months, another ping from Zacchiroli in December was mostly met with silence.

March 2011

That led Zacchiroli to make another proposal in March 2011. While he makes it clear that he is not trying to step on the committee's toes, he proposed that it defer the decision to him. The proposal looks like something of a last gasp attempt to help the committee make a decision of some kind.

That elicited some response, though no one really felt that it was right to delegate the decision to the DPL. Ian Jackson expressed disappointment in the lack of a decision and suggested that the packages in question be orphaned, while requesting that interested teams apply to become the maintainers. Steve Langasek was opposed to that, and suggested that the committee re-affirm Klose as maintainer with encouragement to take on co-maintainers.

On the other hand, Russ Allbery thought that finding a team to maintain the interpreter packages, one that included Klose, would be the ideal solution. But, like the others, he was not really in favor of delegating to the DPL. And that's pretty much where this iteration of the conversation dropped.

March 2012

Tosi pinged the bug again in November, then in March 2012 ("2-years-old ping"). The latter is what prompted the most recent re-kindling of the discussion. The participants in this round seem resigned to taking a vote, with some discussion on what the options should be. Zacchiroli volunteered to try to firm up the possible alternative teams for Python maintenance and, to that end, posted a message to debian-python asking for interested parties to speak up.

Several people spoke up to volunteer, along with some who were opposed to replacing Klose. That led to a message from Zacchiroli summarizing the discussion and outlining the teams that were available to be placed on the tech committee's ballot. He followed that up with a bit of a poke on April 27: "I hope this could help and that the tech-ctte have now all the input needed to quickly come to a conclusion on this issue, one way or another." A bit of dialogue on the makeup of the three possible "teams" ensued, but the discussion pretty much ended there. In his DPL report, Zacchiroli mentioned his recent involvement and concluded: "I hope the tech-ctte now have all the information needed to come to a decision".

May 2012 (and beyond?)

It is a rather strange situation overall. It seems clear that the committee is not completely comfortable affirming Klose as the sole maintainer, and he has not commented as to whether he would be willing to co-maintain the interpreter packages with others. But an "overthrow" of Klose is not very palatable either. By waiting, presumably hoping that things would correct themselves on their own, the committee has put itself into an awkward position.

Had it re-affirmed Klose two years ago (or one year ago, or ...) the problem may in fact have solved itself. Perhaps the unhappy petitioners would have "taken their marbles and gone home", but, by now, one would guess any package maintainership holes would have been filled. If it gives Klose a vote of confidence now, after a two year consideration phase, there are likely to be questions about why it was left to linger so long. Meanwhile, deposing Klose now will raise more or less the same questions. As is typical in a Debian ballot, however, all of the proposals so far also include the "further discussion" option, so the committee could conceivably kick the can further down the road.

It's clear that Zacchiroli and others would rather not see that. The powers of the DPL are famously limited by the Debian Constitution, but Zacchiroli has done everything in his power to try to get some kind of closure on the issue. It is up to the technical committee to pull together a final ballot and put it to a vote; it seems likely that almost any decision (other than "further discussion" perhaps) would be better than none at this point. Or maybe the conversation will just die until the "three-year ping" comes along.


(Log in to post comments)

Who should maintain Python for Debian?

Posted May 10, 2012 3:11 UTC (Thu) by lordsutch (guest, #53) [Link]

There is another solution; under the powers of the developers in the Debian constitution (section 4.1.4), a 2:1 supermajority of those developers voting could "Make or override any decision authorised by the powers of the Technical Committee," including a decision about maintaining the Python packages. Perhaps it is time for such a general resolution to be proposed.

Who should maintain Python for Debian?

Posted May 17, 2012 11:04 UTC (Thu) by DavidS (subscriber, #84675) [Link]

The tech-ctte would have a much easier decision if the new team had technical results to show. Debian always responded much better to usable alternatives than to bickering.

Ceterum censeo single maintainers esse delendam.

Who should maintain Python for Debian?

Posted May 17, 2012 12:39 UTC (Thu) by gowen (guest, #23914) [Link]

Well, I for one am shocked (shocked!) to discover that the formation of a committee did not, in fact, lead to a prompt and satisfactory resolution of this problem.

Who should maintain Python for Debian?

Posted May 20, 2012 17:29 UTC (Sun) by ajk (subscriber, #6607) [Link]

I'm not aware of any committee having been formed for this problem. The TC is a standing body.

What's the problem?

Posted May 20, 2012 20:56 UTC (Sun) by blujay (guest, #39961) [Link]

I don't understand all the hubbub. If I understand correctly, we have a maintainer of a key package who's lagging far behind upstream and--even worse--not communicating with the community. He's ignoring discussion for *years*. This is simply uncooperative, and perhaps territorial as well.

These attitudes don't belong in a project like Debian. The decision to replace him as maintainer should be obvious and straightforward. The issue of stepping on toes has long since passed.

What's the concern? That he'll be offended? So what? The entire Debian project should be offended by his lack of concern and cooperation. Afraid he'll stop maintaining other packages? So what? Others can take over, just like this one--he's replaceable.

The Debian tradition of respecting each developer's prerogative over his packages is fine--but we're not talking about neverball here.

His silence speaks volumes. And that's the real issue: as much as technical issues ought to trump social ones, Debian is not a one-man project. Participating in such a group carries responsibilities, perhaps chief of which is to cooperate and communicate. Refusal to do so should be unacceptable and should be ample grounds for uncontested replacement--especially when teams of volunteers are waiting in the wings.

What's the problem? Just fix it.

(If I misunderstood something and have unfairly criticized anyone, please correct and forgive me.)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds