The signac project is a consensus-based, open source community project with the goal to develop software aiding in the management of data and the implementation and execution of workflows that operate on said data. Anyone with an interest in the project can join the community, contribute to the project design and participate in the decision making process. This document describes how that participation takes place and what roles community members may be able to fill and the responsibilities and privileges these roles imply. The project is defined by the collective of all contributors and the intellectual property created by that collective (typically managed in git repositories), but does not represent a legal entity in any other way. The project is affiliated with the 501(c)3 NumFOCUS Foundation, but does not have any special responsibilities as a result of that affiliation.
Roles and Responsibilities
Users are community members who make use of the project. They are the most important members of the community since without them the project would have no purpose. Anyone can be a user; there are no special requirements. The project encourages users to participate in the project and community as much as possible. User contributions enable the project team to ensure that they are satisfying the needs of those users. Common user activities include, but are not limited to:
- sharing the project with others (e.g. a link on a website and word-of-mouth awareness raising)
- informing developers of strengths and weaknesses from a (new) user perspective
- citing the project software when used in academic works
- providing moral support (a “thank you” goes a long way)
There are many ways that users can contribute to the project, described below.
Any community member can become a contributor, and contributions can take many forms. There is no expectation of long-term commitment to the project, no specific skill requirements, and no selection process, however all contributors must abide by the project’s Code of Conduct and each repository’s respective contributing guidelines. Ways to contribute include, but are not limited to:
- supporting new users (existing users are often the best people to support new users)
- reporting issues
- identifying requirements
- writing documentation
- providing graphics and web design
- providing code contributions
- assisting with project infrastructure
- attending development meetings
Contributors are asked to submit code changes via pull requests. Committers will review these contributions and help to prepare them for inclusion in a future release of the software. Contributors may be asked to serve as additional reviewers on other pull requests and may become a committer if desired (see below).
Committers are contributors who have shown that they are committed to the continued development of the project through ongoing engagement with the community. Committer roles are project-wide, i.e., for all repositories.
- may be assigned as the primary reviewer for a pull request and are permitted to merge it
- may triage and close issues
- are expected to be aware of the general strategic development of the project, e.g., by being active on the Slack or Gitter channels and/or by attending development meetings on a semi-regular basis
Potential committers must also possess the necessary technical expertise to evaluate code contributions, as well as a high level understanding of and alignment with the project’s objectives and strategy. New committers are identified by (self) nomination. The project maintainers will make a decision on whether to accept or reject the nomination by majority vote. The committer role may be revoked by the project maintainers by majority vote if warranted, for example due to prolonged inactivity.
The project maintainers manage the project. Their responsibilities include:
- administering the GitHub repositories
- triaging issues and pull requests
- scheduling and creating releases
- maintaining a project roadmap
- representing the project to the community
In addition, all project maintainers are expected to be available for discussions and decision-making processes on:
- the acceptance or rejection of nominations for committers and project maintainers
- the project’s strategic direction
Maintainers who are also committers may commit small changes (documentation updates, code comments, CI configuration changes) without a pull request.
Any community member who has shown exceptional commitment to the signac project and strong understanding of its overall strategy may be invited to become a project maintainer. New project maintainers are approved by the existing project maintainers by two-thirds vote. Any project maintainer may resign from this role at any point; a project maintainer may also be removed from their role by other project leads by two-thirds vote if circumstances require such a drastic step.
Administrators manage the infrastructure required for the continuity of the signac project. This includes, but is not limited to: the GitHub organization, the domain name, the Slack channel, social media accounts, and the website.
The signac project employs a rotating managers approach (inspired by numba) to keep everything running smoothly. At any given time, certain members of the project team are assigned to various roles required to sustain the forward progress of the project. In general, managers are selected from a pool consisting of all project maintainers and volunteer project committers (with one exception, see below). Manager roles rotate periodically in alphabetical order by last name, and each current manager is responsible for contacting the next person to occupy that position.
Unlike other positions, this manager position automatically rotates among all maintainers and all committers. The purpose of this role is to keep track of progress on open pull requests and issues. This role rotates on a weekly basis, starting every Monday. Concretely, this role requires:
- Contacting authors and reviewers of stalled pull requests to check on progress.
- Tagging new issues.
- Bringing critical issues to the attention of the project team for assignment.
This role rotates on a monthly basis, starting on the first of every month. It encompasses the following tasks:
- Scheduling and setting the agenda for the biweekly signac meetings (and canceling if necessary).
- Maintaining the signac social media accounts.
- Preparing any project updates for the NumFOCUS newsletter.
Directory of roles The project maintainers, committers, and administrators are listed here.
The committers and contributors to the project are listed individually for each repository in the respective
This work is a derivative of the Meritocratic Governance Model. This work is licensed under Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License.