Skip to content

Latest commit

 

History

History
424 lines (355 loc) · 20 KB

APE0.rst

File metadata and controls

424 lines (355 loc) · 20 KB

The Astropy Project Governance Charter

author: The Astropy Governance Working Group; Tom Aldcroft, Matt Craig, Kelle Cruz, Lia Corrales, Steve Crawford, Nicole Foster, Pey Lian Lim, Stuart Mumford, Adrian Price-Whelan, Thomas Robitaille, David Shupe, Brigitta Sipocz, Erik Tollerud

date-created: 2020 July 31

date-last-revised: 2022 October 13

date-accepted: 2021 February 19

type: Process

status: Accepted

Abstract

This APE defines the formal fundamental governance process for the Astropy Project. The Astropy Project broadly follows the philosophy of do-ocracy: project participants who gain experience and knowledge through sustained community contributions and have demonstrated adherence to core principles of inclusion and consensus-building will be entrusted with increasing levels of authority. This peaks with the Coordination Committee, which has relatively broad authority but seeks to exercise it as rarely as possible by working towards consensus. This is because at its core, the Project is both by and for its community, and therefore the community is the final source of authority and direction.

Detailed Description

The Governance Charter is described in this section. The initial version is the outcome of several months of discussion by the Astropy Governance Working Group, which aimed to both codify existing informal governance rules as well as update them with new ideas that are consistent with the philosophy of and vision for the Astropy project.

Ultimate Authority: The Astropy Community

The Astropy Project derives its authority from the whole community - developers, users, and even potential participants in the broader astronomical and scientific software community. All have a vested interest in the success of the Project, so all governance in the end belongs to this community in its entirety. The governance Charter described below provides levels of delegation of that authority, particularly to the `Voting Members`_ and the Coordination Committee.

The Coordination Committee

Composition

The Coordination Committee is a committee that is composed of five members (this number was decided by vote at the same time as the first Coordination Committee election). The Ombudsperson (described in Section 4) and the Coordination Committee will work to maintain this composition following the processes laid out in this Charter.

Role

The Coordination Committee’s role is to facilitate consensus in the Project and coordinate Project-spanning efforts. As such, the Coordination Committee shall work to:

  • Maintain the quality and stability of the Astropy ecosystem of packages for the community,
  • Facilitate the development of resources that improve accessibility and understanding of the Astropy ecosystem,
  • Make contributing as accessible, inclusive, and sustainable as possible,
  • Oversee the financial and legal status of the project,
  • Lead and oversee the decision-making process for APEs and other community decisions,
  • Seek consensus among the Astropy community, particularly before acting in a formal capacity,
  • Act as the decision-making body where all other methods for achieving consensus have failed,
  • Operate openly and provide transparency and opportunity for community input into its activities,
  • Act as a point of contact with other organizations.

Responsibilities and Authority

The Coordination Committee has broad authority to make decisions about the Project. For example, they can:

  • Accept or reject APEs and updates to APEs (except this one - see below),
  • Enforce or update the Project's code of conduct,
  • Manage any project assets (including financial and physical assets),
  • Delegate parts of their authority to other subcommittees or processes.

However, they cannot modify the Governance of the Project (i.e., this document), except during the initial adoption of this Charter as specified herein.

While the Coordination Committee has broad authority, it has the responsibility to work towards consensus whenever practical. The Coordination Committee should look for ways to use its authority as little as possible, striving to involve the community in decisions whenever possible, and delegating responsibilities.

When delegating its authority by creating roles or making appointments, the Coordination Committee must solicit community feedback for no less than two weeks.

Making Decisions

To use its authority, the Coordination Committee must first attempt to reach a consensus. If a consensus cannot be reached, the Committee votes. Every Coordination Committee member must either vote or explicitly abstain. Members with a conflict of interest on a particular vote must abstain. The final decision regarding what constitutes a conflict of interest is determined by the Ombudsperson in accordance with the conflict of interest policy. Passing decisions require a strict majority of non-abstaining Coordination Committee members.

Whenever possible, the Coordination Committee's deliberations shall be held in public in a manner that permits discussion and comments from the community. Final decisions made by the Coordination Committee will be published in a publicly visible location.

Electing the Coordination Committee

A Coordination Committee election is held annually to fill any vacant seats. Notice of the election must be posted via the Project’s standard communication channels for users, contributors and voting members, at least one month before the voting phase begins. The election consists of two phases, each lasting at least two weeks:

  • Phase 1, Nominations: Candidates will be nominated and confirm their interest in serving. Candidates can be nominated by anyone, including themselves, and do not have to be `Voting Members`_ to be nominated. Candidates should provide a brief statement in support of their candidacy, these statements should be made public as they are received during the nominations period.
  • Phase 2, Voting: Each Voting Member can vote for zero or more of the candidates, up to the number of candidates. Voting is performed anonymously. Candidates who receive votes from a majority of the voting members participating in the election are ranked by the total number of votes they receive. If a tie occurs, it may be resolved by mutual agreement among the candidates, or else the winner will be chosen at random.

