|
| 1 | +# Project Technical Steering Committee (PTSC) Charter |
| 2 | + |
| 3 | +## Section 1. Guiding Principle |
| 4 | + |
| 5 | +The WebAssembly Micro Runtime (WAMR) project is part of the |
| 6 | + |
| 7 | +Bytecode Alliance (BA) which operates transparently, openly, |
| 8 | + |
| 9 | +collaboratively, and ethically. Project proposals, timelines, and status |
| 10 | + |
| 11 | +must not merely be open, but also easily visible to outsiders. |
| 12 | + |
| 13 | +## Section 2. Project Governance under Bytecode Alliance |
| 14 | + |
| 15 | +Technical leadership for the WAMR projects within the Bytecode Alliance |
| 16 | + |
| 17 | +is delegated to the projects through the project charter. Though the BA TSC |
| 18 | + |
| 19 | +will not interfere with day-to-day discussions, votes or meetings of the PTSC, |
| 20 | + |
| 21 | +the BA TSC may request additional amendments to the PTSC charter when |
| 22 | + |
| 23 | +there is misalignment between the project charter and the BA mission and values. |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +The PTSC structure described in this document may be overhauled as part of |
| 28 | + |
| 29 | +establishing a BA TSC in order to adhere to constraints or requirements that |
| 30 | + |
| 31 | +TSC will impose on project-level governance. |
| 32 | + |
| 33 | +## Section 3. Establishment of the PTSC |
| 34 | + |
| 35 | +PTSC memberships are not time-limited. There is no maximum size of the PTSC. |
| 36 | +The size is expected to vary in order to ensure adequate coverage of important |
| 37 | +areas of expertise, balanced with the ability to make decisions efficiently. |
| 38 | +The PTSC must have at least four members. |
| 39 | + |
| 40 | +There is no specific set of requirements or qualifications for PTSC |
| 41 | +membership beyond these rules. The PTSC may add additional members to the |
| 42 | +PTSC by a standard PTSC motion and vote. A PTSC member may be removed from the |
| 43 | +PTSC by voluntary resignation, by a standard PTSC motion, or in accordance to the |
| 44 | +participation rules described below. |
| 45 | + |
| 46 | +Changes to PTSC membership should be posted in the agenda, and may be suggested |
| 47 | +as any other agenda item. |
| 48 | + |
| 49 | +The PTSC may, at its discretion, invite any number of non-voting observers to |
| 50 | +participate in the public portion of PTSC discussions and meetings. |
| 51 | + |
| 52 | +The PTSC shall meet regularly using tools that enable participation by the |
| 53 | +community (e.g. weekly on a Zulip channel, or through any other |
| 54 | +appropriate means selected by the PTSC ). The meeting shall be directed by |
| 55 | +the PTSC Chairperson. Responsibility for directing individual meetings may be |
| 56 | +delegated by the PTSC Chairperson to any other PTSC member. Minutes or an |
| 57 | +appropriate recording shall be taken and made available to the community |
| 58 | +through accessible public postings. |
| 59 | + |
| 60 | +PTSC members are expected to regularly participate in PTSC activities. |
| 61 | + |
| 62 | +In the case where an individual PTSC member -- within any three month period -- |
| 63 | +attends fewer than 25% of the regularly scheduled meetings, does not |
| 64 | +participate in PTSC discussions, *and* does not participate in PTSC votes, the |
| 65 | +member shall be automatically removed from the PTSC. The member may be invited |
| 66 | +to continue attending PTSC meetings as an observer. |
| 67 | + |
| 68 | +## Section 4. Responsibilities of the PTSC |
| 69 | + |
| 70 | +Subject to such policies as may be set by the BA TSC, the WAMR PTSC is |
| 71 | +responsible for all technical development within the WAMR project, |
| 72 | +including: |
| 73 | + |
| 74 | +* Setting release dates. |
| 75 | +* Release quality standards. |
| 76 | +* Technical direction. |
| 77 | +* Project governance and process. |
| 78 | +* GitHub repository hosting. |
| 79 | +* Conduct guidelines. |
| 80 | +* Maintaining the list of additional Collaborators. |
| 81 | +* Development process and any coding standards. |
| 82 | +* Mediating technical conflicts between Collaborators or Foundation |
| 83 | +projects. |
| 84 | + |
| 85 | +The PTSC will define WAMR project’s release vehicles. |
| 86 | + |
| 87 | +## Section 5. WAMR Project Operations |
| 88 | + |
| 89 | +The PTSC will establish and maintain a development process for the WAMR |
| 90 | +project. The development process will establish guidelines |
| 91 | +for how the developers and community will operate. It will, for example, |
| 92 | +establish appropriate timelines for PTSC review (e.g. agenda items must be |
| 93 | +published at least a certain number of hours in advance of a PTSC |
| 94 | +meeting). |
| 95 | + |
| 96 | +The PTSC and entire technical community will follow any processes as may |
| 97 | +be specified by the Bytecode Alliance Board relating to the intake and license compliance |
| 98 | +review of contributions, including the Bytecode Alliance IP Policy. |
| 99 | + |
| 100 | +## Section 6. Elections |
| 101 | + |
| 102 | +Leadership roles in the WAMR project will be peer elected |
| 103 | +representatives of the community. |
| 104 | + |
| 105 | +For election of persons (such as the PTSC Chairperson), a multiple-candidate |
| 106 | +method should be used, such as: |
| 107 | + |
| 108 | +* [Condorcet][] or |
| 109 | +* [Single Transferable Vote][] |
| 110 | + |
| 111 | +Multiple-candidate methods may be reduced to simple election by plurality |
| 112 | +when there are only two candidates for one position to be filled. No |
| 113 | +election is required if there is only one candidate and no objections to |
| 114 | +the candidate's election. Elections shall be done within the projects by |
| 115 | +the Collaborators active in the project. |
| 116 | + |
| 117 | +The PTSC will elect from amongst voting PTSC members a PTSC Chairperson to |
| 118 | +work on building an agenda for PTSC meetings. The PTSC shall hold annual |
| 119 | + |
| 120 | +elections to select a PTSC Chairperson; there are no limits on the number |
| 121 | +of terms a PTSC Chairperson may serve. |
| 122 | + |
| 123 | +## Section 7. Voting |
| 124 | + |
| 125 | +For internal project decisions, Collaborators shall operate under Lazy |
| 126 | +Consensus. The PTSC shall establish appropriate guidelines for |
| 127 | +implementing Lazy Consensus (e.g. expected notification and review time |
| 128 | +periods) within the development process. |
| 129 | + |
| 130 | +The PTSC follows a [Consensus Seeking][] decision making model. When an agenda |
| 131 | +item has appeared to reach a consensus the moderator will ask "Does anyone |
| 132 | +object?" as a final call for dissent from the consensus. |
| 133 | + |
| 134 | +If an agenda item cannot reach a consensus a PTSC member can call for |
| 135 | +either a closing vote or a vote to table the issue to the next meeting. |
| 136 | +The call for a vote must be seconded by a majority of the PTSC or else the |
| 137 | +discussion will continue. |
| 138 | + |
| 139 | +For all votes, a simple majority of all PTSC members for, or against, the issue |
| 140 | +wins. A PTSC member may choose to participate in any vote through abstention. |
| 141 | + |
| 142 | +## Section 8. Project Roles |
| 143 | + |
| 144 | +The WAMR git repository is maintained by the PTSC and |
| 145 | +additional Collaborators who are added by the PTSC on an ongoing basis. |
| 146 | + |
| 147 | +Individuals making significant and valuable contributions, |
| 148 | +“Contributor(s)”, are made Collaborators and given commit-access to the |
| 149 | +project. These individuals are identified by the PTSC and their addition |
| 150 | +as Collaborators is discussed during a PTSC meeting. Modifications of the |
| 151 | +contents of the git repository are made on a collaborative basis as defined in |
| 152 | +the development process. |
| 153 | + |
| 154 | +Collaborators may opt to elevate significant or controversial |
| 155 | +modifications, or modifications that have not found consensus to the PTSC |
| 156 | +for discussion by assigning the `tsc-agenda` tag to a pull request or |
| 157 | +issue. The PTSC should serve as the final arbiter where required. The PTSC |
| 158 | +will maintain and publish a list of current Collaborators, as |
| 159 | +well as a development process guide for Collaborators and Contributors |
| 160 | +looking to participate in the development effort. |
| 161 | + |
| 162 | +## Section 9. Definitions |
| 163 | + |
| 164 | +* **Contributors**: contribute code or other artifacts, but do not have |
| 165 | +the right to commit to the code base. Contributors work with the |
| 166 | +project’s Collaborators to have code committed to the code base. A |
| 167 | +Contributor may be promoted to a Collaborator by the PTSC. Contributors should |
| 168 | +rarely be encumbered by the PTSC. |
| 169 | + |
| 170 | +* **Project**: a technical collaboration effort, e.g. a subsystem, that |
| 171 | +is organized through the project creation process and approved by the |
| 172 | +PTSC. |
| 173 | + |
| 174 | +[Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making |
| 175 | +[Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method |
| 176 | +[Single Transferable Vote]: https://en.wikipedia.org/wiki/Single_transferable_vote |
| 177 | + |
0 commit comments