Ban Transparency from Tim Peters
Tim has released a post summarizing his communications with Python Software Foundation officials prior to his recent 3-month suspension
A while back, I wrote a lengthy post about the 3-month suspension of Tim Peters from official Python spaces.
In that post, I expressed empathy for Tim and I was critical of the Python Software Foundation’s (PSF’s) Steering Council (SC) and Code of Conduct Working Group (CoC WG).
Tim recently released a post summarizing his communications with officials from both of those PSF bodies directly prior to his suspension.
He does not seem resigned to quietly accept the reasons given for the suspension, and other community notables have been publicly critical as well. In various places, PSF officials have responded to public criticism about the suspension, claiming that a clear understanding of its rationale can’t be gained by anyone whom isn’t Tim because no one else but those officials have all the facts, and they are bound by secrecy to not release them. As Tim points out in his post, this is akin to a “god of the gaps” argument.
Tim’s post seems to be an attempt to make that argument irrelevant by releasing those PSF officials from any responsibility for secrecy about his communications with them.
If the post’s characterizations are accurate, these, to me, are the most concerning facts about the interactions detailed in his summary:
The CoC WG sent no warning to Tim prior to his suspension.
The SC attempted to communicate with Tim prior to his suspension via only a single message.
I remain critical of the CoC WG and the SC for each of the reasons I enumerated in my last post, but these are unfortunately new reasons to be critical. I’ll try to summarize here why I believe that.
Any casual reader of the ban announcement would assume that the the CoC WG had received complaints filed organically by normal users about Tim, and the SC was reluctantly forced to issue the suspension as a result. But given Tim’s description of his comms, it seems possible that the SC may have instead asked the CoC WG to supply a recommendation in order to have reason to issue it.
This wouldn’t be surprising or suggestive of some sort of shenaningan — the groups are almost certainly naturally in close contact because past and current members of the CoC WG are members of current and past SCs. And these are volunteers, and volunteer work is like that. But it does makes it unclear whether any complaints were received by the CoC WG that weren’t generated by members of the SC or CoC WG themselves. I would have no basis or standing to believe there weren’t, except for the details of Tim’s post and his description of comms.
If there were any concrete complaints from those not on the SC or CoC WG itself that the CoC WG felt meritable, the WG failed to relay them to Tim according to a strict interpretation of the enforcement policy. That’s understandable if the CoC WG instead chose to delegate those comms to the SC, if maybe a bit sloppy. But the privacy concerns so often cited by the WG, if they wish us to take them seriously, would make it poor practice (see “Documentation and Privacy Policies” in the enforcement policy).
But more worryingly, there’s possibly nothing even technically or procedurally wrong with any of this in the system we have now. It is instead an ethical concern. The SC doesn’t need a recommendation from the CoC WG to suspend a core developer. It is fully within their power to eject any core developer they see fit without consulting any other PSF group. It is just maybe less politically fraught to suspend a core developer by citing a recommendation from the CoC WG, which is what they did. Doing so, to me, is unduly punitive if nobody foreign to the SC or CoC WG (or adjacent bodies) made a mertitable complaint, if only due to the reputational damage it might cause the accused. And if citizens did file complaints, the CoC WG should have followed its own enforcement procedures.
Delta acceding to some set of specific actionable requests made in the SC’s single communication with him, it’s unclear how Tim might have avoided the suspension. And various characterizations of presumed attempts to provide guidance to Tim would seem to have you believe (just a few examples, all left uncorrected by both the SC and the CoC WG) that multiple attempts were made, when only a single attempt was made, and that the enforcement policy was followed properly, when it was not.
Tim characterized the lone message he received from the SC prior to his suspension as “we’re not objecting to what you’re saying, we’re objecting to who you are - become someone different, in ways you must already know we have in mind.” Maybe Tim is mischaracterizing it (he does indicate he responded dismissively to it in a reply), but we won’t know unless the comms are ever released.
Emily Morehouse whom was involved in the discussions of Tim’s suspension with the SC posted in a post-ban Discourse message, characterizing comms with Tim, “[i]t is wildly rare to approach someone who has behaved poorly or said something that hurt someone and have them respond with, “Wow, I’m so sorry that was the impact of my words. I may not understand all of it, but I’ll work to do better”.” It would be a relief to know that at least one actionable request had been made that such a reply might have been possible. But it also indicates knowledge of the necessity to communicate with almost everyone more than once about presumed offenses before corrective action.
I urge the SC (and the CoC WG if they sent any) to allow Tim to publish their communications with him regarding his suspension. There is little reason for privacy in this purely-electronic case when the target of the suspension releases you from that expectation.1
I also urge the CoC WG to at least provide a yes/no answer to the question “were any CoC complaints from non-WG and non-SC members filed?”2 Ideally, and in the spirit of transparency, it would also release the number of complainants. Obviously any more info than that would risk actually violating civilian reporters’ privacy.
These steps would go a long way towards restoring my own trust in both the SC and the CoC WG, whatever they reveal. It’s the secrecy that’s divisive, not the people. I’m not claiming anyone currently involved with Python would have such a motivation, but, in general, using a justice system that holds “secrecy” and “privacy” as primary goals is a dead-easy way to act on a personal beef, dressing it up as righteous punishment from an official body. That situation is not sustainable now, or over time, over different Board and PSF council and WG compositions, even when all currently involved have the best of intentions.
The same steps would probably also go a long way towards mitigating any coincidental, parochial community concerns prompted by Tim’s suspension. But whether it turns out in this particular circumstance that Tim is in the right, or the SC/CoC WG is (or both are) doesn’t really matter. More importantly, in the future, the option to make comms and stats about corrective action public — when agreed on by its target and when the complainants are not directly identifiable — would provide a much-needed check on power, but not the only one necessary.
As a result of the kerfuffle around Tim’s ban, based on some Discourse traffic I’ve seen, the (duly elected) SC appears to have a desire to get out of the business of enforcing CoC WG recommendations against core developers, with which — without any ability to delegate — it is currently tasked via Python governance rules. This may work out OK. But also might presumably place more power into the hands of the CoC WG. This would be a poor idea. It would make things much worse.
Unlike Board members and SC members, members of the CoC WG are not elected, and any new volunteer to the WG also must be ratified by its existing members. Presumably, a Board has the power to dissolve the WG or remove any of its members, but almost certainly, given the function of the WG, any given Board will lack the political will to do so. Even if some Board members have the will, other individual board members might rightly be fearful to do so if it meant going up against another powerful faction. It is easy to imagine such circumstances.
This is a recipe for unaccountable power if the CoC WG assumes the responsibility of enforcing its own CoC by gaining the power to itself ban core developers (and anyone else), especially if any WG member can themselves file such a complaint. This is not ideal if the goal is to make people feel welcome by demonstrating equal and just treatment, and doubly if total secrecy continues to be a primary goal.
I sincerely hope it doesn’t go that way, and I hope the Board assumes the responsibility for CoC enforcement against core developers instead. Changing the current SC governance document to relinquish it of that responsibility of will require an amendment vote. I’d encourage core team members with voting rights to reject a change that turns over that responsibility to the CoC WG.
Tim’s ban was the downstream result of criticism of a bylaws change that handed over power to a very opaque Board, and the controversy continues to be about that, as far as I can tell, but now just updated to include the SC and the CoC WG, and now even more so along a similar axis.
There were arguments made in the bylaws changes thread that Board elections provided a suitable and proportionate check on potential abuses of power hidden behind secrecy. But recent events seem to have uncovered that unless we can vote for members of the CoC WG or they are appointed by the Board and a few are rotated out every so often, and potential new members of the CoC WG don’t also need to be ratified by all all existing members, a system exists within the PSF that has no formal checks nor accountability at all, particularly if recommendations from them are followed pro-forma or they themselves have the ability to ban and suspend community members.3
In my last post on this topic, I bemoaned the fact that the Python community is now a grey, corporate place. If Tim’s post is accurate, I think it’s actually worse than that. It is half a-fair-and-open-but-sluggish-set-of-equity-committees-rules-here and half an-unaccountable-cabal-rules-here. I generally much prefer the latter in practice, but only when it does not stubbornly pretend to be the former.
I was originally only mildly opposed (something like -0) to the bylaws change that led Tim into discussions that resulted in his suspension. But the lack of transparency and secrecy-as-ubergoal championed by various PSF members demonstrated in a thread about transparency made me more so, and Tim’s suspension even more. I’m hoping that organizational behavior that (to me, at least) sometimes seems like punitive intransigence can be interpreted in a better light with more transparency.
I suppose the privacy of civilian reporters could theoretically be at stake, but their identities wouldn’t have been released to Tim anyway, and the kinds of complaints discussed in those exchanges could not — at least in this case — identify them in any meaningful way. And if it could, specific redactions are always an option.
There does not seem to be anything in Python’s bylaws or the CoC WG charter preventing a SC or CoC WG member from themselves filing a CoC complaint.
I am actually very sympathetic to those on the CoC WG because their (volunteer!) job truly sucks. It’s easy to snipe from the sidelines. I realize that some things I say in this post will be interpreted as accusatory rather than constructive and diagnostic of systemic issues. I’m just not sure how to make my concerns clear otherwise, apologies. But due to that, I feel compelled to make an offer to indicate some level of commitment to something other than sideline-sniping. If someone has a reasonable suggestion, please let me know.