Closed jjerphan closed 1 year ago
Note that our governance is not very clear on whether we need a SLEP for changes to the governance itself, it only says the same decision making process is required.
For changes to the governance doc in the past, we haven't done a SLEP, we have only called a vote on the proposed changes.
I understand the Decision Making Process as indicating coming up with a SLEP and a vote on the internal mailing list for this SLEP prior to Governance changes:
Scikit-learn uses a “consensus seeking” process for making decisions. The group tries to find a resolution that has no open objections among core developers. At any point during the discussion, any core-developer can call for a vote, which will conclude one month from the call for the vote. Any vote must be backed by a SLEP. If no option can gather two thirds of the votes cast, the decision is escalated to the TC, which in turn will use consensus seeking with the fallback option of a simple majority vote if no consensus can be found within a month. This is what we hereafter may refer to as “the decision making process”.
Decisions (in addition to adding core developers and TC membership as above) are made according to the following rules:
- […]
- Changes to the governance model use the same decision process outlined above.
some notes:
adding some references: a) Amanda Casari on ACROSS and Measuring Contributions in OSS https://podcast.sustainoss.org/111 43-minutes audio
b) NumPy Newcomer's Hour: an Experiment on Community Building: Melissa Weber Mendonça https://youtu.be/c0XZQbu0xnw 10-minute video
a) Amanda Casari on ACROSS and Measuring Contributions in OSS
I think she's also given a talk about contribution metrics (probably similar content to the podcast): https://www.youtube.com/watch?v=yrBqXfGzx-U
Something to consider, as I sit in on a session on language translation at this meeting. And our recent attention and evaluation to the various types of (in/visible) contributions to the project.
To consider that Mariangela Petrizzo's initiative of translation of the scikit-learn docs is impactful. And to consider that type of contribution to the project...... that we would consider nominating her to the team. https://github.com/scikit-learn/scikit-learn/pull/20763
Reshama
On Tue, Sep 20, 2022 at 11:06 PM Lucy Liu @.***> wrote:
a) Amanda Casari on ACROSS and Measuring Contributions in OSS
I think she's also given a talk about contribution metrics (probably similar content to the podcast): https://www.youtube.com/watch?v=yrBqXfGzx-U
— Reply to this email directly, view it on GitHub https://github.com/scikit-learn/enhancement_proposals/pull/74#issuecomment-1253148984, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATEDYBKTLZ3IW4N6BJXEQDV7J3TVANCNFSM6AAAAAAQLOMBV4 . You are receiving this because you commented.Message ID: @.***>
@reshamas: please, let me know if the resources you suggested have been properly added and cited in 8ca1922d2acf3b361dbcbcb294c0a6a9fb253282.
As for translations of the documentation, I think we also need to recognize those contributions. Yet, I think this is a currently a bit orthogonal to the goal of this PR and I think recognising people contributions might better be done after we settle on the Governance update. What do you think?
@lucyleeow: thank you for suggesting this resource. The content covered is a bit different: it emphasis defining the community goals then coming up setting metrics accordingly. As this SLEP aims at recognising all contributions and team and mostly is conceptual, I think it might be preferable to include and use this resource at a latter stage, e.g. for the implementation of this SLEP. What do you think?
In both cases, I am glad people give their opinion and discuss the community structure and dynamic. This show that we probably have not been having room, nor time, nor place set to discuss those topics.
@lucyleeow: thank you for suggesting this resource. The content covered is a bit different: it emphasis defining the community goals then coming up setting metrics accordingly. As this SLEP aims at recognising all contributions and team and mostly is conceptual, I think it might be preferable to include and use this resource at a latter stage, e.g. for the implementation of this SLEP. What do you think?
No problem, that makes sense - sorry it has been a while since I watched it and forgot!
No problem, that makes sense - sorry it has been a while since I watched it and forgot!
It's fine. With the lack of place for people to spontaneously discuss, I personally would rather have spontaneous suggestions and interjections in discussion on GitHub than people keep their views and ideas for themselves.
The only place scikit-learn has for people to discuss is the monthly "Core-Devs' meeting". Other projects like SciPy and NumPy have "Community Meeting".
I think this situation motives this SLEPs, as in the case we also probably need to change this semantic and come up with another organisation (e.g. have a general "Community Meeting" and than more scoped/focused "Teams' meetings").
Other projects like SciPy and NumPy have "Community Meeting".
I think the community meetings are new and the result of work funded by: https://chanzuckerberg.com/eoss/proposals/advancing-an-inclusive-culture-in-the-scientific-python-ecosystem/ The work has included many things from improving contributing documentation, creating policies around inactive PRs, monitoring first time contributor PRs in numpy, standardising issue templates etc. I think there is collaboration with Scientific Python in the form of guides for maintainers, in order to share from their experience. This seems to be a WIP but they do have a guide on meetings. The work is being done by @noatamir @melissawm and @InessaPawson (sorry for noise, wanted to highlight your great work and you may be interested in this!)
Thinking about the "Recurring Contributor", and I realized there are alternative models to what we're thinking here as well.
I also do agree with @thomasjpfan that a few of the people whom we would put in the recurring contributing team would be a good fit for the contributor experience team.
But as an alternative model, we can think of something more along the lines of a "scikit-learn fellows" which can be a team of people who keep a presence around the repository in different ways. We can think of people also nominating themselves or applying to be a member of that team, and instead of accept / reject, we can think of a path which they can take to be in that team. For instance, if we think they'd need more contributions, we can tell them what they can try to achieve first, and give them a few tasks / PRs / issues to handle. And as we talked in the last meeting, we can also require them to keep a presence of some sort to stay in that team. And if we clearly define what it means to be in that team, then it'd be a meaningful thing to say in someone's CV that I've been or I am in the scikit-learn fellows team. WDYT?
Thank you all for participating. Here is a summary of the last discussions and changes for this SLEP.
No-one discussed the following points:
Hence, if no-one disagrees, those points can be considered as consensual.
:warning: Please, do object if you think those points are not consensual or if you further want to discuss them.
To meet the original goals and needs of the organisation stated in the SLEP, I am proposing:
:warning: Please do :+1:-react to this message if you agree with this proposal of actions.
to restrict the scope of this SLEP by displacing the discussions about the Experts Team and Recurring Contributors Team to another subsequent SLEP (this would mean removing their associated proposals from this SLEP).
What about defining in this SLEP the process to discuss and add new roles, so a new SLEP will not be necessary in the future: new roles and teams will be subject to a vote and the governance updated accordingly.
Regarding the experts, I am +1 on codifying the idea that non-core-developers may contribute to the two approvals requirement. Of course, it still needs to be clarified what the requirements are for a non-core-dev approval to count towards this (i.e. how does one formally become an "expert"?).
If expertise is understood on a person-by-person basis, I think the complexity is not too bad. We should consider formally tracking which experts are available to ping for each code section (e.g. by module, estimator, or file). I'm imagining something like the current available reviewers page so that contributors not familiar with the experts may know who to ping.
Overall, I think:
The vote for SLEP019 has been cast on the internal mailing list on Friday, 14 October 2022 around 16:00:00 UTC+0
To accept this SLEP, please do approve this PR.
Note that it's handy to merge the PR introducing the SLEP so that it's rendered on the website and people can read there, and have a separate PR changing the status to Accepted where the actual vote happens. This is also how we've done it in the past.
Thanks for indicating this, @adrinjalali. I was not entirely sure on how to proceed.
In the end, I chose to have it in a single PR as the SLEP is rendered online and as its prose still need to be reworded (as proposed by https://github.com/scikit-learn/enhancement_proposals/pull/74#discussion_r995974450 for instance).
@jjerphan I can't find the text on Recurring Contributors. Can you link to it here?
Other projects like SciPy and NumPy have "Community Meeting".
I think the community meetings are new and the result of work funded by: https://chanzuckerberg.com/eoss/proposals/advancing-an-inclusive-culture-in-the-scientific-python-ecosystem/
As an FYI: PyMC has Community Meetings as well (though I do not believe they have dedicated funding for this.) They like to do an annual conference and so created a Community Team to work on this. This team also covers sprints, events, answering questions on their Discourse, etc.
Two quick comments, if I may:
Two quick comments, if I may:
- I don't like the "Core Triaging" wording. Just "Triaging" is enough to specify the role, no hierarchy is introduced between the triagers here, the SLEP aims only to guarantee that "contributors involved on GitHub / in triage and that aren't/don't want to be involved in maintenance have the proper permissions." (see comment)
Based on this comment, I have proposed to have this renaming in https://github.com/scikit-learn/enhancement_proposals/pull/74#discussion_r997791926.
- without the introduction of a "Recurrent Contributors" (or whatever name you want to call it) group the SLEP does not solve the issue of smoother onboarding, which is a big issue in scikit-learn. In some months, with the acceptance of this SLEP there will be more roles in the project without people to fill them.
That's right, but I think as far as we have not defined which roles scikit-learn we need, it might be rather hard to introduce "Recurrent Contributors". 😕
If everyone agrees on having changes to the Governance be made without SLEPs (which you propose and which was integrated in the this SLEP), I think we can define what we referred to as "Recurrent Contributors" then.
Do you think this is appropriate as an approach? Or do you think we must define further roles' or teams' in this SLEP?
@jjerphan I can't find the text on Recurring Contributors. Can you link to it here?
Most of the proposals for defining Recurring Contributors (as well as Contributions and Core Contributors) can be found on this DOC PR: https://github.com/scikit-learn/scikit-learn/pull/24444 (also linked in this PR description).
Based on this comment, I have proposed to have this renaming in https://github.com/scikit-learn/enhancement_proposals/pull/74#discussion_r997791926.
Thanks
In some months, with the acceptance of this SLEP there will be more roles in the project without people to fill them.
That's right, but I think as far as we have not defined which roles scikit-learn we need, it might be rather hard to introduce "Recurrent Contributors". 😕
If everyone agrees on having changes to the Governance be made without SLEPs (which you propose and which was integrated in the this SLEP), I think we can define what we referred to as "Recurrent Contributors" then.
Do you think this is appropriate as an approach? Or do you think we must define further roles' or teams' in this SLEP?
I guess you noticed already where my heart stands... 😁 I only partially agree with this approach, but it seems the only way to move forward... and also my vote doesn't count anyway... 😜 As long as friction can be reduced in the future, no need to add more details here.
👋 I was tagged earlier and have been following the discussion. I had another suggestion for your consideration. CC @adrinjalali
How about renaming the Technical Committee (TC) to Steering Committee or Steering Council (SC)? My thinking is that they are sometimes called on to make decisions which aren't technical in nature, but related to governance or other project matters, e.g., if the vote on this SLEP wouldn't achieve consensus.
In addition, considering the changes you are proposing to the core members, would you agree to make it possible to nominate any Core Contributor to the SC as well? This would untangle it from technical requirements, or commit rights.
I integrated @noatamir's proposal (i.e. https://github.com/scikit-learn/enhancement_proposals/pull/74#issuecomment-1295078486) in 0ab025476bb78970ec9830b592ae9356c8017989.
@noatamir: please let me know if what I worded correctly phrases what you proposed or if it needs to be adapted.
Thanks @jjerphan! I wonder if the last part is redundant?
The text in Technical Committee doesn't actually specify that the committee will only make technical decisions. I believe that renaming TC
->SC
and core developers
-> core contributors
is sufficient in that paragraph. WDYT
You are right. The redundancy has been removed by https://github.com/scikit-learn/enhancement_proposals/commit/249b9f469d3ac21000b410769caaa5220d28e163.
There are two possible options:
1. A smaller SLEP that focuses on "Simplify subsequent changes to the Governance" 2. This document as is, which includes the Triage Team, renaming of the technical committee, extending voting rights and simplify governance changes.
I would like to suggest a third path. The point is "Recognizing contributions beyond code" and the SLEP should be actionable in some way. The SLEP may define
Could this be an option?
I agree with what @cmarmo is proposing but I see no difference nor extra proposals with the 2. item @thomasjpfan has mentioned i.e. the current SLEP's scope with an explicit (long) exact wording; is this the case, @cmarmo?
We need to have actionable while not loosing everyone's time and energy: to me 1. is better for long term while 2. is better for what we aimed at initially but complex to be agreed upon in the current state.
Proposal for action: Assuming people who want to participate in those decisions are reactive and proactive enough in the phrasing of terms[^1], we can get 1. done so as to ease the implementation of 2. using independent, atomic and small modifications for each item which would be discussed and agreed upon in individual threads' (e.g. PRs).
What do you think?
Please do :+1:-react to this message if you want to proceed with this proposal for action. Please do :-1:-react to this message if you do not want to proceed with this proposal for action.
Please do suggest an alternative pathway if you have one.
[^1]: This is of personal preference.
@jjerphan I can't really understand your comment, but I'm happy with what @cmarmo suggested.
I agree with what @cmarmo is proposing but I see no difference nor extra proposals with the 2. item @thomasjpfan has mentioned i.e. the current SLEP's scope with an explicit (long) exact wording; is this the case, @cmarmo?
Nope. I'm removing all the definitions of new roles from the SLEP. Accepting the definition of new roles outside SLEP proposals makes unnecessary defining them here. Enlarging the scope of the Technical Committee, which becomes a Steering Committee, opens the decision process to new roles already.
I'm happy with @cmarmo suggestion as well.
Dear all, two of the three negative votes seem to overall agree with my suggestion. Before starting to work on the text, may I ask @lorentzenchr to check this third option and let me know if this is acceptable? Also, as @GaelVaroquaux is listed as author of this SLEP, I would be happy to have his opinion about this suggestion. Thanks!
The vote period has ended about 2 hours ago.
More than ⅔ of the votes are negative votes so the SLEP is not accepted, at least in its current status.
@cmarmo the 3rd option sounds good. IIUC, it will make the text smaller and more precise.
But again: The induced discussion alone was worth this vote.
What do people think of merging this PR as a "Draft" and iterating to rephrase it in another PR?
What do people think of merging this PR as a "Draft" and iterating to rephrase it in another PR?
We usually merge before the vote anyway ;)
I do not merge PRs I authored, hence I am looking forward to someone that would merge this first draft. :pray:
You need to change the status to draft
in this PR, then I'm happy to merge @jjerphan :)
@jjerphan could you please add it also to index.rst
under "Under Review" maybe?
https://github.com/scikit-learn/enhancement_proposals/pull/81 opened by @cmarmo follows-up with this first draft.
Description
As discussed on the mailing list, this SLEP proposes updating the Governance to broaden the notion of contribution in scikit-learn.
The HTML output of the SLEP is rendered here: https://scikit-learn-enhancement-proposals--74.org.readthedocs.build/en/74/slep019/proposal.html
Associated implementation PRs: https://github.com/scikit-learn/scikit-learn/pull/24444
🗳️ The vote on this SLEP ended: the SLEP is not accepted as is.
The vote for SLEP019 has been cast on the internal mailing list on Friday, 14 October 2022 around 16:00:00 UTC+0
As specified in SLEP000: