Skip to content

GOV Propose 3 Basic Roles #25670

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from

Conversation

lorentzenchr
Copy link
Member

Governance Change

According to SLEP020, see also #25663, this PR proposes a change of the scikit-learn governance.

Abstract

The governance structure gets more democratic elements and only three different roles are established. This way, all contributions, e.g. "beyond code", are recognized equally and get the same rights and obligations.

Proposed Roles

Three basic roles replace all other roles:

  • Contributor
  • Core Contributor
  • Member of the Technical Committee (unchanged)

@scikit-learn/core-devs @scikit-learn/contributor-experience-team @scikit-learn/communication-team ping

Copy link
Member

@thomasjpfan thomasjpfan left a comment

Choose a reason for hiding this comment

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

This PR is removing the role between "Contributor" and "Core Contributor", which is exactly the same structure we had before the "Triage Team" or the "Contributor Experience Team" was formed. The big difference is that this PR is expanding the role of "Core Contributor" to include all types of contributions.

I'm unsure if this is the way forward to get more people to be involved. For example, the PyMC project has the "Recurring Contributor" which is a step in-between to get involved. If scikit-learn goes back to having two tiers, "Contributor" and "Core Contributor", then it will take longer for one to join the Core Team, because it takes longer to build trust and get the write permission.

I think some would be happy with a tier in-between such as "Recurring Contributor" because of the reduced responsibilities and the lower time commitment.

which they became active) is public on the scikit-learn website.

# TODO: remove/replace .. _communication_team:
# TODO: replace core developer by core contributor in all files.
# TODO: what to do with members of the contributor experience team, communication team?
Copy link
Member

Choose a reason for hiding this comment

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

The "merge pull-requests" right require write permissions, which allows one to control the secrets in the repo: github/docs#1087. Because of the expanded permissions, I prefer to have a nomination + vote for each member of the contributor experience team + communication team to be a part of the Core Contributor Team.

The alternative is to invite everyone to join the Core Contributor Team, but that almost doubles the number of people with write permission.

Copy link
Member

Choose a reason for hiding this comment

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

I agree with @thomasjpfan, and I think it might be better to perform change indicated by such TODOs in a second PR. What do you think?

Copy link
Member

@jjerphan jjerphan left a comment

Choose a reason for hiding this comment

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

Thank you for adapting the Governance Document, @lorentzenchr.

be kindly asked to step back by the technical committee.
As *ultima ratio*, the technical committee is allowed to call for a vote to withdraw
the core contributor role from a current member.
A 3/4 majority of all current core contributors is needed that this vote passes.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
A 3/4 majority of all current core contributors is needed that this vote passes.
A 3/4 majority of all current core contributors is needed for this vote to pass.

- Triage github issues and pull requests
- Review code
- Contribute code
- Create a common development roadmap
Copy link
Member

Choose a reason for hiding this comment

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

I think it would be appropriate precising the goal of a development roadmap and its enforcement (I do not think everyone agrees on the relevance of a roadmap).

active again. The list of core developers, active and emeritus (with dates at
More details can be found in the :ref:`contributors guide <contributing>`.

Core Contributors
Copy link
Member

Choose a reason for hiding this comment

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

Should we update the rest documentation in other PRs to use Contributor and Core Contributor everywhere?

Comment on lines 17 to 18
how that participation takes place and how to set about earning merit within
the project community.
Copy link
Member

Choose a reason for hiding this comment

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

What do you think?

Suggested change
how that participation takes place and how to set about earning merit within
the project community.
how that participation takes place and how to set about earning merit within
and participating democratically to the project community.

which they became active) is public on the scikit-learn website.

# TODO: remove/replace .. _communication_team:
# TODO: replace core developer by core contributor in all files.
# TODO: what to do with members of the contributor experience team, communication team?
Copy link
Member

Choose a reason for hiding this comment

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

I agree with @thomasjpfan, and I think it might be better to perform change indicated by such TODOs in a second PR. What do you think?

@betatim
Copy link
Member

betatim commented Feb 27, 2023

I like the direction of this change.

As I understand the rules right now (on main) there are topics only core developers can vote on. I think it is hard to justify different levels of "membership" when it comes to decision making. After all, you don't have to show your school grades and certifications when voting on issues in a democracy.

I also think that read access to credentials is a problem (why hide them in the UI but make them available over the API??). It looks like this is one of the few things that people with access can do without leaving a trace/being noticed. Another thing to worry about is having accounts that have elevated permissions but don't use them regularly (I sleep better the less access rights my accounts have because it makes them a less attractive target).

Taken together I think that defining a person's status in the project via the access rights on GitHub (or other platforms like Twitter, PyPI, Discord, ...) is a bug. The good thing is that scikit-learn already lists people, project roles and a mapping between them on the website.


Anecdote: Within JuypterHub we discussed and had broad agreement (but implementation is slow) on the fact that not every one who could have admin/write access to a repo needs to actually have it at a given moment in time. Similarly for PyPI, cloud provider accounts, etc. You can always ask to be added if you need it for your work or because you decide to be more active on a particular repo (or ask for it to be removed if you become less active). This is after enforcing 2FA for all accounts


I think using something like the website as the source of truth for "status in the project" and promoting that will help de-emphasize the "status" of GitHub access rights. Reduced access rights is good for security and, I think, help resolve a blocker for having just one level of membership in the project.

Copy link
Member

@adrinjalali adrinjalali left a comment

Choose a reason for hiding this comment

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

I'm a bit confused by this. Why are we rewriting all of this? I'm also not a big fan of writing down all the things people ought to be doing.

To me what we had in SLEP019 was pretty close to being accepted.

@betatim
Copy link
Member

betatim commented Mar 6, 2023

xref #25753 (comment) for those who only get notifications from this PR and not the other one.

@betatim
Copy link
Member

betatim commented Mar 10, 2023

@lorentzenchr what do you think of #25753? Adrin would like to call a vote on that PR as an alternative to this PR. I think it would be good if we could converge on one PR and sort out any differences that remain first.

@lorentzenchr lorentzenchr deleted the gov_change branch March 18, 2023 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants