From e2d3ee5fe62a4f0c7a71fb19858f69a6e097e09c Mon Sep 17 00:00:00 2001 From: Tomas Capretto Date: Sun, 20 Aug 2023 12:19:44 -0300 Subject: [PATCH 01/13] draft governance documennt --- GOVERNANCE.md | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 GOVERNANCE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000..38e850a49 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,356 @@ +# Main Governance Document + +## The Project + +The Bambi Project (The Project) is an open source software project. +The goal of The Project is to develop open source software and deploy open and public websites and +services for reproducible, exploratory and interactive computing. +The main focus of The Project is in scientific and statistical computing. +The Software developed by The Project is released under OSI approved open source licenses, +developed openly and hosted in public GitHub repositories under the +[bambinos GitHub organization](https://github.com/bambinos). +Examples of Project Software include the Bambi library and its documentation, etc. +The Services run by The Project consist of public websites and web-services that are hosted at +[https://bambinos.github.io/bambi](https://bambinos.github.io/bambi) and subdomains. + +The Project is developed by a team of distributed developers, called Contributors. +Contributors are individuals who have contributed code, documentation, designs or other work to one +or more Project repositories. Anyone can be a Contributor. +Contributors can be affiliated with any legal entity or none. +Contributors participate in the project by submitting, reviewing and discussing GitHub Pull Requests +and Issues and participating in open and public Project discussions on GitHub and Slack. +The foundation of Project participation is openness and transparency. + +There have been many Contributors to the Project, whose contributions are listed in the logs of any +of the repositories under the bambinos organization. + +The Project Community consists of all Contributors and Users of the Project. +Contributors work on behalf of and are responsible to the larger Project Community and we strive to +keep the barrier between Contributors and Users as low as possible. + +## Governance + +### Community Architecture + +* General Contributors +* Recurrent Contributors +* Current Core Contributors (of which Council members are also a part of) +* Steering council + +Anyone working with Bambi has the responsibility to personally uphold the Code of Conduct. +Core Contributors have the additional responsibility of _enforcing_ the Code of Conduct to maintain +a safe community. + + +#### Recurrent Contributors + +Recurrent Contributors are those individuals who contribute recurrently to theproject and can +provide valuable insight on the project. They are therefore actively consulted and can participate +in the same communication channels as Core Contributors. However, unlike Core Contributors, +Recurrent Contributors don't have voting, managing or writing rights. + +In practice, this translates in participating from private team discussions +(i.e. in Slack or live meetings) but not being able to vote in elections for the Council members nor +having commit rights on GitHub. + +The Recurrent Contributor position will often be an intermediate step for people in becoming +Core Contributors once their contributions are frequent enough and during a sustained period of time. +But it is also an important role by itself for people who want to be part of the project on a more +advisory-like role, as they for example might not have the time availability or don't want the +responsibilities that come with being a Core Contributor. + +The process for new people to join the project as recurrent contributors is described at +{ref}`contributor_onboarding`. Recurrent or core contributors can nominate anyone to join the +project as a recurrent contributor. + +##### Current Recurrent Contributors + +... + +#### Core Contributors + +Core Contributors are those who have provided consistent and meaningful contributions to Bambi. +These can be, but are not limited to, code contributions, community contributions, tutorial +development etc. Core Contributors will be given the ability to manage the Bambi GitHub +repository, including code merges to main. This does not necessarily mean Core Contributors +must submit code, but more so signifies trust with the project as a whole. + +The process for new people to join the project as core contributors is described at +{ref}`contributor_onboarding`. +Only recurrent contributors are eligible to become core contributors, and only core contributors +can nominate them. + +##### Core Contributor Responsibilities + +* Enforce code of conduct +* Maintain a check against Council + +##### Current Core Contributors + +... + +#### Council + +The Project will have a Steering Council that consists of Core Contributors who have produced +contributions that are substantial in quality and quantity, and sustained over at least one year. +The overall role of the Council is to ensure, taking 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. + +##### Council Responsibilities + +Council Members will have the responsibility of + +* Removing members, including Council Members, if they are in violation of the Code of Conduct +* Making decisions when regular community discussion does not produce consensus on an issue + in a reasonable time frame. See {ref}`council_decision_process` page for more details. +* Making decisions about strategic collaborations with other organizations or individuals. +* Making decisions about the overall scope, vision and direction of the project. +* Developing funding sources +* Deciding how to disburse funds with consultation from Core Contributors + +The council may choose to delegate these responsibilities to sub-committees. +If so, Council members must update this document to make the delegation clear. + +:::{important} +Individual council members do not have the power to unilaterally wield these responsibilities. +The council as a whole must jointly make these decisions. +In other words, Council Members are first and foremost Core Contributors, but only when needed they +can collectively make decisions for the health of the project. +::: + +##### Length of Tenure and Reverification + + + +* Council members term limits are 4 years, after which point their seat will come up for reelection. +* Each year on April 7th council members will be asked to restate their commitment to being on the +council +* Attempts should be made to reach every council member over at least 2 communication media. +For example: email, Slack, phone, or GitHub. +* If a council member does not restate their commitment their seat will be vacated. +* Inactivity can be determined by lack of substantial contribution, including votes on council, +code or discussion contributions, contributions in the community or otherwise. +* In the event of a vacancy in the council, an {ref}`election ` will be held to +fill the position. +* There is no limit on the number of terms a Council Member can serve + + +##### Current Council members + +The current Council members are: + +* ... +* ... +* ... + +### Election and decision making processes + +#### New Contributor Nominations and Confirmation Process + +Current Contributors can nominate candidates to become Contributors by requesting so in a GitHub +issue, constraints on eligibility are detailed in the role descriptions. +If nominated candidates accept their nomination (explicit comment approving nomination on the +issue or "thumbs-up" emoji on the same issue), then they can be considered by the Council: +on the first of the month following a nomination, the Council will vote on each nominee using +{ref}`this process `. + +:::{note} +In the case of recurring contributors, the nomination and voting process can be replaced +by a somewhat similar selection process. Thus, for example, GSoC interns are considered +recurrent contributors once accepted; similarly, contractors hired thanks to grants like CZI EOSS +or GSoD ones are also considered recurrent contributors once hired. +::: + +Voting will be private with results published on the issue ticket. +In the case of a rejection, results must include the reasons behind the decision +(e.g. the time since starting to contribute is deemed too short for now). +The candidate would then have to wait 3 months to be considered again. + +#### Council Decision Making Process + +By and large we expect the decisions in Bambi to be made _ad hoc_ and require little formal +coordination and with the community at large. However, for controversial proposals and new +Core Contributors the council may need to intervene to make the final decision in a group vote. + +##### Call for a vote + +Core Contributors can call for a vote to resolve a target issue they feel has been stale for too +long and for which informal consensus appears unlikely. For a vote to be called, the target issue +must be at least 2 months old. + +To do so, they have to open a proposal issue ticket labeled "Council Vote". +The proposal issue should contain a link to the target issue and a proposal on how to resolve it. +Proposals should include a statement making clear what it means to "agree" or to "disagree". + +Before voting starts, at least 3 days will be left for Core Contributors to raise doubts about +the proposal's _phrasing_, no extra discussion will take place in the proposal issue. +Proposal issues should be locked from creation to prevent attracting discussion from people not +familiar with the decision process. + +##### Voting process + +* Each Council Member will vote either "Yes", "No", or "Neutral". +* It is recommended that all Council Members expose their reasons when voting. +"No" votes, however, _must_ list the reasons for disagreement. Any "No" vote with no reason listed +will be considered a "Neutral" vote. +* An absence of vote is considered as "Neutral". +* Voting will remain open for at least 3 days. +* For the proposal to pass, at least 60% of the council must vote "Yes", and no more than 20% can +vote "No". + +For decisions about the project the Council will perform it directly on the proposal issue. +For decisions about people, such as electing or ejecting Core Contributors, the Council will vote +privately. However the decision will be posted publicly in an issue ticket. + +#### Private communications of the Council + +Unless specifically required, all Council discussions and activities will be between public +(GitHub), and partially public channels (Slack) and done in collaboration and discussion with the +Core Contributors and the Community. The Council will have a private channel that will be used +sparingly and only when a specific matter requires privacy. When private communications and +decisions are needed, the Council will do its best to summarize those to the Community after +eliding personal/private/sensitive information that should not be posted to the public internet. + +#### Conflict of interest + +It is expected that 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. + +#### Council Selection Process + +##### Eligibility + +* Must be core contributor for at least one year + +##### Nominations + +* Nominations are taken over a public GitHub issue ticket over the course of 2 weeks +* Only Core Contributors may nominate folks +* Self Nominations are allowed +* At the conclusion of the 2 weeks, the list of nominations is posted on the ticket and this ticket +is closed. + +##### Election Process + +* Voting occurs over a period of at least 1 week, at the conclusion of the nominations. +Voting is blind and mediated by either an application or a third party like NumFOCUS. +Each voter can vote zero or more times, once per each candidate. +As this is not about ranking but about capabilities, voters vote on a yes/neutral/no basis per +candidate -- "would I trust this person to lead Bambi?". +* Candidates are evaluated independently, each candidate having 60% or more of yes votes _and_ less +or equal than 20% of no votes is chosen. If the number of chosen candidates is >=4 and <=10 all +candidates are confirmed and the election process stops here. +* In the event that either not enough or too many candidates were confirmed, candidates are ranked +by interpreting yes=+1, neutral=0 and no=-1. If too many candidates were confirmed, the 10 +candidates with higher rank are elected. If not enough candidates were chosen, the 4 candidates with + higher rank are elected. +* In the event of a tie there will be a runoff election for the tied candidates. To avoid further +ties and discriminate more among the tied candidates, this vote will be held by +[Majority Judgment](https://en.wikipedia.org/wiki/Majority_judgment) (MJ): for each candidate, +voters judge their suitability for office as either "Excellent", "Very Good", "Good", "Acceptable", +"Poor", or "Reject". Multiple candidates may be given the same grade by a voter. +The candidate with the highest median grade is the winner. +* If more than one candidate has the same highest median-grade, the MJ winner isdiscovered by +removing (one-by-one) any grades equal in value to the shared median grade from each tied +candidate's total. This is repeated until only one of the previously tied candidates is currently +found to have the highest median-grade. +* If ties are still present after this second round, the winner will be chosen at random. +Each person tied will pick an integer number in the `[1, 100]` interval and send it privately to the +third party mediating the election. After receiving all the numbers, said third party will draw a +random integer from random.org. The person with theclosest circular distance, defined as +`min(|a-b|, 100-|a-b|)`, will be selected. This process will be repeated as many times as necessary +as there may be ties resulting from candidates choosing the same number. +* At the conclusion of voting, all the results will be posted. And at least 24 hours will be left to +challenge the election result in case there were suspicions of irregularities or the process had not +been correctly carriedout. + +#### Vote of No Confidence + +* In exceptional circumstances, council members as well as core contributors may remove a sitting +council member via a vote of no confidence. Core contributors can also call for a vote to remove the +entire council -- in which case, Council Members do not vote. +* A no-confidence vote is triggered when a core team member (i.e Council member or Core contributor) +calls for one publicly on an appropriate project communication channel, and two other core team +members second the proposal. The initial call for a no-confidence vote must specify which type is +intended -- whether it is targeting a single member or the council as a whole. +* The vote lasts for two weeks, and the people taking part in it vary: + * If this is a single-member vote called by Core contributors, both Council members and Core + contributors vote, and the vote is deemed successful if at least two thirds of voters express a + lack of confidence. + * If this is a whole-council vote, then it was necessarily called by Core contributors + (since Council members can’t remove the whole Council) and only Core contributors vote. + The vote is deemed successful if at least two thirds of voters express a lack of confidence. + * If this is a single-member vote called by Council Members, only Council Members vote, and the + vote is deemed successful if at least half the voters express a lack of confidence. + Council Members also have the possibility to call for the whole core team to vote + (i.e Council members and Core contributors), although this is not the default option. + The threshold for successful vote is also at 50% of voters for this option. +* If a single-member vote succeeds, then that member is removed from the council and the resulting +vacancy can be handled in the usual way. +* If a whole-council vote succeeds, the council is dissolved and a new council election is triggered +immediately. + +#### Ejecting Core Contributors + +* Core contributors can be ejected through a simple majority vote by the council. +Council members vote "Yes" or "No". +* Upon ejecting a core contributor the council must publish an issue ticket, or public document +detailing the + * Violations + * Evidence if available + * Remediation plan (if necessary) + * Signatures majority of council members to validate correctness and accuracy + +#### Leaving the project + +Core contributors can also voluntarily leave the project by notifying the community through a public +means or by notifying the entire council. + +Unless they request otherwise, they will be listed on {ref}`emeritus` page. + +#### Voting Criteria For Future Elections + +Voting for first election is restricted to establish stable governance, and to defer major decision to elected leaders +* For the first election only the people registered following the guidelines in `elections/ArviZ_2020.md` can vote +* In the first year, the council must determine voting eligibility for future elections between two criteria: + * Core contributors + * The contributing community at large + +## Historical note + +Traditionally, project leadership was unstructured but primarily driven by a subset of +Core Contributors whose active and consistent contributions have been recognized by their receiving +"commit rights" to the Project GitHub repositories. +In general all Project decisions are made through consensus among the Core Contributors with input +from the Community. + +While this approach has served us well, as the Project grows and faces more legal and financial +decisions and interacts with other institutions, we see a need for a more formal governance model. +Moving forward The Project leadership will consist of a **TODO NAME** Council. +We view this governance model as the formalization of what we are already doing, rather than a +change in direction. + + + \ No newline at end of file From 943d49a91ef1737aac4527ae0667439a62190b5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Mon, 21 Aug 2023 10:26:00 -0300 Subject: [PATCH 02/13] Update GOVERNANCE.md Co-authored-by: Osvaldo A Martin --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 38e850a49..155dfcd67 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -275,7 +275,7 @@ found to have the highest median-grade. * If ties are still present after this second round, the winner will be chosen at random. Each person tied will pick an integer number in the `[1, 100]` interval and send it privately to the third party mediating the election. After receiving all the numbers, said third party will draw a -random integer from random.org. The person with theclosest circular distance, defined as +random integer from random.org. The person with the closest circular distance, defined as `min(|a-b|, 100-|a-b|)`, will be selected. This process will be repeated as many times as necessary as there may be ties resulting from candidates choosing the same number. * At the conclusion of voting, all the results will be posted. And at least 24 hours will be left to From 25fe8f5b67cb8847f8b591b1e4f0088b86e13fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Mon, 21 Aug 2023 10:26:06 -0300 Subject: [PATCH 03/13] Update GOVERNANCE.md Co-authored-by: Osvaldo A Martin --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 155dfcd67..39a7f9185 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -44,7 +44,7 @@ a safe community. #### Recurrent Contributors -Recurrent Contributors are those individuals who contribute recurrently to theproject and can +Recurrent Contributors are those individuals who contribute recurrently to the project and can provide valuable insight on the project. They are therefore actively consulted and can participate in the same communication channels as Core Contributors. However, unlike Core Contributors, Recurrent Contributors don't have voting, managing or writing rights. From fef6768da55013b42df8e7b82b0a43a94cecceeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Mon, 21 Aug 2023 10:26:15 -0300 Subject: [PATCH 04/13] Update GOVERNANCE.md Co-authored-by: Osvaldo A Martin --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 39a7f9185..8254240a1 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -268,7 +268,7 @@ ties and discriminate more among the tied candidates, this vote will be held by voters judge their suitability for office as either "Excellent", "Very Good", "Good", "Acceptable", "Poor", or "Reject". Multiple candidates may be given the same grade by a voter. The candidate with the highest median grade is the winner. -* If more than one candidate has the same highest median-grade, the MJ winner isdiscovered by +* If more than one candidate has the same highest median-grade, the MJ winner is discovered by removing (one-by-one) any grades equal in value to the shared median grade from each tied candidate's total. This is repeated until only one of the previously tied candidates is currently found to have the highest median-grade. From 355a48f90a82a89d10636fe8c9f90a31f6e8f219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Mon, 21 Aug 2023 10:26:38 -0300 Subject: [PATCH 05/13] Update GOVERNANCE.md Co-authored-by: Osvaldo A Martin --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 8254240a1..c23d42f5f 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -280,7 +280,7 @@ random integer from random.org. The person with the closest circular distance, d as there may be ties resulting from candidates choosing the same number. * At the conclusion of voting, all the results will be posted. And at least 24 hours will be left to challenge the election result in case there were suspicions of irregularities or the process had not -been correctly carriedout. +been correctly carried out. #### Vote of No Confidence From b94cb6881db325b3d20efc36b636461075a4299e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Wed, 27 Sep 2023 23:11:29 +0200 Subject: [PATCH 06/13] Update GOVERNANCE.md Co-authored-by: Ravin Kumar <7213793+canyon289@users.noreply.github.com> --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index c23d42f5f..c526cd852 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -3,7 +3,7 @@ ## The Project The Bambi Project (The Project) is an open source software project. -The goal of The Project is to develop open source software and deploy open and public websites and +The goal of The Project is to develop open source software and deploy open and public content and services for reproducible, exploratory and interactive computing. The main focus of The Project is in scientific and statistical computing. The Software developed by The Project is released under OSI approved open source licenses, From 070c22d4f9748f65cf41d3f3a1e8f902d149abd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Wed, 27 Sep 2023 23:13:12 +0200 Subject: [PATCH 07/13] Update GOVERNANCE.md Co-authored-by: Oriol Abril-Pla --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index c526cd852..2ee45d998 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -34,7 +34,7 @@ keep the barrier between Contributors and Users as low as possible. * General Contributors * Recurrent Contributors -* Current Core Contributors (of which Council members are also a part of) +* Core Contributors (of which Council members are also a part of) * Steering council Anyone working with Bambi has the responsibility to personally uphold the Code of Conduct. From 80d05dc3bca492ef9cf2ecf9ec138346bda1a915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Wed, 27 Sep 2023 23:14:59 +0200 Subject: [PATCH 08/13] Update GOVERNANCE.md Co-authored-by: Oriol Abril-Pla --- GOVERNANCE.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 2ee45d998..1cdcd23c7 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -108,13 +108,9 @@ to potentially less experienced contributors. Council Members will have the responsibility of -* Removing members, including Council Members, if they are in violation of the Code of Conduct +* Removing members, including Council Members, if they are in violation of the Code of Conduct or don't comply with this governance document * Making decisions when regular community discussion does not produce consensus on an issue in a reasonable time frame. See {ref}`council_decision_process` page for more details. -* Making decisions about strategic collaborations with other organizations or individuals. -* Making decisions about the overall scope, vision and direction of the project. -* Developing funding sources -* Deciding how to disburse funds with consultation from Core Contributors The council may choose to delegate these responsibilities to sub-committees. If so, Council members must update this document to make the delegation clear. From f4d4442f771d80d50dd8761cdcdb286dc317c108 Mon Sep 17 00:00:00 2001 From: Tomas Capretto Date: Wed, 27 Sep 2023 23:48:59 +0200 Subject: [PATCH 09/13] Clean governance a little bit --- GOVERNANCE.md | 73 ++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 1cdcd23c7..fc9592c9f 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -9,9 +9,9 @@ The main focus of The Project is in scientific and statistical computing. The Software developed by The Project is released under OSI approved open source licenses, developed openly and hosted in public GitHub repositories under the [bambinos GitHub organization](https://github.com/bambinos). -Examples of Project Software include the Bambi library and its documentation, etc. +Examples of Project Software include the Bambi library and its documentation. The Services run by The Project consist of public websites and web-services that are hosted at -[https://bambinos.github.io/bambi](https://bambinos.github.io/bambi) and subdomains. +[https://bambinos.github.io](https://bambinos.github.io) and subdomains. The Project is developed by a team of distributed developers, called Contributors. Contributors are individuals who have contributed code, documentation, designs or other work to one @@ -35,13 +35,12 @@ keep the barrier between Contributors and Users as low as possible. * General Contributors * Recurrent Contributors * Core Contributors (of which Council members are also a part of) -* Steering council +* Steering Council Anyone working with Bambi has the responsibility to personally uphold the Code of Conduct. Core Contributors have the additional responsibility of _enforcing_ the Code of Conduct to maintain a safe community. - #### Recurrent Contributors Recurrent Contributors are those individuals who contribute recurrently to the project and can @@ -60,12 +59,12 @@ advisory-like role, as they for example might not have the time availability or responsibilities that come with being a Core Contributor. The process for new people to join the project as recurrent contributors is described at -{ref}`contributor_onboarding`. Recurrent or core contributors can nominate anyone to join the -project as a recurrent contributor. +[New Contributor Nominations and Confirmation Process](#new-contributor-nominations-and-confirmation-process). +Recurrent or Core Contributors can nominate anyone to join the project as a recurrent contributor. ##### Current Recurrent Contributors -... +The list of Recurrent Contributors will be created once after Core Contributors group is defined. #### Core Contributors @@ -75,19 +74,18 @@ development etc. Core Contributors will be given the ability to manage the Bambi repository, including code merges to main. This does not necessarily mean Core Contributors must submit code, but more so signifies trust with the project as a whole. -The process for new people to join the project as core contributors is described at -{ref}`contributor_onboarding`. -Only recurrent contributors are eligible to become core contributors, and only core contributors -can nominate them. +The process for new people to join the project as Core Contributors is described at +[New Contributor Nominations and Confirmation Process](#new-contributor-nominations-and-confirmation-process). +Only Recurrent Contributors are eligible to become Core Contributors, and only Core Contributorscan nominate them. ##### Core Contributor Responsibilities -* Enforce code of conduct +* Enforce Code of Conduct * Maintain a check against Council ##### Current Core Contributors -... +TBD #### Council @@ -96,7 +94,7 @@ contributions that are substantial in quality and quantity, and sustained over a The overall role of the Council is to ensure, taking 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 +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 @@ -104,20 +102,26 @@ their contributions and their expert knowledge of the Project Software and Servi Members will provide useful guidance, both technical and in terms of project direction, to potentially less experienced contributors. +The Council will have between 4 and 7 members. No more than 2 Council Members can report to one +person or company (including Institutional Partners) through employment or contracting work +(including the reportee, i.e. the reportee + 1 is the max). + ##### Council Responsibilities Council Members will have the responsibility of -* Removing members, including Council Members, if they are in violation of the Code of Conduct or don't comply with this governance document +* Removing members, including Council Members, if they are in violation of the Code of Conduct +or don't comply with this governance document. * Making decisions when regular community discussion does not produce consensus on an issue - in a reasonable time frame. See {ref}`council_decision_process` page for more details. +in a reasonable time frame. See [Council Decision Making Process](#council-decision-making-process) +page for more details. -The council may choose to delegate these responsibilities to sub-committees. +The Council may choose to delegate these responsibilities to sub-committees. If so, Council members must update this document to make the delegation clear. :::{important} -Individual council members do not have the power to unilaterally wield these responsibilities. -The council as a whole must jointly make these decisions. +Individual Council Members do not have the power to unilaterally wield these responsibilities. +The Council as a whole must jointly make these decisions. In other words, Council Members are first and foremost Core Contributors, but only when needed they can collectively make decisions for the health of the project. ::: @@ -128,17 +132,16 @@ can collectively make decisions for the health of the project. * Council members term limits are 4 years, after which point their seat will come up for reelection. * Each year on April 7th council members will be asked to restate their commitment to being on the -council +Council. * Attempts should be made to reach every council member over at least 2 communication media. For example: email, Slack, phone, or GitHub. -* If a council member does not restate their commitment their seat will be vacated. +* If a Council Member does not restate their commitment their seat will be vacated. * Inactivity can be determined by lack of substantial contribution, including votes on council, code or discussion contributions, contributions in the community or otherwise. -* In the event of a vacancy in the council, an {ref}`election ` will be held to -fill the position. +* In the event of a vacancy in the council, an [election](#council-selection-process) will be held +to fill the position. * There is no limit on the number of terms a Council Member can serve - ##### Current Council members The current Council members are: @@ -156,7 +159,7 @@ issue, constraints on eligibility are detailed in the role descriptions. If nominated candidates accept their nomination (explicit comment approving nomination on the issue or "thumbs-up" emoji on the same issue), then they can be considered by the Council: on the first of the month following a nomination, the Council will vote on each nominee using -{ref}`this process `. +[this process](#voting-process). :::{note} In the case of recurring contributors, the nomination and voting process can be replaced @@ -320,15 +323,8 @@ detailing the Core contributors can also voluntarily leave the project by notifying the community through a public means or by notifying the entire council. -Unless they request otherwise, they will be listed on {ref}`emeritus` page. - -#### Voting Criteria For Future Elections - -Voting for first election is restricted to establish stable governance, and to defer major decision to elected leaders -* For the first election only the people registered following the guidelines in `elections/ArviZ_2020.md` can vote -* In the first year, the council must determine voting eligibility for future elections between two criteria: - * Core contributors - * The contributing community at large +Unless they request otherwise, they will be listed on the Emeritus team members page. + ## Historical note @@ -342,11 +338,4 @@ While this approach has served us well, as the Project grows and faces more lega decisions and interacts with other institutions, we see a need for a more formal governance model. Moving forward The Project leadership will consist of a **TODO NAME** Council. We view this governance model as the formalization of what we are already doing, rather than a -change in direction. - - - \ No newline at end of file +change in direction. \ No newline at end of file From 3a7bb33cb1bd9ab16a5d601ec12b48556db27400 Mon Sep 17 00:00:00 2001 From: Tomas Capretto Date: Wed, 27 Sep 2023 23:55:41 +0200 Subject: [PATCH 10/13] [no ci] remove name --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index fc9592c9f..663b50b9d 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -336,6 +336,6 @@ from the Community. While this approach has served us well, as the Project grows and faces more legal and financial decisions and interacts with other institutions, we see a need for a more formal governance model. -Moving forward The Project leadership will consist of a **TODO NAME** Council. +Moving forward The Project leadership will consist of a Council. We view this governance model as the formalization of what we are already doing, rather than a change in direction. \ No newline at end of file From 507f4f2b0eb2815fa6f0e6d2b28a7f439cafa1d6 Mon Sep 17 00:00:00 2001 From: Tomas Capretto Date: Tue, 17 Oct 2023 23:03:19 -0300 Subject: [PATCH 11/13] Add names to governance roles --- GOVERNANCE.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 663b50b9d..4c94e3eb6 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -64,7 +64,7 @@ Recurrent or Core Contributors can nominate anyone to join the project as a recu ##### Current Recurrent Contributors -The list of Recurrent Contributors will be created once after Core Contributors group is defined. +The list of Recurrent Contributors will be created after Core Contributors group is defined. #### Core Contributors @@ -85,7 +85,10 @@ Only Recurrent Contributors are eligible to become Core Contributors, and only C ##### Current Core Contributors -TBD +* Gabriel Stechschulte ([@gstechschulte](https://github.com/gstechschulte)) +* Osvaldo Martin ([@aloctavodia](https://github.com/aloctavodia)) +* Ravin Kumar ([@canyon289](https://github.com/canyon289)) +* Tomás Capretto ([@tomicapretto](https://github.com/tomicapretto)) #### Council @@ -119,12 +122,10 @@ page for more details. The Council may choose to delegate these responsibilities to sub-committees. If so, Council members must update this document to make the delegation clear. -:::{important} Individual Council Members do not have the power to unilaterally wield these responsibilities. The Council as a whole must jointly make these decisions. In other words, Council Members are first and foremost Core Contributors, but only when needed they can collectively make decisions for the health of the project. -::: ##### Length of Tenure and Reverification @@ -146,9 +147,10 @@ to fill the position. The current Council members are: -* ... -* ... -* ... +* Gabriel Stechschulte ([@gstechschulte](https://github.com/gstechschulte)) +* Osvaldo Martin ([@aloctavodia](https://github.com/aloctavodia)) +* Ravin Kumar ([@canyon289](https://github.com/canyon289)) +* Tomás Capretto ([@tomicapretto](https://github.com/tomicapretto)) ### Election and decision making processes @@ -161,12 +163,10 @@ issue or "thumbs-up" emoji on the same issue), then they can be considered by th on the first of the month following a nomination, the Council will vote on each nominee using [this process](#voting-process). -:::{note} In the case of recurring contributors, the nomination and voting process can be replaced by a somewhat similar selection process. Thus, for example, GSoC interns are considered recurrent contributors once accepted; similarly, contractors hired thanks to grants like CZI EOSS or GSoD ones are also considered recurrent contributors once hired. -::: Voting will be private with results published on the issue ticket. In the case of a rejection, results must include the reasons behind the decision @@ -324,7 +324,6 @@ Core contributors can also voluntarily leave the project by notifying the commun means or by notifying the entire council. Unless they request otherwise, they will be listed on the Emeritus team members page. - ## Historical note From 224b8d74814bfc2714e6b3f0463cb42d893b0ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Capretto?= Date: Tue, 24 Oct 2023 21:55:25 -0300 Subject: [PATCH 12/13] Update GOVERNANCE.md Co-authored-by: Ravin Kumar <7213793+canyon289@users.noreply.github.com> --- GOVERNANCE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 4c94e3eb6..3b90940ca 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -149,7 +149,6 @@ The current Council members are: * Gabriel Stechschulte ([@gstechschulte](https://github.com/gstechschulte)) * Osvaldo Martin ([@aloctavodia](https://github.com/aloctavodia)) -* Ravin Kumar ([@canyon289](https://github.com/canyon289)) * Tomás Capretto ([@tomicapretto](https://github.com/tomicapretto)) ### Election and decision making processes From c8764da6fc913f6c119e4040baa5299fcf9ecfe5 Mon Sep 17 00:00:00 2001 From: Tomas Capretto Date: Tue, 24 Oct 2023 21:57:11 -0300 Subject: [PATCH 13/13] Add link for code of conduct in governance --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 3b90940ca..09d090a4a 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -37,7 +37,7 @@ keep the barrier between Contributors and Users as low as possible. * Core Contributors (of which Council members are also a part of) * Steering Council -Anyone working with Bambi has the responsibility to personally uphold the Code of Conduct. +Anyone working with Bambi has the responsibility to personally uphold the [Code of Conduct](https://github.com/bambinos/bambi/blob/main/CODE_OF_CONDUCT.md). Core Contributors have the additional responsibility of _enforcing_ the Code of Conduct to maintain a safe community.