The election process is managed by a Returns Officer nominated by the outgoing Coordination Committee, although the process (specific choice of website, etc) can be set up by the Coordination Committee or their delegates. For the initial election, the Returns Officer will be nominated by the NumFOCUS Executive Officer. Elections will be carried out every year, provided that at least one of the Coordination Committee members has reached the end of their term or decided to step down.

Term

Each Coordination Committee member's term runs for three years from when the election results are finalized. After serving two full terms, a Coordination Committee member must step down for at least one year before being eligible to run again.

In the case of a vacancy partway through a term, a by-election will be held. The term of the newly-elected member runs for the remainder of the term of the member they are replacing.

For the initial election of Coordination Committee members, two seats will have terms of one year, two have a term of two years, and one has a term of three years to create a staggered set of replacements and provide continuity in the Coordination Committee. The candidate with the largest number of votes gets the longest available seat and the smallest the shortest, unless the new committee mutually agree to a different allocation.

Vacancies

Coordination Committee members may resign their position at any time.

Whenever there is a vacancy during the regular Coordination Committee term an election must take place.

If a Coordination Committee member cannot be contacted for longer than two months without prior notification (for example, due to planned leave), then the rest of the Coordination Committee may vote to trigger a by-election to replace them for the duration of their term.

Removing Members

In exceptional circumstances, the `Voting Members`_ may remove one or more sitting Coordination Committee members via a single vote.

Such a vote is triggered when a Voting Member calls for one publicly on an appropriate Project-wide communication channel, and two other active Voting Members second the proposal.

For Coordination Committee Member(s) to be removed, two-thirds of the active `Voting Members`_ (where the count includes the member being voted on if they are a voting member) must vote in support of the removal.

To avoid repeated removal votes, any individual Voting Member who has called for, or seconded such a vote, may not call for or second a vote to remove any Coordination Committee member for one year from the original motion.

The Ombudsperson

The Ombudsperson represents the interests of the Astropy community by providing an alternative point of contact for sensitive issues such as code of conduct violations and ethical concerns. Candidates for this project role are publicly nominated by the Coordination Committee, after which the Coordination Committee allows at least two weeks for comment, and then the nominee must be confirmed by two-thirds of the active Voting Members. The Ombudsperson cannot be a member of the Coordination Committee.

The Ombudsperson has no term limit but can resign at any time, or be removed by the same process as being confirmed: the Coordination Committee initiates, there is a two-week comment period, and two-thirds of the active `Voting Members`_ have to approve the removal. In the period between removal/resignation and new appointment, the Coordination Committee will temporarily take over the responsibilities of the Ombudsperson, should the need arise.

The role of the "Astropy Ombudsperson" with all duties and responsibilities can also be performed by a group of people from Astropy and different open source projects that pool resources.

The Voting Members

Role

The Voting Members are the group of trusted individuals who operate the Astropy Project on behalf of the community. They have authority over the Astropy Project’s technical resources, including the Astropy Project website itself, the Astropy GitHub organization and repositories, the issue tracker, and all Astropy communication channels. In practice, much of this authority is passed to the Coordination Committee via the voting processes described in this Charter.

They also assume many roles required to achieve the Project's goals, especially those that require a high level of trust. Collectively, they make decisions that shape the future of the Project.

Voting Members are expected to act as role models for the community and custodians of the Project, on behalf of the community and all those who rely on Astropy. They will act as representatives of the Astropy Project, where necessary, including in online discussions or at official Astropy events.

Responsibilities and Rights

Voting Members may and should participate in formal votes on:

  1. Adding new Voting Members
  2. Electing Coordination Committee members
  3. Appointment of the Ombudsperson
  4. Removing Voting Members
  5. Removing Coordination Committee members
  6. Removing the Ombudsperson
  7. Changes to this Charter
  8. Other matters for which the Coordination Committee believes a vote is appropriate.

The mechanism, timeline, and criteria for a decisive vote are specified in the respective sections of this document in the first seven cases and by the Coordination Committee in the last case.

Membership

Voting Members of the Astropy Project must demonstrate all of the following:

  • A good grasp of the philosophy of the Astropy Project
  • A solid track record of being constructive and helpful
  • Significant contributions to the Project's goals, in any form
  • A willingness to dedicate time to improving the Project
  • A willingness to recruit, train, and nominate new team members

Voting Membership acknowledges sustained and valuable efforts that align well with the philosophy and the goals of the Astropy Project.

Initial Membership

