-
Notifications
You must be signed in to change notification settings - Fork 2
DOC: Add governance document draft #163
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,71 @@ | ||||||
| # Governance | ||||||
|
|
||||||
| ## Steering Council | ||||||
|
|
||||||
| The Steering Council is the governance body of the pyfar project. It is composed of people who are already actively involved in the development of pyfar packages and who have a broad understanding of all packages and the relationships between them. The overall role of the Council is to ensure, with input from the Community, the long-term well-being of the project, both technically and as a community. | ||||||
|
|
||||||
| During the everyday project activities, council members participate in all discussions, code review and other project activities as peers with all other Contributors and the Community. In these everyday activities, Council Members do not have any special power or privilege through their membership on the Council. However, it is expected that because of the quality and quantity of their contributions and their expert knowledge of the Project Software and Services that Council Members will provide useful guidance, both technical and in terms of project direction, to potentially less experienced contributors. | ||||||
|
|
||||||
| ### Responsibilities | ||||||
|
|
||||||
| The Steering Council is responsible for: | ||||||
|
|
||||||
| - **Setting the overall scope and long-term vision** and roadmap of the pyfar ecosystem | ||||||
| - Accepting or rejecting **Enhancement Proposals (DEPs)** that have project-wide or cross-package implications | ||||||
| - **Governance decisions** — changing rules, roles, processes, or the Code of Conduct | ||||||
| - **Representing the project** externally (e.g., to academic partners and funding bodies) | ||||||
| - **Resolving conflicts** that cannot be settled among Maintainers through discussion or informal voting | ||||||
| - Accepting new maintainers into the project and ensuring that a sufficient number of maintainers are available per project | ||||||
|
|
||||||
| The Steering Council does not replace Maintainers on daily technical decisions within a single package. Routine pull request merges, deprecations with clear migration paths, and package-level technical direction remain within the authority of each package's Maintainers. | ||||||
|
|
||||||
| ### What Reaches the Steering Council | ||||||
|
|
||||||
| In practice, most decisions in the pyfar project will be resolved by Maintainers via lazy consensus or informal vote. | ||||||
| **The committee is involved when:** | ||||||
|
|
||||||
| - A DEP has **cross-package or project-wide impact** — for example, introducing a new shared data structure, changing a convention adopted by all packages, or deprecating functionality that other packages depend on | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
How should we treat the template package in this context? It has been used in the past to establish such conventions. |
||||||
| - A DEP proposes a **large new feature or new package** — meaning functionality that significantly expands a package or the project, requires substantial development effort, or has broad implications for the user-facing API | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Not sure about this point, since we have not fully defined DEPs yet. Is there any DEP that does not need to be discussed by the council? If not, I would suggest writing here that every DEP needs approval by the council. The explanations for what a DEP does can then be implemented by linking to DEP0. |
||||||
| - A question of **removing or significantly altering** long-standing functionality that many users rely on | ||||||
| - A DEP proposes a **governance change** — modifying roles, voting rules, the DEP process, or the Code of Conduct | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above. If we agree that every DEP needs approcal by the council, this is point is just and obsolete explanation of what DEPs are for. |
||||||
| - Maintainers across packages **cannot reach consensus** after discussion | ||||||
| - A decision has legal, financial, or external relations implications | ||||||
|
|
||||||
| ### Composition | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we add a point, what is required to change the rules for this composition? A DEP? |
||||||
|
|
||||||
| - **Size:** A minimum of **4** and a maximum of **5** members. Keeping the committee small ensures it remains functional and decisive. At least 4 members are required to participate in a vote. | ||||||
| - **Eligibility:** Any person with at least **1 - 2 years of active pyfar contribution** — meaning regular commits, reviews, infrastructure work, community building and support, or active participation in weekly meetings — and who expresses willingness to remain in the role for **at least one year**. | ||||||
| - **Overlap with Maintainers:** Steering Council members will in most cases also hold a Maintainer role in one or more packages. The committee is a subset of the most experienced and engaged contributors, not a separate group. | ||||||
|
|
||||||
| #### Council Chair | ||||||
|
|
||||||
| The council appoints a council chair. The chair's responsibilities are | ||||||
|
|
||||||
| - Organizing and preparing Steering Council meetings | ||||||
| - Ensuring the composition of the Steering Council stays current | ||||||
|
|
||||||
| ### Selection Process | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should add a point at which point in time the selections happen and who is deciding that. Is it a special meeting, how is it announced? |
||||||
|
|
||||||
| 1. Nomination are accepted via self-nomination and peer nomination. | ||||||
| 2. All current **actively involved Maintainers/Developers across all packages** are eligible to vote — not only the existing committee members. | ||||||
| 3. Informal voting proceeds by simple majority; in case of a tie, a second round is held | ||||||
| 4. Candidates may vote for themselves; this is considered a legitimate expression of willingness to serve | ||||||
| 5. Elected members are announced to the full pyfar community | ||||||
|
|
||||||
| ### Stepping Down & Emeritus Status | ||||||
|
|
||||||
| Members who step down from the Steering Council are recognized with **emeritus status**, acknowledging their past contributions. Emeritus members may attend meetings and contribute to discussions but do not hold voting rights. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
To remove confusion with the voting as part of the selection process |
||||||
|
|
||||||
| ### Expected Conduct | ||||||
|
|
||||||
| Steering Council members are expected to participate in votes, particularly on major DEPs and governance decisions. If a member becomes inactive in the project for a period of 6 months, they will be considered for removal from the Council. Before removal, inactive Member will be approached to see if they plan on returning to active participation. If not, they will be removed immediately upon a Council vote. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would suggest to add giving them the option to step down as an alternative to simply removing them, such that they reach the emeritus status. |
||||||
| Sustained absence from votes without notice may prompt a discussion about whether a member wishes to continue in the role. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you clarify what you mean with this point? Present in the council meeting but not voting, or not being present in the council meetings? |
||||||
|
|
||||||
| ### Conflict of interest | ||||||
|
|
||||||
| It is expected that the Council 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, but are not limited to: | ||||||
|
|
||||||
| - Financial interests, such as investments, employment or contracting work, outside of The Project that may influence their work on The Project. | ||||||
| - Access to proprietary information of their employer that could potentially leak into their work with the Project. | ||||||
|
|
||||||
| All members of the 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. | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,4 +33,5 @@ sphinx-favicon | |
| watermark | ||
| pytz | ||
| sphinx-copybutton | ||
| pooch | ||
| pooch | ||
| sphinx_mdinclude | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.