Skip to content

Changes to pandas governance #47694

Closed
Closed
@datapythonista

Description

@datapythonista

I was reading the pandas governance document and I think it could benefit from some improvements. The team is much bigger now, and we've got more experience in things like which kind of sponsoring we're receiving, which policies were haven't been enforced and others. I think having more up to date and precise governance policies should make decision making more efficient.

In this issue I compile the points I think we could update. Feel free to propose additions and changes to the list. Once we've got the big picture on what topics we want to discuss, I'll be creating separate issues for each of the topics.

Decision making

So far the policy is to find consensus and have the BDFL to unblock decision when needed. Keeping this is surely an option but I see couple of things that changed since this was decided:

  • The team is now 30+ people, consensus may be more challenging. I don't think this has been a problem in practice so far.
  • Wes focus is in Arrow and not in pandas, and I don't think the BDFL figure has been used, at least for a long time.

For me personally, the main thing to improve in this area is to know when a decision is ready to be made. And even more, with the introduction of PDEPs (see #47444), where few people expressed interest on defining the voting process. I think there are couple of things that maybe could be changed:

  • The introduction of a steering committee as other projects do
  • Implement some sort of policy, like "for a decision to be made (e.g. a PDEP approved), at least 4 approvals are needed, and no objection (i.e. Requested changes in PR) should exist". Or if the committee exists, something like "at least 75% of the steering committee upvotes, and a total of 5 upvotes...."

Personally I don't have a strong opinion on what the policy should be, but I think adding clarity and avoiding ambiguity on when a decision is made, or what is missing to move forward with one decision, would be very beneficial.

Committees

So far we have a CoC committee and a NumFOCUS committee. I'd personally make couple of changes:

  • Rename the NumFOCUS committee to Finances committee or similar, as I think the name is misleading.
  • Implement a communications committee, who takes care of communications between the pandas and other stakeholders. Like sharing NumFOCUS relevant announcements with the core team, share pandas updates with NF and in social media, talk to sponsors...
  • I'd have a chair/leader in every committee, so it's clear who should schedule meetings, renew the committee when members become inactive...

Sponsors

I personally find the institutional partners policy overcomplicated and still ambiguous. I'd simplify thins and simply have a policy like "A pandas sponsor is worth being listed in the website (plus any other benefit we want) if it employs a person to work at least 20% of their time to work in unrestricted work in the project, or provides $10,000 or more in funding to the project (in cash or in kind). A sponsor remains a sponsor for a year (or X period we want) until the last contribution to the project has been made).

Inactive core devs

The governance has a clear policy that core devs remove commit rights after one year of inactivity. I don't think this has been enforced for many years. Should we enforce it, or review the policy?

Personally, I think a good idea would be to have a figure of "inactive maintainer". I don't care much if someone has commit rights that aren't being used. But I think it'd be good to have the list of active core developers somehow updated. Mainly for two reasons:

  • If we want to use policies like "80% of core developer approval" (for example we need that now to update the governance docs). I think inactive core developers aren't relevant, and make things difficult
  • For visibility of the rest of the core development team and the rest of the community. We've got now 30+ core devs listed at the moment, but the actual number of people active is probably closer to 15. I find useful that users, sponsors, devs, organizations we apply grants to... have a more precise figure

I personally prefer something like "Inactive core dev" that doesn't sound like you were a core dev once, but you lost the badge. And makes changing status less of a big deal and changing the question from "do you want to stop being a core dev" to "are you currently active". Of course that would be with a long term view, someone who is inactive for a month should still be an active core dev.

CC: @pandas-dev/pandas-core

Metadata

Metadata

Assignees

No one assigned

    Labels

    AdminAdministrative tasks related to the pandas project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions