From a9c499d5e843adea2984ce3493088c53426da380 Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 3 May 2023 17:43:02 +0200 Subject: [PATCH 01/17] adding voting draft --- .../pdeps/0001-purpose-and-guidelines.md | 62 ++++++++++++++++--- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 24c91fbab0808..37b138229af08 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -6,7 +6,7 @@ [#51417](https://github.com/pandas-dev/pandas/pull/51417) - Author: [Marc Garcia](https://github.com/datapythonista), [Noa Tamir](https://github.com/noatamir) -- Revision: 2 +- Revision: 3 ## PDEP definition, purpose and scope @@ -71,17 +71,60 @@ Proposing a PDEP is done by creating a PR adding a new file to `web/pdeps/`. The file is a markdown file, you can use `web/pdeps/0001.md` as a reference for the expected format. -The initial status of a PDEP will be `Status: Under discussion`. This will be changed to -`Status: Accepted` when the PDEP is ready and has the approval of the core team. +The initial status of a PDEP will be `Status: Draft`. This will be changed to +`Status: Under discussion` by the author(s), when they are ready to proceed with the descision +making process. + +#### Schedule +A PDEP discussion will remain open for up to 60 days. This period aims to enable participation +from volunteers, who might not always be available to respond quickly, as well as provide ample +time to make changes based on suggestions and considerations offered by the participants. +Similarly, the following voting period will remain open for 15 days. + +To enable and encourage discussions on PDEPs, we follow a notification schedule. At each of the +following steps, the pandas team, and the pandas dev mailing list are notified via GitHub and +E-mail: +- Once a PDEP is ready for discussion. +- After 30 discussion days, with 30 days remaining for discussion. +- After 45 discussion days, with 15 days remaining for discussion. +- In case 15 days passed without any new comments, the authors may close the discussion period + and open the voting period. +- Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days + remaining for voting. +- After 10 voting days, with 5 days remaining for voting. + +#### Casting Votes +As the voting period starts, a VOTE issue is created which links to the PDEP discussion issue. +Each voting member may cast a vote by adding one of the following comments: + +- +1: approve. +- 0: abstain. + - Reason: A one sentence reason is required. +- -1: disapprove + - Reason: A one sentence reason is required. +A disapprove vote requires prior participation in the PDEP discussion issue. + +Once the voting period ends, any voter may tally the votes in a comment, using the format: x-y-z, +where x stands for the total of approving, y of abstaining, and z of disapproving votes cast. + +#### Quorum and Majority +For a PDEP vote to result in accepting the proposal, a quorum is required. All votes (including +abstentions) are counted towards the quorum. The quorum is computed as the lower of these two +values: + +- 11 voting members. +- 50% of voting members. + +Given a quorum, a majority of 75% of the non-abstaining votes is required as well, i.e. 75% of +the approving and disapproving votes must be in favor. + +Thus, abstaining votes count towards a quorum, but not towards a majority. A voting member might +choose to abstain when they have participated in the discussion, have some objections to the +proposal, but do not wish to stop the proposal from moving forward, nor indicate their full +support. #### Accepted PDEP -A PDEP can only be accepted by the core development team, if the proposal is considered -worth implementing. Decisions will be made based on the process detailed in the -[pandas governance document](https://github.com/pandas-dev/pandas-governance/blob/master/governance.md). -In general, more than one approval will be needed before the PR is merged. And -there should not be any `Request changes` review at the time of merging. - Once a PDEP is accepted, any contributions can be made toward the implementation of the PDEP, with an open-ended completion timeline. Development of pandas is difficult to understand and forecast, being that the contributors to pandas are a mix of volunteers and developers paid from different sources, @@ -184,6 +227,7 @@ hope can help clarify our meaning here: - 3 August 2022: Initial version ([GH-47938][47938]) - 15 February 2023: Version 2 ([GH-51417][51417]) clarifies the scope of PDEPs and adds examples +- DD MM YY: Version 3(link) defines a structured decision making process for PDEPs [7217]: https://github.com/pandas-dev/pandas/pull/7217 [8074]: https://github.com/pandas-dev/pandas/issues/8074 From 233c03eff4455bd05f6dd57722d90ed0b64a942a Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 3 May 2023 18:31:19 +0200 Subject: [PATCH 02/17] new workflow intro --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 37b138229af08..52b664d4e0fb2 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -56,6 +56,12 @@ advisor on the PDEP when it is submitted to the PDEP repository. ### Workflow +Our workflow was created to support and enable a consensus seeking process, and to provide clarify, +for current and future authors, as well as voting members. It is not a strict policy, and we +discourage any interpretation which seeks to take advantage of it in a way that could "force" or +"sneak" decisions in one way or another. We expect and encourage transparency, active discussion, +feedback, and compromise from all our community members. + The possible states of a PDEP are: - Under discussion From 45c95fcd96d33952a9aef9a646d194bd21780e71 Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 10 May 2023 09:42:07 +0200 Subject: [PATCH 03/17] update after feedback --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 52b664d4e0fb2..d00568d10fe0c 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -56,14 +56,19 @@ advisor on the PDEP when it is submitted to the PDEP repository. ### Workflow +#### Rationale + Our workflow was created to support and enable a consensus seeking process, and to provide clarify, for current and future authors, as well as voting members. It is not a strict policy, and we discourage any interpretation which seeks to take advantage of it in a way that could "force" or "sneak" decisions in one way or another. We expect and encourage transparency, active discussion, feedback, and compromise from all our community members. +#### PDEP States + The possible states of a PDEP are: +- Draft - Under discussion - Accepted - Implemented @@ -81,7 +86,8 @@ The initial status of a PDEP will be `Status: Draft`. This will be changed to `Status: Under discussion` by the author(s), when they are ready to proceed with the descision making process. -#### Schedule +#### PDEP Discussion Timeline + A PDEP discussion will remain open for up to 60 days. This period aims to enable participation from volunteers, who might not always be available to respond quickly, as well as provide ample time to make changes based on suggestions and considerations offered by the participants. @@ -100,6 +106,7 @@ E-mail: - After 10 voting days, with 5 days remaining for voting. #### Casting Votes + As the voting period starts, a VOTE issue is created which links to the PDEP discussion issue. Each voting member may cast a vote by adding one of the following comments: @@ -114,6 +121,7 @@ Once the voting period ends, any voter may tally the votes in a comment, using t where x stands for the total of approving, y of abstaining, and z of disapproving votes cast. #### Quorum and Majority + For a PDEP vote to result in accepting the proposal, a quorum is required. All votes (including abstentions) are counted towards the quorum. The quorum is computed as the lower of these two values: From 0133e82759f8c5f36c8282ff9caf84710ee0e43d Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 10 May 2023 09:44:14 +0200 Subject: [PATCH 04/17] fix errors --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index d00568d10fe0c..fbb845b66bd6d 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -83,7 +83,7 @@ The file is a markdown file, you can use `web/pdeps/0001.md` as a reference for the expected format. The initial status of a PDEP will be `Status: Draft`. This will be changed to -`Status: Under discussion` by the author(s), when they are ready to proceed with the descision +`Status: Under discussion` by the author(s), when they are ready to proceed with the decision making process. #### PDEP Discussion Timeline @@ -130,7 +130,7 @@ values: - 50% of voting members. Given a quorum, a majority of 75% of the non-abstaining votes is required as well, i.e. 75% of -the approving and disapproving votes must be in favor. +the approving and disapproving votes must be in favor. Thus, abstaining votes count towards a quorum, but not towards a majority. A voting member might choose to abstain when they have participated in the discussion, have some objections to the From 4ad9f80216745dc92364cc33f5fe71f2c07e45ab Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 10 May 2023 09:51:10 +0200 Subject: [PATCH 05/17] fix errors --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index fbb845b66bd6d..777b5f2aa1d98 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -84,7 +84,7 @@ for the expected format. The initial status of a PDEP will be `Status: Draft`. This will be changed to `Status: Under discussion` by the author(s), when they are ready to proceed with the decision -making process. +making process. #### PDEP Discussion Timeline @@ -111,7 +111,7 @@ As the voting period starts, a VOTE issue is created which links to the PDEP dis Each voting member may cast a vote by adding one of the following comments: - +1: approve. -- 0: abstain. +- 0: abstain. - Reason: A one sentence reason is required. - -1: disapprove - Reason: A one sentence reason is required. From 2b3c5ad193aabc5c1b362a7767f8a98fcee07f21 Mon Sep 17 00:00:00 2001 From: Noa Tamir <6564007+noatamir@users.noreply.github.com> Date: Fri, 9 Jun 2023 17:42:10 +0200 Subject: [PATCH 06/17] Apply suggestions from code review Co-authored-by: Irv Lustig --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 777b5f2aa1d98..28d123311e047 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -107,7 +107,7 @@ E-mail: #### Casting Votes -As the voting period starts, a VOTE issue is created which links to the PDEP discussion issue. +As the voting period starts, a VOTE issue is created which links to the PDEP discussion pull request. Each voting member may cast a vote by adding one of the following comments: - +1: approve. @@ -241,7 +241,7 @@ hope can help clarify our meaning here: - 3 August 2022: Initial version ([GH-47938][47938]) - 15 February 2023: Version 2 ([GH-51417][51417]) clarifies the scope of PDEPs and adds examples -- DD MM YY: Version 3(link) defines a structured decision making process for PDEPs +- 09 June 2023: Version 3([GH-53576][53576]) defines a structured decision making process for PDEPs [7217]: https://github.com/pandas-dev/pandas/pull/7217 [8074]: https://github.com/pandas-dev/pandas/issues/8074 From 90926686f986c55ff61d554552fa685c2518c353 Mon Sep 17 00:00:00 2001 From: Noa Tamir <6564007+noatamir@users.noreply.github.com> Date: Wed, 14 Jun 2023 19:36:50 +0200 Subject: [PATCH 07/17] clarification --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 28d123311e047..6e12f571e32e3 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -99,7 +99,7 @@ E-mail: - Once a PDEP is ready for discussion. - After 30 discussion days, with 30 days remaining for discussion. - After 45 discussion days, with 15 days remaining for discussion. -- In case 15 days passed without any new comments, the authors may close the discussion period +- In case 15 days passed without any new comments, the authors may close the discussion period preemptively, and open the voting period. - Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days remaining for voting. From a7370343e4e75c01459551544b04d4661a6a0dd3 Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Fri, 16 Jun 2023 07:27:44 +0200 Subject: [PATCH 08/17] updated based on feedback --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 6e12f571e32e3..634b4f51c1ae2 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -108,7 +108,7 @@ E-mail: #### Casting Votes As the voting period starts, a VOTE issue is created which links to the PDEP discussion pull request. -Each voting member may cast a vote by adding one of the following comments: +Each voting member, including the author(s) may cast a vote by adding one of the following comments: - +1: approve. - 0: abstain. @@ -117,6 +117,8 @@ Each voting member may cast a vote by adding one of the following comments: - Reason: A one sentence reason is required. A disapprove vote requires prior participation in the PDEP discussion issue. +Comments made on the public VOTE issue by non-voting members will be deleted. + Once the voting period ends, any voter may tally the votes in a comment, using the format: x-y-z, where x stands for the total of approving, y of abstaining, and z of disapproving votes cast. @@ -137,6 +139,9 @@ choose to abstain when they have participated in the discussion, have some objec proposal, but do not wish to stop the proposal from moving forward, nor indicate their full support. +If a quorum was not reached by the end of the voting period, the PDEP is not accepted. Its status +will change to rejected. + #### Accepted PDEP Once a PDEP is accepted, any contributions can be made toward the implementation of the PDEP, @@ -166,6 +171,11 @@ discussion. A PDEP can be rejected for different reasons, for example good ideas that are not backward-compatible, and the breaking changes are not considered worth implementing. +The author(s) may choose to resubmit a rejected PDEP. We expect authors to use their judgement in +that case, as to whether they believe more discussion, or an amended proposal has the potential to +lead to a diffrent result. A new PDEP is then created, which includes a link to the previously +rejected PDEP. + #### Invalid PDEP For submitted PDEPs that do not contain proper documentation, are out of scope, or From a59e75935a179c23d200105299465b50a6be646b Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Fri, 16 Jun 2023 07:31:57 +0200 Subject: [PATCH 09/17] updated based on feedback --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 634b4f51c1ae2..474c3cd2becfa 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -99,8 +99,8 @@ E-mail: - Once a PDEP is ready for discussion. - After 30 discussion days, with 30 days remaining for discussion. - After 45 discussion days, with 15 days remaining for discussion. -- In case 15 days passed without any new comments, the authors may close the discussion period preemptively, - and open the voting period. +- In case 15 days passed without any new comments, the authors may close the discussion period + preemptively, and open the voting period. - Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days remaining for voting. - After 10 voting days, with 5 days remaining for voting. @@ -119,8 +119,10 @@ A disapprove vote requires prior participation in the PDEP discussion issue. Comments made on the public VOTE issue by non-voting members will be deleted. -Once the voting period ends, any voter may tally the votes in a comment, using the format: x-y-z, -where x stands for the total of approving, y of abstaining, and z of disapproving votes cast. +Once the voting period ends, any voter may tally the votes in a comment, using the format: w-x-y-z, +where w stands for the total of approving, x of abstaining, z of disapproving votes cast, and z +of number of voting members who did not respond to the VOTE issue. The tally of the votes will state +if a quorum has been reached or not. #### Quorum and Majority From 48b33003d602312929ab47c77525a39ed148a1dc Mon Sep 17 00:00:00 2001 From: noatamir <6564007+noatamir@users.noreply.github.com> Date: Fri, 16 Jun 2023 07:37:01 +0200 Subject: [PATCH 10/17] typo --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 474c3cd2becfa..a0b7b15571de5 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -175,7 +175,7 @@ implementing. The author(s) may choose to resubmit a rejected PDEP. We expect authors to use their judgement in that case, as to whether they believe more discussion, or an amended proposal has the potential to -lead to a diffrent result. A new PDEP is then created, which includes a link to the previously +lead to a different result. A new PDEP is then created, which includes a link to the previously rejected PDEP. #### Invalid PDEP From 32fce5e522158e10a7a040cc9f02ead16745c134 Mon Sep 17 00:00:00 2001 From: Noa Tamir <6564007+noatamir@users.noreply.github.com> Date: Mon, 10 Jul 2023 00:27:57 +0200 Subject: [PATCH 11/17] Updated following Simon's feedback Co-authored-by: Simon Hawkins --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index a0b7b15571de5..e680dfb124d5c 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -58,7 +58,7 @@ advisor on the PDEP when it is submitted to the PDEP repository. #### Rationale -Our workflow was created to support and enable a consensus seeking process, and to provide clarify, +Our workflow was created to support and enable a consensus seeking process, and to provide clarity, for current and future authors, as well as voting members. It is not a strict policy, and we discourage any interpretation which seeks to take advantage of it in a way that could "force" or "sneak" decisions in one way or another. We expect and encourage transparency, active discussion, @@ -99,7 +99,7 @@ E-mail: - Once a PDEP is ready for discussion. - After 30 discussion days, with 30 days remaining for discussion. - After 45 discussion days, with 15 days remaining for discussion. -- In case 15 days passed without any new comments, the authors may close the discussion period +- In case 15 days passed without any new unaddressed comments, the authors may close the discussion period preemptively, and open the voting period. - Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days remaining for voting. @@ -108,7 +108,7 @@ E-mail: #### Casting Votes As the voting period starts, a VOTE issue is created which links to the PDEP discussion pull request. -Each voting member, including the author(s) may cast a vote by adding one of the following comments: +Each voting member, including author(s) with voting rights, may cast a vote by adding one of the following comments: - +1: approve. - 0: abstain. From 0530d29b0862429f7e805bd62855300a0be57538 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 23 Feb 2024 16:53:46 +0100 Subject: [PATCH 12/17] Apply suggestions from code review Co-authored-by: Irv Lustig --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index e680dfb124d5c..17fc59582c492 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -120,7 +120,7 @@ A disapprove vote requires prior participation in the PDEP discussion issue. Comments made on the public VOTE issue by non-voting members will be deleted. Once the voting period ends, any voter may tally the votes in a comment, using the format: w-x-y-z, -where w stands for the total of approving, x of abstaining, z of disapproving votes cast, and z +where w stands for the total of approving, x of abstaining, y of disapproving votes cast, and z of number of voting members who did not respond to the VOTE issue. The tally of the votes will state if a quorum has been reached or not. From 809ae6f2078e206d736b95282fa452f9c073d530 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 23 Feb 2024 17:08:39 +0100 Subject: [PATCH 13/17] change majority to 70% --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 17fc59582c492..9228bce61083c 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -133,7 +133,7 @@ values: - 11 voting members. - 50% of voting members. -Given a quorum, a majority of 75% of the non-abstaining votes is required as well, i.e. 75% of +Given a quorum, a majority of 70% of the non-abstaining votes is required as well, i.e. 75% of the approving and disapproving votes must be in favor. Thus, abstaining votes count towards a quorum, but not towards a majority. A voting member might From d5a1869c17ff7354839d2207b05da2e5f4bbcb7b Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 23 Feb 2024 17:19:11 +0100 Subject: [PATCH 14/17] some small formatting changes --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 9228bce61083c..41f9ec639e4c2 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -94,8 +94,9 @@ time to make changes based on suggestions and considerations offered by the part Similarly, the following voting period will remain open for 15 days. To enable and encourage discussions on PDEPs, we follow a notification schedule. At each of the -following steps, the pandas team, and the pandas dev mailing list are notified via GitHub and +following steps, the pandas team, and the pandas-dev mailing list are notified via GitHub and E-mail: + - Once a PDEP is ready for discussion. - After 30 discussion days, with 30 days remaining for discussion. - After 45 discussion days, with 15 days remaining for discussion. @@ -115,6 +116,7 @@ Each voting member, including author(s) with voting rights, may cast a vote by a - Reason: A one sentence reason is required. - -1: disapprove - Reason: A one sentence reason is required. + A disapprove vote requires prior participation in the PDEP discussion issue. Comments made on the public VOTE issue by non-voting members will be deleted. @@ -133,7 +135,7 @@ values: - 11 voting members. - 50% of voting members. -Given a quorum, a majority of 70% of the non-abstaining votes is required as well, i.e. 75% of +Given a quorum, a majority of 70% of the non-abstaining votes is required as well, i.e. 70% of the approving and disapproving votes must be in favor. Thus, abstaining votes count towards a quorum, but not towards a majority. A voting member might @@ -253,7 +255,7 @@ hope can help clarify our meaning here: - 3 August 2022: Initial version ([GH-47938][47938]) - 15 February 2023: Version 2 ([GH-51417][51417]) clarifies the scope of PDEPs and adds examples -- 09 June 2023: Version 3([GH-53576][53576]) defines a structured decision making process for PDEPs +- 09 June 2023: Version 3 ([GH-53576][53576]) defines a structured decision making process for PDEPs [7217]: https://github.com/pandas-dev/pandas/pull/7217 [8074]: https://github.com/pandas-dev/pandas/issues/8074 From 88a7db99fef424bc6614d4ba536a6b3587ff7140 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 23 Feb 2024 17:38:07 +0100 Subject: [PATCH 15/17] reword case of early vote --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 41f9ec639e4c2..643897b796651 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -98,14 +98,15 @@ following steps, the pandas team, and the pandas-dev mailing list are notified v E-mail: - Once a PDEP is ready for discussion. -- After 30 discussion days, with 30 days remaining for discussion. -- After 45 discussion days, with 15 days remaining for discussion. -- In case 15 days passed without any new unaddressed comments, the authors may close the discussion period - preemptively, and open the voting period. +- After 30 to 45 discussion days, with 15 days remaining for discussion. - Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days remaining for voting. - After 10 voting days, with 5 days remaining for voting. +After 30 discussion days, in case 15 days passed without any new unaddressed comments, +the authors may close the discussion period preemptively, by sending an early reminder +of 15 days remaining until the voting period starts. + #### Casting Votes As the voting period starts, a VOTE issue is created which links to the PDEP discussion pull request. From 97ba480ff7226b46c9faf393f8fa9128b2e17cf0 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 5 Mar 2024 10:42:59 +0100 Subject: [PATCH 16/17] use Irv's suggestion to reword notifications --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index 643897b796651..a5a0a86fc2da3 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -98,7 +98,10 @@ following steps, the pandas team, and the pandas-dev mailing list are notified v E-mail: - Once a PDEP is ready for discussion. -- After 30 to 45 discussion days, with 15 days remaining for discussion. +- After 30 days, with a note that there is at most 30 days remaining for discussion, + and that a vote will be called for if no discussion occurs in the next 15 days. +- After 45 days, with a note that there is at most 15 days remaining for discussion, + and that a vote will be called for in 15 days. - Once the voting period starts, after 60 days or in case of an earlier vote, with 15 days remaining for voting. - After 10 voting days, with 5 days remaining for voting. From e18db08c56208d26866ef25699d4c78d19d4feb3 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 6 Mar 2024 22:31:09 +0100 Subject: [PATCH 17/17] add withdrawn status --- web/pandas/pdeps/0001-purpose-and-guidelines.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web/pandas/pdeps/0001-purpose-and-guidelines.md b/web/pandas/pdeps/0001-purpose-and-guidelines.md index a5a0a86fc2da3..49a3bc4c871cd 100644 --- a/web/pandas/pdeps/0001-purpose-and-guidelines.md +++ b/web/pandas/pdeps/0001-purpose-and-guidelines.md @@ -73,6 +73,7 @@ The possible states of a PDEP are: - Accepted - Implemented - Rejected +- Withdrawn Next is described the workflow that PDEPs can follow. @@ -179,9 +180,15 @@ discussion. A PDEP can be rejected for different reasons, for example good ideas that are not backward-compatible, and the breaking changes are not considered worth implementing. -The author(s) may choose to resubmit a rejected PDEP. We expect authors to use their judgement in -that case, as to whether they believe more discussion, or an amended proposal has the potential to -lead to a different result. A new PDEP is then created, which includes a link to the previously +The PDEP author(s) can also decide to withdraw the PDEP before a final decision +is made (`Status: Withdrawn`), when the PDEP authors themselves have decided +that the PDEP is actually a bad idea, or have accepted that it is not broadly +supported or a competing proposal is a better alternative. + +The author(s) may choose to resubmit a rejected or withdrawn PDEP. We expect +authors to use their judgement in that case, as to whether they believe more +discussion, or an amended proposal has the potential to lead to a different +result. A new PDEP is then created, which includes a link to the previously rejected PDEP. #### Invalid PDEP