-
Notifications
You must be signed in to change notification settings - Fork 77
Draft governance model #3188
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?
Draft governance model #3188
Changes from all commits
457ff2e
2850cee
284e40c
fe1e150
c05939a
cec9e68
06ac675
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,82 @@ | ||
# Abstract | ||
|
||
The purpose of this document is to formalize the governance process used by the | ||
tskit-dev community for core software projects, to clarify who has what responsibilities, | ||
and how decisions are made on changes to those responsibilities. | ||
|
||
tskit-dev is an open and inclusive community. Anyone with an interest in the | ||
software and science is welcome to contribute discussion, and propose changes to code, | ||
documentation or website content, as long as they follow the | ||
code of conduct](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). | ||
|
||
# Scope | ||
|
||
The governance model described in this document applies to the core | ||
repositories of the tskit software ecosystem. These are: | ||
|
||
- [tskit - C and Python API](http://github.com/tskit-dev/tskit) | ||
- [msprime - coalescent simulator](http://github.com/tskit-dev/msprime) | ||
- [tszip - compression library for tskit](http://github.com/tskit-dev/tszip) | ||
- [tskit-site - website for the ecosystem](http://github.com/tskit-dev/tskit-site) | ||
- [kastore - key-value store](http://github.com/tskit-dev/kastore) | ||
- [administrative](http://github.com/tskit-dev/administrative) | ||
- [.github - common config](http://github.com/tskit-dev/.github) | ||
|
||
|
||
# Roles | ||
|
||
## Contributors | ||
|
||
Anyone is welcome to contribute to the tskit-dev project by, for example, | ||
|
||
- proposing, discussing, or reviewing a change to the code, documentation, or specification | ||
via a GitHub pull request to the above repositories; | ||
- reporting a GitHub issue or starting a discussion on the above repositories; | ||
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. What's the process for someone getting added to the github org? (I don't know, just asking the question for visibility) 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 need to set this up and have a clean out of permissions across the repos. It's under settings on the org page. 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 meant what's the process for deciding whether someone should be in the Org or not. That's something we should document 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. sounds good but in vague terms; too prescriptive might go out of date (as for instance perhaps possible github roles change) perhaps some general principles - like "the steering committee will choose roles in the github org so that X Y and Z" 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. ah I see this has been added below |
||
|
||
Contributors must abide by the [CODE OF CONDUCT](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). | ||
|
||
|
||
## Maintainers | ||
|
||
Maintainers are those who have the "Maintain" role on a given repository. They are able | ||
to merge pull requests, manage issues, and perform other administrative tasks on | ||
that repository. Maintainers are added and removed by a decision of the tskit | ||
Steering Council (TSC). This role is defined on a per-repository basis. | ||
|
||
|
||
## tskit Steering Council | ||
|
||
The tskit Steering Council (TSC) has the following responsibilities: | ||
|
||
- Management of the tskit-dev GitHub organization, including the addition and removal of members. | ||
- Administration of the repositories listed above. | ||
- Addition and removal of maintainers to those repositories. | ||
- Addition and removal of members of the tskit-dev Slack. | ||
- Addition and removal of repositories from this governance model. | ||
- Approval of changes to this governance model. | ||
- Resolution of disputes between maintainers and contributors. | ||
- Response to emails on the admin@tskit.dev address. | ||
- Management of release artifacts on package indexes such as PyPI, conda-forge. | ||
|
||
The steering council consists of a small number of people. This should always be an odd number to ensure a simple majority vote outcome is always possible. Currently this is: | ||
|
||
* [Jerome Kelleher](https://github.com/jeromekelleher) | ||
|
||
* [Peter Ralph](https://github.com/petrelharp) | ||
|
||
* [Yan Wong](https://github.com/hyanwong) | ||
|
||
|
||
TSC members may be removed by consensus of the remaining TSC members, or may resign voluntarily. New TSC members are added by unanimous consent of existing TSC members. | ||
|
||
# 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 | ||
place in the issue trackers of the appropriate repositories or other public forums. | ||
Where possible decisions and discussions of the steering council should be documented as issues on the [administrative](https://github.com/tskit-dev/administrative) repository. | ||
|
||
tskit uses a "consensus-seeking" process for making decisions. The group tries to | ||
find a resolution that has no open objections among maintainers and the TSC. All | ||
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 TSC, which will use consensus to come to a resolution. In the unlikely event that consensus cannot be reached within the TSC, the proposal will move forward if it has the support of a simple majority of the TSC. | ||
|
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.
Great to have this laid out. Do we want explicitly say the other repos on the tskit-dev workspace (e.g. tscompress, tsinfer) may become the responsibility of other maintainers if need be, or is that too prescriptive?
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.
I thought about this, but decided, as they are out of scope for this document, that it shouldn't say anything about them.