Skip to content
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

Add governance model #3153

Draft
wants to merge 2 commits into
base: RELEASE_next_minor
Choose a base branch
from
Draft

Conversation

ericpre
Copy link
Member

@ericpre ericpre commented May 16, 2023

This is a first draft of the governance model that Francisco and I have drafted and it is mainly an adaptation from the original jupyter project governance document.

It is finished, for example, a few points need work but it would be useful to get input from the community in order to get the ball rolling with the adoption of a formal governance model.
Please comment on the pull request. 😃

Below are links to other relevant governance documents:

@ericpre ericpre marked this pull request as draft May 16, 2023 20:38
@ericpre ericpre added this to the v2.0 Split milestone May 16, 2023
@CSSFrancis
Copy link
Member

CSSFrancis commented May 16, 2023

This is a great idea!

It seems like we might need to clarify the different positions a little bit. It seems like this proposal includes the roles:

  • Contributor: Anyone who contributes to hyperspy
  • Core Developers: People with direct Commit access
  • Steering Council: A group providing longer term guidance/expertise
  • Steering Council Chair: Responsible for documenting Steering council activities but otherwise just a member of the steering council
  • Project Lead: Is this just another name for BDFL or another position.
  • BDFL: Creator/Final say but doesn't use this power.

Copy link
Contributor

@hakonanes hakonanes left a comment

Choose a reason for hiding this comment

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

I find the document reasonable. From my slightly outside-perspective, I agree with the view that the model is a formalization of how the project is lead currently.

Commented on a few typos.

Comment on lines 78 to 79
and recant their commit until they become active again.
The list of core developers, active and emeritus is public.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
and recant their commit until they become active again.
The list of core developers, active and emeritus is public.
and recant their commit rights until they become active again.
The list of core developers, active and emeritus, is public.


## BDFL

The Project’s Benevolent dictator for life (BDFL) is Francisco De La Peña.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The Project’s Benevolent dictator for life (BDFL) is Francisco De La Peña.
The Project’s Benevolent dictator for life (BDFL) is Francisco de la Peña.

sole metric on which council membership will be evaluated.

If a Council member becomes inactive in the project for a period of one year,
they will be considered for removal from the Council. Before removal, inactive
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
they will be considered for removal from the Council. Before removal, inactive
they will be considered for removal from the Council. Before removal, the inactive

- An issue where the person privately gains an advantage from The Project resources,
but The Project has no gain or suffers a disadvantage.

All members of the Steering Council, shall disclose to the rest of the Council
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
All members of the Steering Council, shall disclose to the rest of the Council
All members of the Steering Council shall disclose to the rest of the Council

any conflict of interest they may have. Members with a conflict of interest in
a particular issue may participate in Council discussions on that issue,
but must recuse themselves from voting on the issue. If the Project Lead has recused
themself for a particular decision, they will appoint a substitute BDFL for that decision.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
themself for a particular decision, they will appoint a substitute BDFL for that decision.
themselves for a particular decision, they will appoint a substitute BDFL for that decision.

Decisions should be made in accordance with the [mission and values](MISSION_AND_VALUES.md)
of the HyperSpy project.

The HyperSpy uses a “consensus seeking” process for making decisions. The group
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The HyperSpy uses a “consensus seeking” process for making decisions. The group
The HyperSpy project uses a “consensus seeking” process for making decisions. The group

@ericpre
Copy link
Member Author

ericpre commented May 17, 2023

Thank you @CSSFrancis and @hakonanes for your comments.

@CSSFrancis, your summary is correct except that there is no project lead role - sorry this is left over from adding element/removing from the matplotlib governance... 🤦‍♂️ I will clean this up!
As I understand from this type of governance, the idea is to have the project mostly led by the core-developers team with the steering council providing strategy leadership and with the power to take decision on situations where no consensus can be found in the community.

@codecov
Copy link

codecov bot commented May 17, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (bfafb1c) 80.79% compared to head (48f7a89) 80.79%.
Report is 756 commits behind head on RELEASE_next_major.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           RELEASE_next_major    #3153   +/-   ##
===================================================
  Coverage               80.79%   80.79%           
===================================================
  Files                     176      176           
  Lines                   24479    24479           
  Branches                 5707     5707           
===================================================
  Hits                    19777    19777           
  Misses                   3382     3382           
  Partials                 1320     1320           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

developer guide.

Core developers that have not contributed to the project (commits or GitHub comments)
in the past 12 months will be asked if they want to become emeritus core developers
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we really want to check that so frequently, maybe 24 months?

- Make decisions about strategic collaborations with other organizations or individuals.
- Make decisions about specific technical issues, features, bugs and pull requests.
They are the primary mechanism of guiding the code review process and merging pull requests.
- Make decisions when regular community discussion doesn’t produce consensus on
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Make decisions when regular community discussion doesn’t produce consensus on
- Make decisions when a regular community discussion does not produce consensus on

Comment on lines +120 to +122
To become eligible for being a Steering Council Member an individual must be a
Project Contributor who has produced contributions that are substantial in quality
and quantity, and sustained over at least one year. Potential Council Members are
Copy link
Contributor

Choose a reason for hiding this comment

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

duplication from above (lines 92-94)


It is expected that the SC Members will be employed at a wide range of companies,
universities and non-profit organizations. Because of this, it is possible that
Members will have conflict of interests. Such conflict of interests include,
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Members will have conflict of interests. Such conflict of interests include,
Members will have conflicts of interests. Such conflicts of interests include,

