Open MPI administrative rules
October 13, 2017.
Open MPI Membership
Participation in the Open MPI project is both formal and informal.
- Informal participation is encouraged by working with the Open MPI team in an ad hoc manner, such as (but not limited to) engaging in discussions on the mailing lists, reporting testing results, providing feature requests and bug reports, filing pull requests for code contributions, etc. Informal participants are not granted commit privileges to the Open MPI code base repositories, and do not have voting privileges on administrative matters.
- Individuals or organizations can request formal participation in the Open MPI Community as Members. All new Members must be nominated by a current Member of the Open MPI community and approved by the Administrative Steering Committee (ASC) according to the voting rules described below. Membership confers the following privileges:
- The possibility of having commit privileges to the Open MPI code base repositories.
- Directly influence the administrative and technical direction of the project.
- Each Member will have access to other Members within the community as well as the resources currently managed by the community and its Members.
- Allowed to attend all community meetings and representation on the ASC.
- Public acknowledgement for the entity as being a Member of the Open MPI project.
- Individuals or organizations can also request formal association with the Open MPI community as Partners. Partners generally contribute resources and services to the community, but do not contribute code or participate in community administration. Examples include providing mail server support for Open MPI mailing lists, hardware platforms for nightly regression tests, and software licenses. Partners must be nominated by a current Member of the Open MPI community and approved by the Administrative Steering Committee (ASC) according to the voting rules described below. Partner contributions are acknowledged on the Open MPI web site.
Membership votes occur on a quarterly basis:
- 2nd week of January
- 2nd week of April
- 2nd week of July
- 2nd week of October
Partnership votes are conducted on an as-needed basis.
Each calendar year a review of all current Members and Partners will take place. Any Member of the community not actively participating in the technical and administrative activities of the community can be moved to "inactive" status, or removed from membership due to prolonged inactive status, by vote of the ASC. For purposes of such a vote, Members proposed for "inactive" status will not be counted against the quorum requirement. A move to "inactive" retains membership status, but indicates that the Member will no longer be counted towards quorum in votes. Members can request a move to "inactive" status if they intend to enter into a period of inactivity. Members on inactive status or removed from membership due to inactivity may request a return to active status at any time, subject to approval of the ASC per the voting rules described below and conducted according to the Membership voting schedule shown above.
Any Partner of the community who is no longer providing services to the community can be moved to "inactive" status (if the interruption in service is considered temporary), or removed from partnership. Partners on inactive status or removed from partnership due to inactivity may request a return to active status at any time, subject to approval of the ASC per the voting rules described below and conducted on an as-needed basis.
Individual members who subsequently join Member organizations will be absorbed into the larger organization's membership. This likewise applies to individuals who are affiliated with an existing Member organization (e.g., as a contractor), but are not direct employees of that organization. Individuals requesting membership that are affiliated with multiple Open MPI members can be granted individual Member status by vote of the ASC. This is intended to preclude undue influence in voting procedures by an organization with multiple individual members.
A review is conducted of all individual contributors who have commit access in the Open MPI source code repositories to identify and remove those who are no longer active in the project. These annual reviews occur in the 2nd week of July.
All contributors (formal or informal) filing pull requests or committing to an Open MPI code repository are required to sign the contribution with the phrase "Signed-off-by: <name> and <either email or Github ID>" to indicate that they have read and understand the Contributor's Declaration (described below), and agree to its terms. Contributions not meeting this requirement will not be accepted into an Open MPI code base repository.
Administrative Steering Committee (ASC)
The Administrative Steering Committee shall consist of one representative from each Member organization. The ASC shall perform the following functions:
- Define the purpose of the Open MPI organization.
- Plan release timelines based on available resources, target features, and target goals of the Member organizations.
- Vote on all issues requiring community consensus, one vote per Member organization. In addition to voting on Membership, the ASC can be requested to vote on any issue submitted by a Member for consideration.
- Assemble technical steering committees.
- Nominate and approve the appointment of individuals to fill the roles of Release Manager (per release), Gatekeeper (per release), and Meeting Organizer.
General voting rules
The philosophy and goal of the Open MPI community is to reach consensus on all, if not most, issues. In the event that full consensus cannot be reached, the ASC will use the following rules:
On all issues requiring a community consensus all active Open MPI Members eligible to vote (see Rule 3 below) will receive one vote. All votes are required to pass with 2/3 majority. A quorum (>50%) of Members must vote. Abstentions will not be counted in the total votes when calculating whether there is a 2/3 majority.
A Member may send a proxy vote, but each physical person can only cast one vote. This prevents a Member for voting on behalf of its own entity and acting as a proxy for another member.
A periodic administrative voting cycle will be held quarterly. The purpose of this voting cycle is to approve new Members to the Open MPI community, as well as vote on any additional administrative issues. A voting agenda should be distributed to all current Members of the community in advance.
Urgent voting issues will be given a reasonable amount of time for voting to allow all Members unable to attend the voting session to submit a vote not to exceed a week after the in-person voting session. The amount of time will be set based on the urgency of the issue. Voting will be allowed at a physical meeting, via email, or via phone.
Open MPI Project Roles
The following roles must be assigned and agreed upon by the administrative steering committee: Release Manager and Meeting Organizer. The role of Committer will be delegated by each Member organization. In most cases, it may be preferable that these assignments be shared among two or more individuals to ensure progress on the project and release. The responsibilities of each role are defined below.
- One or more Release Managers are assigned per release series of the Open MPI software. Coordination and scheduling of releases in the series are delegated to the Release Manager(s) by the ASC, subject to guidance regarding needs on the part of Members.
- Document and publish the entire process (start to end), including delegation
- For each release, lead the establishment of release criteria
- On a weekly basis, track progress/status (bugs, performance, etc.)
- Develop a schedule (i.e., a backwards plan from release)
- Enforce adherence to schedule – e.g., what does and does not make the release train
- Arbitrating severity, impact, cost, risk (e.g., which bugs to fix)
- Individual authorized to make commits to the trunk or release branch
- Each Member organization may designate one or more individuals for this role
- Makes arrangements for teleconference dial-in number
- Sets agenda topics in accordance with the schedule defined by the Release Manager
- Solicits agenda items for weekly teleconferences
- Chairs the meeting
Technical Steering Committees
The Administrative Steering Committee has the right to assemble and authorize Technical Steering Committees to perform technical functions as necessary as well as to disassemble these committees when they are no longer necessary. These Technical Steering Committees may be general and permanent, e.g., architectural review committee, or specific and temporary, e.g., a Supercomputing organizing committee or per release technical team.
Open MPI is distributed under the New BSD license, listed below. Note that the phrase "above copyright notice" in the license text refers to the current list of copyrights that appear above the license text in the license file of the Open MPI main source code repository.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
The copyright holders provide no reassurances that the source code provided does not infringe any patent, copyright, or any other intellectual property rights of third parties. The copyright holders disclaim any liability to any recipient for claims brought against recipient by any third party for infringement of that parties intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Open MPI has adopted requirements based on the signed-off-by process as described in Section 11 of the Linux kernel document on Submitting Patches. Each proposed contribution to the Open MPI code base must include the text "Signed-off-by:" followed by the contributor's name and either email address or Github ID. This is a developer's certification that he or she has the right to submit the patch for inclusion into the project, and indicates agreement to the Developer's Certificate of Origin:
"By making a contribution to this project, I certify that:
- The contribution was created in whole or in part by me and I have the right to submit it under the Open MPI open source license; or
- The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the Open MPI open source license (unless I am permitted to submit under a different license); or
- The contribution was provided directly to me by some other person who certified (1) or (2) and I have not modified it.
- I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project and the open source license(s) involved."
Proposed contributions failing to include the "Signed-off-by:" certification will not be accepted into any Open MPI code repository. The community reserves the right to revert any commit inadvertently made without the required certification.