-
-
Notifications
You must be signed in to change notification settings - Fork 19.1k
Description
Parent issue: #47694
Scope of the discussion here: How technical decisions about the pandas project are made
Other governance topics like decisions about funding, creation of pandas workgroups, who is an active core dev... should better be discussed separately, to keep things focused, even if they may affect technical decision making, and are currently not well defined.
Example of technical decision:
- What build system to use, setuptools, Meson, cmake...
- Should the
implace
argument be fully deprecated? - Would it be better to move
read_sas
to a third-party project, and remove it from the core pandas? - ...
Most often decision making in pandas worked well and fluently, with one person leading an effort, other people interested in the topic provides feedback, and we move forward with a solution that everybody seems happy with. Personally, I think this is just fine, and it may not make sense to overthink or add too much overheat to these cases.
But in some cases, we end up with different people having strong conflicting opinions on how to move forward with a topic. In my experience, this can end up being tiring and frustrating for all involved people, and the final outcome is either stay with the status quo for lack of consensus, or taking the decision of the person who has more energy and perseverance to invest in the discussion. From our current governance, we have Wes as the project BDFL who could mediate and make a decision, but in practice this doesn't happen as Wes is not active in pandas anymore.
With the introduction of PDEPs, these technical decisions are probably going to be required more often, with possibly more non-trivial decisions to make, and it'd be good to formalise the process on how decisions are made, as well as to clarify when a decision is assumed to be made.
I personally don't have a strong opinion on what governance model should be implemented. numpy's governance seems quite reasonable, and not far what we've been informally doing. I guess it can be a good starting point. Based on the experience on past pandas discussions I'd personally prefer to have some less ambiguity. For example, specify how much time is required since a proposal it's made, until it's considered that there are no vetos.
I don't want to bias the discussion much here, and please feel free to incorporate here any relevant topic not added by myself, but some of the questions that it may make sense to answer are:
- Do we want to keep the pandas BDFL role? If so, does it make sense that someone active in the project becomes it?
- Is a steering committee something useful to pandas? What the exact responsibilities of the committee would be?
- Are we happy with a veto model similar to numpy's? Should a single veto be enough, or maybe a proposal should move forward if it has enough endorsements and just a single veto?
- Would voting for the proposals instead of the veto model be more convenient?
- Do we want to have a minimum amount of core devs endorsing a proposal before it's considered accepted? If so, how many?
- For PDEPs, does PRs "Approve" and "Request changes" seem convenient ways to manage endorsements and vetos for a proposal?
Opening this as an issue, but maybe worth having a dedicated call to discuss this can also be useful. Let me know if there is interest.
CC: @pandas-dev/pandas-core