Anyone who satisfies any of the following criteria at the date of acceptance of this APE will be invited to be in the first group of Voting Members:

  • Has a named role in the project and has participated in an Astropy coordination meeting in the last two years,
  • Has a named role in the project and has participated at least four times in one or more of the following Astropy telecons in the last two years prior to the acceptance of this APE, based on available meeting minutes or confirmation from telecon organizers: core package developer telecons, co-working telecons, infrastructure telecons, proposal-related telecons, and Astropy Learn telecons,
  • Has commit rights to at least one repository in the Astropy GitHub organization which is either the core package, a coordinated package, an infrastructure package, or an Astropy Learn-related repository, and has actively used those commit rights in the last two years prior to the acceptance of this APE.

Add New Voting Members

Anyone can be nominated as a Voting Member by providing evidence of meeting the requirements laid out in the Membership section above. Both self-nominations and nominations by others are allowed. The Voting Members are expected to make their decisions based on the candidate’s adherence to the membership criteria, above. The name of the nominee will be known to Voting Members but will not be shared outside Voting Members and the Coordination Committee unless the nominee becomes a Voting Member.

The procedure for voting to add new Voting Members is:

  • The Coordination Committee and Ombudsperson receive each nomination, check that it is factually accurate, that the nominated person accepts the nomination, and that their record of community activity adheres to the Code of Conduct. If the candidate accepts, they should provide a brief statement in support of their nomination.
  • Once a nomination is accepted by the Coordination Committee, it will be put it to a vote among active Voting Members. Votes for adding voting members will be carried out at most twice a year to avoid too many elections. The returns officer for the voting member election can be a voting member, and those officer are entitled to vote in the election.
  • The voting dates will be announced with at least four weeks notice, and additional nominations will be accepted until two weeks before the election date. The voting will be open for at least two weeks. To successfully gain an appointment as a Voting Member, the nominee must receive at least four positive votes, as long as that constitutes a majority of those voting for that candidate.
  • The candidate will be informed promptly at the close of voting by a Coordination Committee member. If the vote is not affirmative, the Coordination Committee will provide feedback to the nominee.

At least one round of voting for adding voting members should be carried out before the initial election of the Coordination Committee.

Term and Active/Emeritus Status

Voting Members have no term limits. Voting Members who have stopped contributing are encouraged to declare themselves as emeritus. Those who have not made any significant contribution for two years may be asked to move themselves to the emeritus category by the Coordination Committee. If no response is received, the Coordination Committee may automatically change a Voting Member’s status to emeritus. To record and honor their contributions, emeritus Voting Members will continue to be listed. Emeritus Voting Members are not able to participate in votes. An emeritus member may request to be marked as active at any time if they feel they are making contributions.

Removing Voting Members

In exceptional circumstances, it may be necessary to remove someone from the Voting Members against their will. A vote must be held to remove a Voting Member. Such a vote is triggered by a motion made by an active Voting Member, which must be seconded by an additional Voting Member. The vote must conclude no more than three months after the motion is seconded. Removal requires approval by two-thirds of all active Voting Members at the time the motion is made. The motion, second, and vote will be by secret ballot. Removal under this provision will be reflected by updating the list of Voting Members. A member removed via this mechanism does not have emeritus status.

It may be necessary for the Ombudsperson and the Coordination Committee to remove a Voting Member for violations of the Code of Conduct. In this case, the Coordination Committee and Ombudsperson will work together to make this decision.

Approving and Modifying This Charter

This document was submitted following the process in APE 1, and the normal APE acceptance procedures will be followed. The Coordination Committee at the time of submitting this APE are all co-authors and therefore will not override any consensus of the community on accepting the final version.

Changes to this Charter after it has been accepted should follow the modification process in APE 1, with the exception that the final approval of the modification requires approval by a two-thirds vote of the `Voting Members`_ rather than approval by the Coordination Committee.

Attribution and Acknowledgments

The format and some of the structures outlined in this document are heavily inspired by the Python Language Governance structure (PEP 13), the YT Project's Team Infrastructure (YTEP 1776), and earlier less-formal descriptions of the Astropy governance.

Branches and Pull Requests

N/A

Implementation

This Charter enters into force upon this APE being accepted (see the last section of the description). At that time the GOVERNANCE.md file in the astropy repo should be updated to point to this document.

Backward Compatibility

This Charter supersedes previous un-codified governance understandings, but does not serve to invalidate the APE process or any other processes or policies that pre-date it and do not conflict.

Alternatives

The Astropy Governance Working Group discussed a wide range of alternatives on both the broad scope of Project governance and details of this Charter. It is not practical to summarize that in the text of this APE, but the Working Group's running notes provide an excellent starting point for this discussion.

Decision rationale

This APE was the product of several months of discussion by the Astropy Governance Working Group in early 2020, and was then put to the wider Astropy community for feedback in October 2020. Following extensive discussions in astropy/astropy-APEs#61, feedback was requested on a revised version at the end of January 2021 and consensus was deemed to have been reached by early February.

As specified above, this charter aims to be a living and updatable document - thus, once the initial voting membership is confirmed, any parts of the document can be discussed further and amended, and the present version is just meant to be a starting point.

The APE was formally accepted on 19th February 2021.