|
| 1 | +--- |
| 2 | +layout: page |
| 3 | +title: Governance |
| 4 | +permalink: /governance/ |
| 5 | +--- |
| 6 | + |
| 7 | +# Abstract |
| 8 | + |
| 9 | +The purpose of this document is to formalize the governance process used by the |
| 10 | +tskit-dev community for core software projects, to clarify who has what responsibilities, |
| 11 | +and how decisions are made on changes to those responsibilities. |
| 12 | + |
| 13 | +tskit-dev is an open and inclusive community. Anyone with an interest in the |
| 14 | +software and science is welcome to contribute discussion, and propose changes to code, |
| 15 | +documentation or website content, as long as they follow the |
| 16 | +[code of conduct](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). |
| 17 | + |
| 18 | +# Scope |
| 19 | + |
| 20 | +The governance model described in this document applies to the core |
| 21 | +repositories of the tskit software ecosystem. These are: |
| 22 | + |
| 23 | +- [tskit - C and Python API](http://github.com/tskit-dev/tskit) |
| 24 | +- [msprime - coalescent simulator](http://github.com/tskit-dev/msprime) |
| 25 | +- [tszip - compression library for tskit](http://github.com/tskit-dev/tszip) |
| 26 | +- [tskit-site - website for the ecosystem](http://github.com/tskit-dev/tskit-site) |
| 27 | +- [kastore - key-value store](http://github.com/tskit-dev/kastore) |
| 28 | +- [administrative](http://github.com/tskit-dev/administrative) |
| 29 | +- [.github - common config](http://github.com/tskit-dev/.github) |
| 30 | + |
| 31 | + |
| 32 | +# Roles |
| 33 | + |
| 34 | +## Contributors |
| 35 | + |
| 36 | +Anyone is welcome to contribute to the tskit-dev project by, for example, |
| 37 | + |
| 38 | +- proposing, discussing, or reviewing a change to the code, documentation, or specification |
| 39 | + via a GitHub pull request to the above repositories; |
| 40 | +- reporting a GitHub issue or starting a discussion on the above repositories; |
| 41 | + |
| 42 | +Contributors must abide by the [CODE OF CONDUCT](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). |
| 43 | + |
| 44 | + |
| 45 | +## Maintainers |
| 46 | + |
| 47 | +Maintainers are those who have the "Maintain" role on a given repository. They are able |
| 48 | +to merge pull requests, manage issues, and perform other administrative tasks on |
| 49 | +that repository. Maintainers are added and removed by a decision of the tskit |
| 50 | +Steering Council (TSC). This role is defined on a per-repository basis. |
| 51 | + |
| 52 | + |
| 53 | +## tskit Steering Council |
| 54 | + |
| 55 | +The tskit Steering Council (TSC) has the following responsibilities: |
| 56 | + |
| 57 | +- Management of the tskit-dev GitHub organization, including the addition and removal of members. |
| 58 | +- Administration of the repositories listed above. |
| 59 | +- Addition and removal of maintainers to those repositories. |
| 60 | +- Addition and removal of members of the tskit-dev Slack. |
| 61 | +- Addition and removal of repositories from this governance model. |
| 62 | +- Approval of changes to this governance model. |
| 63 | +- Resolution of disputes between maintainers and contributors. |
| 64 | +- Response to emails on the [email protected] address. |
| 65 | +- Management of release artifacts on package indexes such as PyPI, conda-forge. |
| 66 | + |
| 67 | +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: |
| 68 | + |
| 69 | +* [Jerome Kelleher](https://github.com/jeromekelleher) |
| 70 | + |
| 71 | +* [Peter Ralph](https://github.com/petrelharp) |
| 72 | + |
| 73 | +* [Yan Wong](https://github.com/hyanwong) |
| 74 | + |
| 75 | + |
| 76 | +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. |
| 77 | + |
| 78 | +# Decision Making Process |
| 79 | + |
| 80 | +Decisions about the future of the project are made through discussion with all |
| 81 | +members of the community. All non-sensitive project management discussion takes |
| 82 | +place in the issue trackers of the appropriate repositories or other public forums. |
| 83 | +Where possible decisions and discussions of the steering council should be documented as issues on the [administrative](https://github.com/tskit-dev/administrative) repository. |
| 84 | + |
| 85 | +tskit uses a "consensus-seeking" process for making decisions. The group tries to |
| 86 | +find a resolution that has no open objections among maintainers and the TSC. All |
| 87 | +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. |
| 88 | + |
0 commit comments