Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 60 additions & 25 deletions build_tools/generate_authors_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,32 +40,33 @@ def get(url):

def get_contributors():
"""Get the list of contributor profiles. Require admin rights."""
# get core devs and triage team
# get core devs and contributor experience team
core_devs = []
triage_team = []
contributor_experience_team = []
comm_team = []
core_devs_id = 11523
triage_team_id = 3593183
comm_team_id = 5368696
for team_id, lst in zip(
(core_devs_id, triage_team_id, comm_team_id),
(core_devs, triage_team, comm_team),
core_devs_slug = "core-devs"
contributor_experience_team_slug = "contributor-experience-team"
comm_team_slug = "communication-team"

entry_point = "https://api.github.com/orgs/scikit-learn/"

for team_slug, lst in zip(
(core_devs_slug, contributor_experience_team_slug, comm_team_slug),
(core_devs, contributor_experience_team, comm_team),
):
for page in [1, 2]: # 30 per page
reply = get(f"https://api.github.com/teams/{team_id}/members?page={page}")
reply = get(f"{entry_point}teams/{team_slug}/members?page={page}")
lst.extend(reply.json())

# get members of scikit-learn on GitHub
members = []
for page in [1, 2]: # 30 per page
reply = get(
"https://api.github.com/orgs/scikit-learn/members?page=%d" % (page,)
)
for page in [1, 2, 3]: # 30 per page
reply = get(f"{entry_point}members?page={page}")
members.extend(reply.json())

# keep only the logins
core_devs = set(c["login"] for c in core_devs)
triage_team = set(c["login"] for c in triage_team)
contributor_experience_team = set(c["login"] for c in contributor_experience_team)
comm_team = set(c["login"] for c in comm_team)
members = set(c["login"] for c in members)

Expand All @@ -75,23 +76,40 @@ def get_contributors():
members |= {"Angel Soler Gollonet"}
# remove CI bots
members -= {"sklearn-ci", "sklearn-lgtm", "sklearn-wheels"}
triage_team -= core_devs # remove ogrisel from triage_team
contributor_experience_team -= (
core_devs # remove ogrisel from contributor_experience_team
)

emeritus = members - core_devs - contributor_experience_team - comm_team

emeritus = members - core_devs - triage_team
# hard coded
emeritus_comm_team = {"reshamas"}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is hard to define programatically, I guess we have to hard code it

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we somehow use doc/communication_team_emeritus.rst?

Copy link
Member Author

@jeremiedbb jeremiedbb Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hehe this script is what generates communication_team_emeritus.rst :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😊


comm_team -= {"reshamas"} # in the comm team but not on the web page

# get profiles from GitHub
core_devs = [get_profile(login) for login in core_devs]
emeritus = [get_profile(login) for login in emeritus]
triage_team = [get_profile(login) for login in triage_team]
contributor_experience_team = [
get_profile(login) for login in contributor_experience_team
]
comm_team = [get_profile(login) for login in comm_team]
emeritus_comm_team = [get_profile(login) for login in emeritus_comm_team]

# sort by last name
core_devs = sorted(core_devs, key=key)
emeritus = sorted(emeritus, key=key)
triage_team = sorted(triage_team, key=key)
contributor_experience_team = sorted(contributor_experience_team, key=key)
comm_team = sorted(comm_team, key=key)
emeritus_comm_team = sorted(emeritus_comm_team, key=key)

return core_devs, emeritus, triage_team, comm_team
return (
core_devs,
emeritus,
contributor_experience_team,
comm_team,
emeritus_comm_team,
)


def get_profile(login):
Expand Down Expand Up @@ -155,16 +173,33 @@ def generate_list(contributors):

if __name__ == "__main__":

core_devs, emeritus, triage_team, comm_team = get_contributors()
(
core_devs,
emeritus,
contributor_experience_team,
comm_team,
emeritus_comm_team,
) = get_contributors()

with open(REPO_FOLDER / "doc" / "authors.rst", "w+") as rst_file:
with open(REPO_FOLDER / "doc" / "authors.rst", "w+", encoding="utf-8") as rst_file:
rst_file.write(generate_table(core_devs))

with open(REPO_FOLDER / "doc" / "authors_emeritus.rst", "w+") as rst_file:
with open(
REPO_FOLDER / "doc" / "authors_emeritus.rst", "w+", encoding="utf-8"
) as rst_file:
rst_file.write(generate_list(emeritus))

with open(REPO_FOLDER / "doc" / "triage_team.rst", "w+") as rst_file:
rst_file.write(generate_table(triage_team))
with open(
REPO_FOLDER / "doc" / "contributor_experience_team.rst", "w+", encoding="utf-8"
) as rst_file:
rst_file.write(generate_table(contributor_experience_team))

with open(REPO_FOLDER / "doc" / "communication_team.rst", "w+") as rst_file:
with open(
REPO_FOLDER / "doc" / "communication_team.rst", "w+", encoding="utf-8"
) as rst_file:
rst_file.write(generate_table(comm_team))

with open(
REPO_FOLDER / "doc" / "communication_team_emeritus.rst", "w+", encoding="utf-8"
) as rst_file:
rst_file.write(generate_list(emeritus_comm_team))
6 changes: 3 additions & 3 deletions doc/about.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ in the FAQ.

:ref:`How you can contribute to the project <contributing>`

Triage Team
-----------
Contributor Experience Team
---------------------------

The following people are active contributors who also help with
:ref:`triaging issues <bug_triaging>`, PRs, and general
maintenance:

.. include:: triage_team.rst
.. include:: contributor_experience_team.rst

Communication Team
------------------
Expand Down
2 changes: 1 addition & 1 deletion doc/authors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@
<a href='https://github.com/rth'><img src='https://avatars.githubusercontent.com/u/630936?v=4' class='avatar' /></a> <br />
<p>Roman Yurchak</p>
</div>
</div>
</div>
2 changes: 1 addition & 1 deletion doc/authors_emeritus.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@
- Du Shiqiao
- Jake Vanderplas
- David Warde-Farley
- Ron Weiss
- Ron Weiss
4 changes: 2 additions & 2 deletions doc/communication_team.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
</div>
<div>
<a href='https://github.com/francoisgoupil'><img src='https://avatars.githubusercontent.com/u/98105626?v=4' class='avatar' /></a> <br />
<p>Francois Goupil</p>
</div>
<p>francoisgoupil</p>
</div>
</div>
2 changes: 1 addition & 1 deletion doc/communication_team_emeritus.rst
Original file line number Diff line number Diff line change
@@ -1 +1 @@
- Reshama Shaikh
- Reshama Shaikh
4 changes: 2 additions & 2 deletions doc/triage_team.rst → doc/contributor_experience_team.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</div>
<div>
<a href='https://github.com/jmloyola'><img src='https://avatars.githubusercontent.com/u/2133361?v=4' class='avatar' /></a> <br />
<p>Juan Martín Loyola</p>
<p>Juan Martin Loyola</p>
</div>
<div>
<a href='https://github.com/smarie'><img src='https://avatars.githubusercontent.com/u/3236794?v=4' class='avatar' /></a> <br />
Expand All @@ -37,4 +37,4 @@
<a href='https://github.com/albertcthomas'><img src='https://avatars.githubusercontent.com/u/15966638?v=4' class='avatar' /></a> <br />
<p>Albert Thomas</p>
</div>
</div>
</div>
6 changes: 3 additions & 3 deletions doc/developers/bug_triaging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ Reviewing code is also encouraged. Contributors and users are welcome to
participate to the review process following our :ref:`review guidelines
<code_review>`.

Triaging operations for members of the core and triage teams
------------------------------------------------------------
Triaging operations for members of the core and contributor experience teams
----------------------------------------------------------------------------

In addition to the above, members of the core team and the triage team
In addition to the above, members of the core team and the contributor experience team
can do the following important tasks:

- Update :ref:`labels for issues and PRs <issue_tracker_tags>`: see the list of
Expand Down
18 changes: 9 additions & 9 deletions doc/governance.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,25 @@ Contributors are community members who contribute in concrete ways to the
project. Anyone can become a contributor, and contributions can take many forms
– not only code – as detailed in the :ref:`contributors guide <contributing>`.

Triage team
------------
Contributor Experience Team
---------------------------

The triage team is composed of community members who have permission on
The contributor experience team is composed of community members who have permission on
github to label and close issues. :ref:`Their work <bug_triaging>` is
crucial to improve the communication in the project and limit the crowding
of the issue tracker.

Similarly to what has been decided in the `python project
<https://devguide.python.org/triaging/#becoming-a-member-of-the-python-triage-team>`_,
any contributor may become a member of the scikit-learn triage team, after
showing some continuity in participating to scikit-learn
any contributor may become a member of the scikit-learn contributor experience team,
after showing some continuity in participating to scikit-learn
development (with pull requests and reviews).
Any core developer or member of the triage team is welcome to propose a
scikit-learn contributor to join the triage team. Other core developers
Any core developer or member of the contributor experience team is welcome to propose a
scikit-learn contributor to join the contributor experience team. Other core developers
are then consulted: while it is expected that most acceptances will be
unanimous, a two-thirds majority is enough.
Every new triager will be announced in the mailing list.
Triagers are welcome to participate in `monthly core developer meetings
Every new member of the contributor experience team will be announced in the mailing
list. Members of the team are welcome to participate in `monthly core developer meetings
<https://github.com/scikit-learn/administrative/tree/master/meeting_notes>`_.

.. _communication_team:
Expand Down