-
Notifications
You must be signed in to change notification settings - Fork 53
Create GOVERNANCE.md #402
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
Merged
Merged
Create GOVERNANCE.md #402
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
1d72a15
Create GOVERNANCE.md
kushalkolar 30cc44e
Update GOVERNANCE.md
kushalkolar 5ac4c9c
Apply suggestions from code review
kushalkolar 1b76169
Update GOVERNANCE.md
kushalkolar e887647
update gov
kushalkolar 9d22d62
Update GOVERNANCE.md
kushalkolar bac1877
update gov
kushalkolar 08733b9
modify mission statement
clewis7 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
# fastplotlib governance | ||
|
||
The governance of fastplotlib applies to all fastplotlib related activities. This includes the fastplotlib GitHub organization, all repositories under the fastplotlib GitHub organization, as well as any events or workshops organized by members of the fastplotlib Leadership Team. | ||
|
||
The purpose of this document is to formalize the governance process used by the fastplotlib project, to clarify how decisions are made and how the various elements of our community interact. | ||
|
||
## Mission | ||
|
||
The mission of `fastplotlib` is to leverage new graphics APIs and modern GPU hardware to create fast and interactive scientific visualizations using an expressive and elegant API. | ||
|
||
`fastplotlib` aims to provide a library that allows for the following: | ||
- Rapid prototyping and algorithm development | ||
- Realtime analysis and visualization | ||
- Efficient rendering of thousands of objects | ||
- Compatibility with lazy-loading and lazy-compute objects | ||
- Shipping dependent packages as a distributable (ex: PyInstaller) | ||
|
||
Ultimately, `fastplotlib` is, and will always be, a free and open-source project that belongs to the community. Our end goal is to aid in the advancement of science, and as a result, we will guide the project in a direction that best serves our community in achieving this purpose. | ||
|
||
## Leadership Team | ||
|
||
### Maintainers | ||
|
||
The maintainers are the core developers of fastplotlib and together have a complete understanding of the codebase. They are also known as code-owners. At any given time, there must be a minimum of two maintainers. | ||
|
||
The current maintainers are: | ||
|
||
1. [Kushal Kolar](https://github.com/kushalkolar) | ||
1. [Caitlin Lewis](https://github.com/clewis7) | ||
|
||
Responsibilities: | ||
|
||
* Carry out the `fastplotlib` mission. | ||
* Work towards completion of the roadmap. | ||
* Timely responses to issues and pull requests. | ||
* Code review. | ||
* Attend a yearly Roadmap meeting. | ||
* Be available for conflict resolution. | ||
|
||
### Advisory Committee | ||
|
||
The Advisory Committee holds a significant interest in fastplotlib as determined solely by the **Maintainers**. | ||
|
||
1. Amol Pasarkar | ||
1. Eric Thomson | ||
1. Andrea Giovannucci | ||
1. John Pearson | ||
|
||
Responsibilities: | ||
|
||
* Help carry out the `fastplotlib` mission. | ||
* Provide strategic guidance. | ||
* Attend a yearly Roadmap meeting. | ||
* Be available for conflict resolution. | ||
|
||
### Neutral moderator | ||
|
||
No voting power, has no stake in the fastplotlib project. | ||
|
||
* Reagan Bullins | ||
|
||
Responsibilities: | ||
|
||
* Facilitate conflict resolution without voting power. | ||
|
||
## Adding a member to the advisory committee | ||
1. Only individuals, not organizations, may be added to the leadership team. A candidate individual must be nominated by a current member of the leadership team. | ||
2. A candidate must: | ||
* Be committed to the fastplotlib mission. | ||
* Have demonstrated contibutions to `fastplotlib` through one of: | ||
* Significant contributions to the codebase. | ||
* Significant application of fastplotlib in a dependent package. | ||
* Significant technical guidance or feedback on the development of `fastplotlib`. | ||
|
||
## Adding a maintainer | ||
|
||
Candidate maintainers must have demonstrated prolonged and significant contributions to the codebase over a long period of time. A candidate can be nominated by any current maintainer. The candidate may then be added as a maintainer through a unanimous vote within the current maintainers. | ||
|
||
## Decision making | ||
|
||
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. Occasionally, sensitive discussions may occur on a private core developer medium. | ||
|
||
Decisions should be made in accordance with the mission and code of conduct of the `fastplotlib` project. | ||
|
||
We use a “consensus seeking” process for making decisions. The Leadership Team tries to find a resolution that has no open objections among Leadership Team members. Leadership Team members are expected to distinguish between fundamental objections to a proposal and minor perceived flaws that they can live with, and not hold up the decision-making process for the latter. If no option can be found without objections, the decision is escalated to the maintainers who have ultimate authority. | ||
|
||
Decisions are made according to the following rules: | ||
|
||
Minor documentation changes, such as typo fixes, or addition / correction of a sentence, require approval by a maintainer and no disagreement or requested changes by other maintainers on the issue or pull request page via lazy consensus. Pull-request authors are expected to give “reasonable time” to others to give their opinion on the pull request if they’re not confident others would agree. | ||
|
||
Code changes and major documentation changes require agreement by one maintainer and no disagreement or requested changes by other maintainers on the issue or pull-request page (lazy consensus). For all changes of this type, maintainers are expected to give “reasonable time” after approval and before merging for others to weigh in on the pull request in its final state. | ||
|
||
Changes to the API principles require a dedicated issue on our issue tracker and follow the decision-making process outlined above. | ||
|
||
Changes to this governance model or our mission, vision, and values require a dedicated issue on our issue tracker and follow the decision-making process outlined above. | ||
|
||
If an objection is raised on a lazy consensus, the proposer can appeal to the Leadership Team and the change can be approved or rejected by escalating to the maintainers. | ||
|
||
## Conflict Resolution | ||
|
||
Anyone (absolutely anyone, not just the leadership team members) who feels that the code of conduct or governance document has been breached may invoke a vote by contacting the neutral moderator. | ||
|
||
### Process | ||
|
||
1. Contact the neutral moderator with a description of the conflict, max of 250 words. | ||
2. Neutral moderator must schedule a vote within 15 days. If that is not possible then within the next 45 days. | ||
3. The individual who has invoked the conflict vote can choose to present their case, or they may choose to let the neutral moderator represent them. | ||
* Every individual involved in the conflict is given a maximum of 15 minutes to be represented. This time limit may be expanded at the discretion of the neutral moderator if a justifiable reason is provided. | ||
4. The maintainers vote on one of the actions from “Enforcement Guidelines”: https://www.contributor-covenant.org/version/2/1/code_of_conduct/. It is advised that the first offense leads to action (1) “Correction”. Repeated or serious offenses from the same individual/organization may lead to escalating levels of actions. Very bad behavior, as determined by the leadership team, can justify a first offense resulting in (3) “Temporary Ban” or (4) “Permanent Ban”. | ||
5. The advisory committee members may advise on the actions, but the ultimate decision is voted on by the maintainers. | ||
|
||
## Transparency | ||
|
||
Governance decisions, meeting minutes, and voting outcomes are publicly documented and accessible. We aim for transparency to allow the broader community to understand and trust the governance process. | ||
|
||
## Changes to this governance document | ||
|
||
### Until February 28, 2025 | ||
|
||
During early stages of fastplotlib development, changes to the governance document may be made directly through unanimous approval by the original maintainers, Kushal Kolar & Caitlin Lewis. They (Kushal & Caitlin) may also add new members to the advisory committee through unanimous approval. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.