From 457ff2e72a6350b5a20f364a5eecfb3322f98a4d Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Thu, 5 Jun 2025 11:54:41 +0100 Subject: [PATCH 1/7] Strawman governance --- GOVERNANCE.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 GOVERNANCE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000000..af671d1d5a --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,81 @@ +# 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 can contribute discussion, and propose changes to code, documentation +or website content. + +# 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 can become a contributor 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; + +Potential contributors are encouraged to read and 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 +- 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 on the issue trackers of the appropriate repositories. +Where possible decisions and discussions of the steering council should be documented as issues on the [administrative](https://github.com/tskit-dev/administrative) repository. Sensitive discussion may occur via email to admin@tskit.dev. + +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. + From 2850cee792a79cc933e44cb23390c30cfc80a4cc Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Thu, 5 Jun 2025 12:41:12 +0100 Subject: [PATCH 2/7] Address comments --- GOVERNANCE.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index af671d1d5a..ab4dc5ba71 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -47,14 +47,14 @@ Steering Council (TSC). This role is defined on a per-repository basis. The tskit Steering Council (TSC) has the following responsibilities: -- Management of the tskit-dev GitHub organization -- 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 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: From 284e40cf9b253d62d2aa473949fc876f8fd4eff1 Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Wed, 11 Jun 2025 23:36:36 +0100 Subject: [PATCH 3/7] Update GOVERNANCE.md Co-authored-by: Peter Ralph --- GOVERNANCE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index ab4dc5ba71..cc761617f8 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -5,8 +5,9 @@ tskit-dev community for core software projects, to clarify who has what responsi 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 can contribute discussion, and propose changes to code, documentation -or website content. +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 From fe1e1501de143ecb441cfee10481457e8b97f43d Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Wed, 11 Jun 2025 23:39:27 +0100 Subject: [PATCH 4/7] Update GOVERNANCE.md Co-authored-by: Peter Ralph --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index cc761617f8..bb0c2a98d8 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -27,7 +27,7 @@ repositories of the tskit software ecosystem. These are: ## Contributors -Anyone can become a contributor to the tskit-dev project by, for example, +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; From c05939a4c0a042c05ab5aa39b94872b06d361fc3 Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Fri, 13 Jun 2025 11:42:37 +0100 Subject: [PATCH 5/7] Stronger CoC wording --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index bb0c2a98d8..850c26094d 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -33,7 +33,7 @@ Anyone is welcome to contribute to the tskit-dev project by, for example, via a GitHub pull request to the above repositories; - reporting a GitHub issue or starting a discussion on the above repositories; -Potential contributors are encouraged to read and abide by the [CODE OF CONDUCT](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). +Contributors must abide by the [CODE OF CONDUCT](https://github.com/tskit-dev/.github/blob/main/CODE_OF_CONDUCT.md). ## Maintainers From cec9e687f0383c3cc888f62ca122bdcb0a00eb2d Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Fri, 13 Jun 2025 11:44:11 +0100 Subject: [PATCH 6/7] Add public forums --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 850c26094d..90f84d7203 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -73,7 +73,7 @@ TSC members may be removed by consensus of the remaining TSC members, or may res 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 trackers of the appropriate repositories. +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. Sensitive discussion may occur via email to admin@tskit.dev. tskit uses a "consensus-seeking" process for making decisions. The group tries to From 06ac675eec3f4b30bf8653cb8425e4dc2cc87771 Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Fri, 13 Jun 2025 11:46:00 +0100 Subject: [PATCH 7/7] Remove email --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 90f84d7203..29bde480aa 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -74,7 +74,7 @@ TSC members may be removed by consensus of the remaining TSC members, or may res 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. Sensitive discussion may occur via email to admin@tskit.dev. +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