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 commit small changes (documentation updates, code comments, CI configuration changes) without a pull request
- 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
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.
Directory of roles The project leads and administrators are listed here. The committers and contributors to the project are listed individually for each repository in the respective contributors.yaml file.
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.