Skip to content

Proposed New Bylaws

rhc54 edited this page Sep 16, 2016 · 8 revisions

Open MPI administrative rules

August 31, 2016.

Revision 1.6

Open MPI Membership

Participation in the Open MPI project is both formal and informal.

  1. 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.

  2. 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 group 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 group as well as the resources currently managed by the group and its Members.
  • Allowed to attend all group meetings and representation on the ASC.
  • Public acknowledgement for the entity as being a Member of the Open MPI project.

Membership votes occur on a quarterly basis:

  • 2nd week of January
  • 2nd week of April
  • 2nd week of July
  • 2nd week of October

Each calendar year a review of all current Members will take place. Any Member of the group 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 may request a return to active status at any time, subject to approval of the current active Members.

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 group 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:

  1. On all issues requiring a group 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.

  2. 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.

  3. A periodic administrative voting cycle will be held quarterly. The purpose of this voting cycle is to approve new Members to the Open MPI group, as well as vote on any additional administrative issues. A voting agenda should be distributed to all current Members of the group in advance.

  4. 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.

Release Manager

  • 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)

Committer

  • Individual authorized to make commits to the trunk or release branch
  • Each Member organization may designate one or more individuals for this role

Meeting Organizer

  • 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.

License

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.

Contributor's Declaration

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:

  1. 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
  2. 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
  3. The contribution was provided directly to me by some other person who certified (1) or (2) and I have not modified it.
  4. 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.

Clone this wiki locally