|
| 1 | +.. _slep_019: |
| 2 | + |
| 3 | +#################################################################### |
| 4 | + SLEP019: Governance Update - Recognizing Contributions Beyond Code |
| 5 | +#################################################################### |
| 6 | + |
| 7 | +:Author: Julien Jerphanion < [email protected]>, Gaël Varoquaux < [email protected]> |
| 8 | +:Status: Draft |
| 9 | +:Type: Process |
| 10 | +:Created: 2022-09-12 |
| 11 | + |
| 12 | +********** |
| 13 | + Abstract |
| 14 | +********** |
| 15 | + |
| 16 | +This SLEP proposes updating the Governance to broaden the notion of |
| 17 | +contribution in scikit-learn and to ease subsequent related changes to |
| 18 | +the Governance without requiring SLEPs. |
| 19 | + |
| 20 | +************ |
| 21 | + Motivation |
| 22 | +************ |
| 23 | + |
| 24 | +Current state |
| 25 | +============= |
| 26 | + |
| 27 | +The formal decision making process of the scikit-learn project is |
| 28 | +limited to a subset of contributors, called Core Developers (also |
| 29 | +refered to as Maintainers). Their active and consistent contributions |
| 30 | +are recognized by them: |
| 31 | + |
| 32 | +- being part of scikit-learn organisation on GitHub |
| 33 | +- receiving “commit rights” to the repository |
| 34 | +- having their Pull Request reviews recognised as authoritative |
| 35 | +- having voting rights for the project direction (promoting a |
| 36 | + contributor to be a core-developer, approving a SLEP, etc.) |
| 37 | + |
| 38 | +Core Developers are primarily selected based on their code |
| 39 | +contributions. However, there are a lot of other ways to contribute to |
| 40 | +the project, and these efforts are currently not recognized [1]_. To |
| 41 | +quote Melissa Weber Mendonça [2]_ and Reshama Shaikh [3]_: |
| 42 | + |
| 43 | +.. epigraph:: |
| 44 | + |
| 45 | + "When some people join an open source project, they may be asked to contribute |
| 46 | + with tasks that will never get them on a path to any sort of official input, |
| 47 | + such as voting rights." |
| 48 | + |
| 49 | +Desired Goal: incrementally adapt the Governance |
| 50 | +================================================ |
| 51 | + |
| 52 | +We need to: |
| 53 | + |
| 54 | +- value non-coding contributions in the project and acknowledge all |
| 55 | + efforts, including those that are not quantified by GitHub users' |
| 56 | + activity |
| 57 | + |
| 58 | +- empower more contributors to effectively participate in the project |
| 59 | + without requiring the security responsibilities of tracking code |
| 60 | + changes to the main branches. These considerations should lead to the |
| 61 | + diversification of contribution paths [4]_. |
| 62 | + |
| 63 | +Rather than introducing entirely new structure and Governance, we |
| 64 | +propose changes to the existing ones which allow for small incremental |
| 65 | +modifications over time. |
| 66 | + |
| 67 | +****************** |
| 68 | + Proposed changes |
| 69 | +****************** |
| 70 | + |
| 71 | +Some of the proposed modification have been discussed in the monthly |
| 72 | +meetings, on April 25th 2022 [5]_ and September 5th 2022 [6]_. |
| 73 | + |
| 74 | +Define "Contributions" more broadly |
| 75 | +=================================== |
| 76 | + |
| 77 | +Explicitly define Contributions and emphasize the importance of non-code |
| 78 | +contributions in the Governance structure. |
| 79 | + |
| 80 | +Evolve the Technical Committee into a Steering Committee |
| 81 | +======================================================== |
| 82 | + |
| 83 | +Rename "Technical Committee" to "Steering Committee". |
| 84 | + |
| 85 | +Define the Steering Committee as a subset of Core Contributors rather |
| 86 | +than a subset of Core Developers. |
| 87 | + |
| 88 | +Create a Triage Team |
| 89 | +==================== |
| 90 | + |
| 91 | +Create a Triage Team which would be given "Write" permissions on GitHub |
| 92 | +[7]_ to be able to perform triaging tasks, such as editing issues' |
| 93 | +description. |
| 94 | + |
| 95 | +Define "Core Contributors" |
| 96 | +========================== |
| 97 | + |
| 98 | +Establish all members of the following teams as "Core Contributors": |
| 99 | + |
| 100 | + - Triage Team |
| 101 | + - Communication Team |
| 102 | + - Development Team |
| 103 | + |
| 104 | +A Contributor is promoted to a Core Contributor after being proposed by |
| 105 | +at least one existing Core Contributor. The proposal must specify which |
| 106 | +Core Team the Contributor will be part of. The promotion is effective |
| 107 | +after a vote on the private Core Contributor mailing list which must |
| 108 | +last for two weeks and which must reach at least two-thirds positive |
| 109 | +majority of the cast votes. |
| 110 | + |
| 111 | +Extend voting rights |
| 112 | +==================== |
| 113 | + |
| 114 | +Give voting rights to all Core Contributors. |
| 115 | + |
| 116 | +Simplify subsequent changes to the Governance |
| 117 | +============================================= |
| 118 | + |
| 119 | +Allow changes to the following aspects of the scikit-learn Governance |
| 120 | +without requiring a SLEP: |
| 121 | + |
| 122 | + - additions and changes to Roles' and Teams' scopes |
| 123 | + - additions and changes to Roles' and Teams' permissions |
| 124 | + |
| 125 | +Any changes to the scikit-learn Governance (including ones which do not |
| 126 | +require being back by a SLEP) will continue to be subject to the |
| 127 | +decision making process [8]_, which includes a vote of the Core |
| 128 | +Contributors. |
| 129 | + |
| 130 | +If subsequent changes to the Governance are proposed through a GitHub |
| 131 | +Pull Request (PR): |
| 132 | + |
| 133 | + - a positive vote is cast by approving the PR (i.e. "Approve" |
| 134 | + review) |
| 135 | + - a negative vote is cast by requesting changes to the PR (i.e. |
| 136 | + "Request changes" review) |
| 137 | + |
| 138 | +In this case, the vote still has to be announced on the Core |
| 139 | +Contributors' mailing list, but the system of Pull Request approvals |
| 140 | +will replace a vote on the private Core Contributors' mailing list. |
| 141 | + |
| 142 | +*********** |
| 143 | + Copyright |
| 144 | +*********** |
| 145 | + |
| 146 | +This document has been placed in the public domain [9]_. |
| 147 | + |
| 148 | +************************** |
| 149 | + References and Footnotes |
| 150 | +************************** |
| 151 | + |
| 152 | +.. [1] |
| 153 | +
|
| 154 | + J. -G. Young, A. Casari, K. McLaughlin, M. Z. Trujillo, L. |
| 155 | + Hébert-Dufresne and J. P. Bagrow, "Which contributions count? Analysis |
| 156 | + of attribution in open source," 2021 IEEE/ACM 18th International |
| 157 | + Conference on Mining Software Repositories (MSR), 2021, pp. 242-253, |
| 158 | + doi: 10.1109/MSR52588.2021.00036: https://arxiv.org/abs/2103.11007 |
| 159 | +
|
| 160 | +.. [2] |
| 161 | +
|
| 162 | + Contributor experience, diversity and culture in Open Source Projects: |
| 163 | + keynote from Melissa Weber Mendonça: |
| 164 | + https://2022.pycon.de/program/NVBLKH/ |
| 165 | +
|
| 166 | +.. [3] |
| 167 | +
|
| 168 | + Reshama Shaikh's quote from Melissa Weber Mendonça' keynote: |
| 169 | + https://twitter.com/reshamas/status/1513488342767353857 |
| 170 | +
|
| 171 | +.. [4] |
| 172 | +
|
| 173 | + NumPy Newcomer's Hour: an Experiment on Community Building, talk from |
| 174 | + Melissa Weber Mendonça: https://www.youtube.com/watch?v=c0XZQbu0xnw |
| 175 | +
|
| 176 | +.. [5] |
| 177 | +
|
| 178 | + scikit-learn April 25th 2022 Developer meeting notes: |
| 179 | + https://github.com/scikit-learn/administrative/blob/master/meeting_notes/2022-04-25.md |
| 180 | +
|
| 181 | +.. [6] |
| 182 | +
|
| 183 | + scikit-learn September 5th 2022 Developer meeting notes: |
| 184 | + https://github.com/scikit-learn/administrative/blob/master/meeting_notes/2022-09-05.md |
| 185 | +
|
| 186 | +.. [7] |
| 187 | +
|
| 188 | + Permissions for each role, Repository roles for an organization, GitHub |
| 189 | + Docs: |
| 190 | + https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization#permissions-for-each-role |
| 191 | +
|
| 192 | +.. [8] |
| 193 | +
|
| 194 | + Decision Making Process, scikit-learn Governance and Decision-Making: |
| 195 | + https://scikit-learn.org/dev/governance.html#decision-making-process |
| 196 | +
|
| 197 | +.. [9] |
| 198 | +
|
| 199 | + Open Publication License: https://www.opencontent.org/openpub/ |
0 commit comments