# Decision Making Process

Decisions about the future of the project are made through discussion with all
members of the community. All non-sensitive project management discussion takes
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
members of the community. All non-sensitive project management discussion takes
members of the community. All non-sensitive project management discussions take

Decisions about the future of the project are made through discussion with all
members of the community. All non-sensitive project management discussion takes
place on the [issue tracker](https://github.com/hyperspy/hyperspy/issues). Occasionally,
sensitive discussion may occur on a private communication channel.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
sensitive discussion may occur on a private communication channel.
sensitive discussions may occur on a private communication channel.

Decisions (in addition to adding core developers and SC membership as above)
are made according to the following rules:

- **Minor documentation changes**, such as typo fixes, or addition / correction of a
Copy link
Contributor

Choose a reason for hiding this comment

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

Not notably relaxed compared with major documentation changes. Except that "reasonable time" might be shorter here.

place on the [issue tracker](https://github.com/hyperspy/hyperspy/issues). Occasionally,
sensitive discussion may occur on a private communication channel.

Decisions should be made in accordance with the [mission and values](MISSION_AND_VALUES.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Do you plan to add this document?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, I do! 😃

@jlaehne
Copy link
Contributor

jlaehne commented May 27, 2023

Thanks for the proposal. Indeed, looks like a good formalization of how we operate so far and does seem to be appropriate considering the scope the project has reached. I left a few minor comments, corrections and thoughts.

What we might want to discuss in addition is how to handle RosettaSciIO (and the planned future split-offs). For the moment, I would see it appropriate not to duplicate efforts and run it by the same teams (given that it is part of the same organization). But we should maybe mention that somewhere here and on the Rosetta-Docs. That said, RosettaSciIO is a project that has the potential to grow to a point where it could make sense to have a (partially) separate governance (e.g. by enacting the project specific roles that you leave out for the moment).

@ericpre
Copy link
Member Author

ericpre commented May 30, 2023

What we might want to discuss in addition is how to handle RosettaSciIO (and the planned future split-offs). For the moment, I would see it appropriate not to duplicate efforts and run it by the same teams (given that it is part of the same organization). But we should maybe mention that somewhere here and on the Rosetta-Docs. That said, RosettaSciIO is a project that has the potential to grow to a point where it could make sense to have a (partially) separate governance (e.g. by enacting the project specific roles that you leave out for the moment).

Yes, this is a very good point and it makes to me. Once this governance is approved, I think that we should create additional core-developer team (also for other newly split packaged) and RosettaSciIO should have its own core-developer team. Then we can follow the process defined in this document to add core-developers.

When you say specific roles, is there anything in particular you have in mind?

Comment on lines +68 to +71
activities. Core developers appear as organization members on the HyperSpy
[GitHub organization](https://github.com/orgs/hyperspy/people) and are on our
[@hyperspy/developers](https://github.com/orgs/hyperspy/teams/developers) GitHub
team. Core developers are expected to review code contributions while adhering to the
Copy link
Member Author

@ericpre ericpre May 30, 2023

Choose a reason for hiding this comment

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

It seems that https://github.com/orgs/hyperspy/teams/developers is not visible when not logged into GitHub and even this was case, it could be misleading. Maybe we should remove if for now and simply say that different library of the HyperSpy organisation can have their own core-developer team.

@CSSFrancis
Copy link
Member

CSSFrancis commented May 30, 2023

When you say specific roles, is there anything in particular you have in mind?

Edit: I realize I might have misread the point above but I think the comment still is valid to the entire discussion if not directly relevant.

It might be good to have a single point of contact for things like workshops, training materials and community development. We should be a little better about advertising on hyperspy when tutorials etc are happening and sometimes there should be more information on how to set one of those up. I also think things like in person user meetups at conferences etc would be fun and help to drive a larger sense of community.

Beyond that I don't really see a need for additional positions but I'd like to hear other peoples suggestions!

@jlaehne
Copy link
Contributor

jlaehne commented May 30, 2023

When you say specific roles, is there anything in particular you have in mind?

I was thinking that RosettaSciIO and the like could also be seen as sub-projects. We could have an overall developer team, and then project teams for every repo as a level below that (that would be the project specific roles). Or we have separate developer teams on the same level for every repo.

However, we should also take care that we do not overdo the administration part for the moment. Therefore, I would also be happy to start with a single core developer team for all HyperSpy-projects, but leave the splitting up as an option.

Anyway, we might want to mention the sub-projects somewhere in the document to make clear that it also applies to them?

@CSSFrancis CSSFrancis mentioned this pull request Sep 26, 2023
57 tasks
@ericpre ericpre modified the milestones: v2.0 Split, Discussion Sep 28, 2023
@CSSFrancis CSSFrancis deleted the branch hyperspy:RELEASE_next_minor December 22, 2023 14:03
@CSSFrancis CSSFrancis closed this Dec 22, 2023
@ericpre
Copy link
Member Author

ericpre commented Dec 22, 2023

Re-opening because this has been closed automatically by mistake!

@ericpre ericpre reopened this Dec 22, 2023
@ericpre ericpre changed the base branch from RELEASE_next_major to RELEASE_next_minor December 22, 2023 16:34
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.

None yet

4 participants