Cleaning up the historical list of core developers

To simplify the developer log and to have an accurate list of core developers for PEP 13, I have been trying to compile a clean, historical list of core developers.
Unfortunately it turns out the developer log is a bit messy and incomplete (hence why I would say that I have *a* list, but not necessary *the* list). :) For instance, I know for a fact people were granted commit rights at sprints but not recorded in the developer log (I found at least one instance where I personally forgot). I suspect the same happened for GSoC. We also have people listed in the developer log who were never meant to be core developers but were given access due to the shared nature of hg.python.org (e.g. the Jython devs getting access due to hg.python.org hosting the Jython source code).
All of this is to say that the developer log is incomplete, and that means relying on the git history to help clean this up for figuring out who was purposefully made a core dev is impossible. And honestly this is understandable as it wasn't that important whether you were a core dev or not pre-PEP 13 other than security access (which we somewhat got for free when we changed version control systems and people fell off from commit access).
But now with PEP 13 the historical list of core developers is important as that defines whether you are able to qualify to vote. Or put another way, an analogy I have been using is the historical list of core developers defines "citizenship" in the Python core team and active status means you are "registered to vote".
So, how do we pull together a clean-enough list of historical core developers? Here is my idea of criteria of people to be on the list (based on the developer log and the git log):
- Was not a GSoC student (clarification to follow for those who fall into this category and are actually active)
- People who were not granted commit rights at a sprint just for being at a sprint (clarification to follow)
- Did not commit/author beyond a 3 month time span from first commit/authorship to last commit/authorship and their last commit was more than two years ago (helps cover people we don't have good records for in terms of sprints or GSoC who never got involved)
- Anyone who falls into the above cases and requests to be considered an official core developer (so people who fall into the above buckets can get pulled out based on the fact that they did become active)
Once we have reached consensus around the criteria I can generate a list of people who would be on the list and who wouldn't and we can handle requests to be re-classified. Then I will commit the lists to the voters repository and regenerate the developer log.
BTW I'm expecting this entire exercise to be a one-time thing and that all future core developers will be immediately added to the canonical list of core devs so it doesn't become inaccurate again.

Le 03/07/2019 à 21:45, Brett Cannon a écrit :
To simplify the developer log and to have an accurate list of core developers for PEP 13, I have been trying to compile a clean, historical list of core developers.
Thanks for tackling this!
So, how do we pull together a clean-enough list of historical core developers? Here is my idea of criteria of people to be on the list (based on the developer log and the git log):
- Was not a GSoC student (clarification to follow for those who fall into this category and are actually active)
I think you should replace "are actually active" with "have been actually active after their GSoC project" (without necessary being active *now*). Example with Alexandre, who's been the pickle maintainer during several years but is inactive now:
""" Alexandre Vassalotti was given SVN access on 21 May 2007 by MvL, for his Summer-of-Code project, mentored by Brett Cannon. """
- Did not commit/author beyond a 3 month time span from first commit/authorship to last commit/authorship and their last commit was more than two years ago (helps cover people we don't have good records for in terms of sprints or GSoC who never got involved)
Hmm... I may be a bit dense, but I don't understand that sentence :-S
Regards
Antoine.

Antoine Pitrou wrote:
Le 03/07/2019 à 21:45, Brett Cannon a écrit :
To simplify the developer log and to have an accurate list of core developers for PEP 13, I have been trying to compile a clean, historical list of core developers. Thanks for tackling this!
Welcome!
So, how do we pull together a clean-enough list of historical core developers? Here is my idea of criteria of people to be on the list (based on the developer log and the git log):
Was not a GSoC student (clarification to follow for those who fall into this category and are actually active)
I think you should replace "are actually active" with "have been actually active after their GSoC project" (without necessary being active now). Example with Alexandre, who's been the pickle maintainer during several years but is inactive now:
Yes, sorry, that's what I meant to suggest; poor wording on my part. But this is why the list will get published for people to help point out mistakes. :)
""" Alexandre Vassalotti was given SVN access on 21 May 2007 by MvL, for his Summer-of-Code project, mentored by Brett Cannon. """
Did not commit/author beyond a 3 month time span from first commit/authorship to last commit/authorship and their last commit was more than two years ago (helps cover people we don't have good records for in terms of sprints or GSoC who never got involved)
Hmm... I may be a bit dense, but I don't understand that sentence :-S
Let's say someone made all of their commits from 2015-07-04 to 2015-10-04 (and when I say "commits" I mean committing or authoring in git terms). That means they committed over a span of less than 3 months over the entire history of the cpython repo and that the last commit was more than 2 years ago. In that instance I'm suggesting we drop the person as chances are they were probably a GSoC student or a sprinter who tried things out but quickly walked away.
Or put another way, I'm arguing that if you spent less than 3 months making commits to cpython over two years ago you were probably not someone who got promoted to being a core developer through the normal promotion process.

Let's say someone made all of their commits from 2015-07-04 to 2015-10-04 (and when I say "commits" I mean committing or authoring in git terms). That means they committed over a span of less than 3 months over the entire history of the cpython repo and that the last commit was more than 2 years ago. In that instance I'm suggesting we drop the person as chances are they were probably a GSoC student or a sprinter who tried things out but quickly walked away.
Can the definition of "commit" include "merging other people's PRs", not just their own PR?
Thanks. ᐧ

Mariatta wrote:
Let's say someone made all of their commits from 2015-07-04 to 2015-10-04 (and when I say "commits" I mean committing or authoring in git terms). That means they committed over a span of less than 3 months over the entire history of the cpython repo and that the last commit was more than 2 years ago. In that instance I'm suggesting we drop the person as chances are they were probably a GSoC student or a sprinter who tried things out but quickly walked away. Can the definition of "commit" include "merging other people's PRs", not
just their own PR?
Yep, that's the "committing" part compared to "authoring" part. Git considers the person doing the merge a "committer" and the person who wrote the code an "author". I would consider either action as doing something (I have ignored the "author" part only when trying to build the initial list of core devs since only core devs and bots can be a committer).

On Thu, 4 Jul 2019 at 18:53, Brett Cannon <brett@python.org> wrote:
Did not commit/author beyond a 3 month time span from first commit/authorship to last commit/authorship and their last commit was more than two years ago (helps cover people we don't have good records for in terms of sprints or GSoC who never got involved)
Hmm... I may be a bit dense, but I don't understand that sentence :-S
Let's say someone made all of their commits from 2015-07-04 to 2015-10-04 (and when I say "commits" I mean committing or authoring in git terms). That means they committed over a span of less than 3 months over the entire history of the cpython repo and that the last commit was more than 2 years ago. In that instance I'm suggesting we drop the person as chances are they were probably a GSoC student or a sprinter who tried things out but quickly walked away.
Or put another way, I'm arguing that if you spent less than 3 months making commits to cpython over two years ago you were probably not someone who got promoted to being a core developer through the normal promotion process.
I may fall under this category, as I don't actually commit much to the cpython repo. But I would very much like to continue being considered as a "core developer". As I understand it, my saying so here should be sufficient for that to happen (I will say so again when the actual lists come out, if it turns out I'm right). If there's anything else that I'd need to do in order to stay on the list, can it be clarified what that is?
Paul

Paul Moore wrote:
Did not commit/author beyond a 3 month time span from first commit/authorship to last commit/authorship and their last commit was more than two years ago (helps cover people we don't have good records for in terms of sprints or GSoC who never got involved) Hmm... I may be a bit dense, but I don't understand that sentence :-S Let's say someone made all of their commits from 2015-07-04 to 2015-10-04 (and when I say "commits" I mean committing or authoring in git terms). That means they committed over a span of less than 3 months over the entire history of the cpython repo and that the last commit was more than 2 years ago. In that instance I'm suggesting we drop the person as chances are they were probably a GSoC student or a sprinter who tried things out but quickly walked away. Or put another way, I'm arguing that if you spent less than 3 months making commits to cpython over two years ago you were probably not someone who got promoted to being a core developer through the normal promotion process. I may fall under this category, as I don't actually commit much to the cpython repo. But I would very much like to continue being considered as a "core developer". As I understand it, my saying so here should be sufficient for that to happen (I will say so again when the actual
On Thu, 4 Jul 2019 at 18:53, Brett Cannon brett@python.org... wrote: lists come out, if it turns out I'm right). If there's anything else that I'd need to do in order to stay on the list, can it be clarified what that is?
You don't fall within that category. https://github.com/python/cpython/commits?author=pfmoore alone shows activity from you from 2015 to now which is more than 3 months (I didn't even need to fire up the REPL and use datetime to figure that out ;) . And that doesn't even cover PRs you may have authored but didn't merge yourself (e.g. automerge).

On Thu, Jul 4, 2019 at 5:00 AM Antoine Pitrou <antoine@python.org> wrote:
So, how do we pull together a clean-enough list of historical core developers? Here is my idea of criteria of people to be on the list (based on the developer log and the git log):
- Was not a GSoC student (clarification to follow for those who fall into this category and are actually active)
I think you should replace "are actually active" with "have been actually active after their GSoC project" (without necessary being active *now*). Example with Alexandre, who's been the pickle maintainer during several years but is inactive now:
Oh, I'm not inactive (at least not by the definition in PEP 13 <https://www.python.org/dev/peps/pep-0013/#id18>.) I was part of the initial active core team members who were grandfathered in from the "Python core" team on GitHub, and nobody asked me to declare myself as inactive (yet!) But outside of the PEP 13 definition, yeah, it is true that I am not actively contributing right now. (I still read the mailing lists and still keep an eye on the pickle module though.) I would be sad to see my membership invalidated because I became a committer through GSoC.
And BTW, PEP 13 defined the initial inactive members as anyone who has been a committer in the past. PEP 13 didn't qualify the membership on what process the person went through become a committer (e.g., by a vote, for GSoC, or for sprints). Brett, are you planning to propose an amendment to PEP 13 to change that?
-- Alexandre

Le 05/07/2019 à 09:58, Alexandre Vassalotti a écrit :
On Thu, Jul 4, 2019 at 5:00 AM Antoine Pitrou <antoine@python.org <mailto:antoine@python.org>> wrote:
> So, how do we pull together a clean-enough list of historical core > developers? Here is my idea of criteria of people to be on the list > (based on the developer log and the git log): > > * Was not a GSoC student (clarification to follow for those who fall > into this category and are actually active) I think you should replace "are actually active" with "have been actually active after their GSoC project" (without necessary being active *now*). Example with Alexandre, who's been the pickle maintainer during several years but is inactive now:
Oh, I'm not inactive (at least not by the definition in PEP 13 <https://www.python.org/dev/peps/pep-0013/#id18>.)
Personally, I meant "inactive" in the casual sense ;-)
Regards
Antoine.

Alexandre Vassalotti wrote:
On Thu, Jul 4, 2019 at 5:00 AM Antoine Pitrou antoine@python.org... wrote:
So, how do we pull together a clean-enough list of historical core developers? Here is my idea of criteria of people to be on the list (based on the developer log and the git log):
Was not a GSoC student (clarification to follow for those who fall into this category and are actually active)
I think you should replace "are actually active" with "have been actually active after their GSoC project" (without necessary being active now). Example with Alexandre, who's been the pickle maintainer during several years but is inactive now: Oh, I'm not inactive (at least not by the definition in PEP 13 https://www.python.org/dev/peps/pep-0013/#id18....)
To clarify and try to prevent this from coming up again: what I'm talking about has nothing to do with active/inactive at this moment or in terms of PEP 13 (I purposely didn't use those terms in my initial email).
I was part of the initial active core team members who were grandfathered in from the "Python core" team on GitHub, and nobody asked me to declare myself as inactive (yet!) But outside of the PEP 13 definition, yeah, it is true that I am not actively contributing right now. (I still read the mailing lists and still keep an eye on the pickle module though.) I would be sad to see my membership invalidated because I became a committer through GSoC.
You're fine. As I said, if you speak up you've probably done enough to warrant being considered more than a GSoC student. :)
This is for people who were GSoC students who only participated within the confines of their project and then walked away or committed twice, 12 months apart for whatever reason (and that is a real-life example, BTW). You stuck around and so I don't think anyone would argue you weren't a core dev. :)
Please don't get hung up on how you came into becoming a core dev as much as whether you continued participating at some point in Python's history. (Remember, this isn't about _now_, it's about _ever_.)
And BTW, PEP 13 defined the initial inactive members as anyone who has been a committer in the past. PEP 13 didn't qualify the membership on what process the person went through become a committer (e.g., by a vote, for GSoC, or for sprints). Brett, are you planning to propose an amendment to PEP 13 to change that?
The list of folks "who [have] been a committer in the past" isn't even known beyond the spelunking I've done so it's already a hand-wavy definition to begin with. We also talked about trying to clean this list up prior to voting on governance models but no one had the time or patience to try and discuss it, probably due to fears of being accused of possible disenfranchisement. But if people want PEP 13 to be updated to say "the folks on this list kept over _here_ are core team members and here is how we created that list" then I can do that when we are done with this discussion.
participants (5)
-
Alexandre Vassalotti
-
Antoine Pitrou
-
Brett Cannon
-
Mariatta
-
Paul Moore