Changes between Version 3 and Version 4 of wiki:BOINC_Governance_Document_v2


Ignore:
Timestamp:
Sep 1, 2017, 2:32:45 PM (7 years ago)
Author:
Kevin Reed
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wiki:BOINC_Governance_Document_v2

    v3 v4  
    2828 * “Volunteers” run the BOINC client software, contributing processing power and storage capacity to computing projects.
    2929 * “Project admins” operate BOINC-based computing projects (academic science projects, hobbyist projects, commercial projects).  They run the project’s servers, maintain its web site, and develop and deploy its applications.
    30  * “Add-on developers” create and operate systems that, although not part of BOINC, interact with it through its various APIs.  Examples include: Account managers (such as BAM! And GridRepublic) Statistics web sites (such as BoincStats and BOINC All-Project Stats) GUIs such as BOINCTasks Branded versions of BOINC (such as HTC Power to Give, Samsung Power Sleep, and Intel Progress Thru Processors)
     30 * “Add-on developers” create and operate systems that, although not part of BOINC, interact with it through its various APIs.  Examples include: Account managers (such as BAM! And !GridRepublic) Statistics web sites (such as !BoincStats and BOINC All-Project Stats) GUIs such as BOINCTasks Branded versions of BOINC (such as HTC Power to Give, Samsung Power Sleep, and Intel Progress Thru Processors)
    3131 * Leaders of BOINC teams.
    3232
     
    116116
    117117= 3. Communication channels =
    118 The project will provide communication channels for various purposes: 
    119 
    120  * PMC public email list, used for: 
    121    * Requests to be a submitter 
    122    * Requests to be a PMC member 
    123    * Project-level discussion 
    124  * PMC private email list, used for sensitive issues, such as discussion of potential new committers, or legal matters that can’t be discussed in public.  It is not used for project management or planning 
    125  * Issue tracking system, for bugs and development requests (https://github.com/BOINC/boinc/issues) 
    126  * Volunteer message boards, for support requests and responses 
    127  * Project admin email list, for announcements and discussion related to the BOINC server software and other issues related to BOINC-based computing projects 
    128  * Email lists for specific contribution areas, such as software development, testing, and translations 
     118The project will provide communication channels for various purposes:
     119
     120 * PMC public email list, used for:
     121   * Requests to be a submitter
     122   * Requests to be a PMC member
     123   * Project-level discussion
     124 * PMC private email list, used for sensitive issues, such as discussion of potential new committers, or legal matters that can’t be discussed in public.  It is not used for project management or planning
     125 * Issue tracking system, for bugs and development requests (https://github.com/BOINC/boinc/issues)
     126 * Volunteer message boards, for support requests and responses
     127 * Project admin email list, for announcements and discussion related to the BOINC server software and other issues related to BOINC-based computing projects
     128 * Email lists for specific contribution areas, such as software development, testing, and translations
    129129
    130130Except for the PMC private email list, all of these channels will be publicly readable and writable.
    131131
    132132= 4. Contribution processes =
    133 Anyone can contribute to BOINC.  There are multiple ways to contribute to BOINC: 
    134 
    135  * Help other users by answering questions on the BOINC forums (https://boinc.berkeley.edu/dev/forum_index.php), project forums (see project list: https://boinc.berkeley.edu/projects.php) or on the BOINC mailing lists (https://boinc.berkeley.edu/trac/wiki/EmailLists) 
    136  * Add or maintain documentation to the BOINC wikis 
    137  * Add or maintaining translations of BOINC 
    138  * Participate in the Alpha testing of software releases (https://boinc.berkeley.edu/alpha/) 
    139  * Make a technical contribution 
    140 
    141 If you need help getting started, then please visit https://boinc.berkeley.edu/dev/forum_index.php and post in the "How to Contribute" forum. 
    142 
    143 == 4.1 Technical Contributions  ==
    144 The process of making technical or code contributions is the same for everyone, regardless of whether they are a contributor, committer or PMC member.  You can contribute by doing the following: 
    145 
    146  * Read the BOINC developer information (https://boinc.berkeley.edu/trac/wiki/SoftwareDevelopment) to learn about the BOINC system 
    147  * Find something that needs to be implemented in BOINC: 
    148    * Review the Project (https://github.com/BOINC/boinc/projects) associated with the area of BOINC in which you want to contribute 
    149    * Issues that have been reviewed and are ready for implementation are listed under Longterm or TODO 
    150    * Issues with a higher priority for implementation are listed under TODO 
    151  * Follow the software development process that BOINC uses (See [wiki:Development_Workflow]) 
    152 
    153 If you are reporting a bug or requesting a feature, make sure you review the [wiki:Development_Workflow] before you submit it.
     133Anyone can contribute to BOINC.  There are multiple ways to contribute to BOINC:
     134
     135 * Help other users by answering questions on the BOINC forums (https://boinc.berkeley.edu/dev/forum_index.php), project forums (see project list: https://boinc.berkeley.edu/projects.php) or on the BOINC mailing lists (https://boinc.berkeley.edu/trac/wiki/EmailLists)
     136 * Add or maintain documentation to the BOINC wikis
     137 * Add or maintaining translations of BOINC
     138 * Participate in the Alpha testing of software releases (https://boinc.berkeley.edu/alpha/)
     139 * Make a technical contribution
     140
     141If you need help getting started, then please visit https://boinc.berkeley.edu/dev/forum_index.php and post in the "How to Contribute" forum.
     142
     143== 4.1 Technical Contributions ==
     144The process of making technical or code contributions is the same for everyone, regardless of whether they are a contributor, committer or PMC member.  You can contribute by doing the following:
     145
     146 * Read the BOINC developer information (https://boinc.berkeley.edu/trac/wiki/SoftwareDevelopment) to learn about the BOINC system
     147 * Find something that needs to be implemented in BOINC:
     148   * Review the Project (https://github.com/BOINC/boinc/projects) associated with the area of BOINC in which you want to contribute
     149   * Issues that have been reviewed and are ready for implementation are listed under Longterm or TODO
     150   * Issues with a higher priority for implementation are listed under TODO
     151 * Follow the software development process that BOINC uses (See [wiki:Development_Workflow])
     152
     153If you are reporting a bug or requesting a feature, make sure you review the [wiki:Development_Workflow] before you submit it.
    154154
    155155= 5. Decision processes =
    156 == 5.1 Voting Processes  ==
    157 Because one of the fundamental aspects of accomplishing things within the BOINC framework is doing so by consensus, it is necessary to determine whether consensus has been reached. This is done by voting. 
    158 
    159 There are a few types of items that require a vote: 
    160 
    161  * Whether or not to fix a bug or implement a feature request (documented and voted on as an issue on github) 
    162  * The design of a proposed feature or bug fix (documented and voted on within the relevant issue on github) 
    163  * A change in code or configuration to the system (documented and voted on as a pull request on github) 
    164  * General availability of stable releases (documented and voted on in the boinc_alpha mailing list) 
    165  * Procedural and other issues 
    166    * Other committer votes not otherwise identified above will be voted on in the boinc_dev mailing list 
    167    * Other PMC votes not otherwise identified above will be voted on in the boinc_adm or private boinc_pmc mailing lists as deemed appropriate by the PMC Chair. 
    168 
    169 Votes on design reviews, pull requests, and general availability of a stable release shall use the consensus voting process. 
    170 
    171  Procedural and other issues shall always follow the majority voting process. 
    172 
    173 === 5.1.1 Consensus Voting  ===
    174 Consensus voting consists of a 7 day review period. During this time anyone can review and discuss the item.  At the end of the 7 day period, if there is at least one "Yes" vote for an item (apart from the vote of the person who created the item) and zero "No" votes, then the vote shall be deemed as having passed. 
    175 
    176 A vote of "No" shall not be valid unless it is accompanied by a detailed explanation of the objection to the item. It is preferable to suggest an alternative implementation if possible. 
    177 
    178 If discussion cannot remove the concerns that resulted in the "No" vote, then the vote shall be deemed as having failed. 
    179 
    180 If the vote fails, but the original proposer of the item still believes that the item is worth pursuing, they can appeal to the PMC. The PMC shall consider the appeal at their next regularly scheduled meeting and will use Majority Voting to determine the outcome. 
    181 
    182 === 5.1.2 Majority Voting  ===
    183 Majority voting requires that at least 2/3rds of eligible voters cast a vote and, of those who cast a vote, a majority must approve the item. 
    184 
    185 == 5.2 Committer decisions  ==
     156== 5.1 Voting Processes ==
     157Because one of the fundamental aspects of accomplishing things within the BOINC framework is doing so by consensus, it is necessary to determine whether consensus has been reached. This is done by voting.
     158
     159There are a few types of items that require a vote:
     160
     161 * Whether or not to fix a bug or implement a feature request (documented and voted on as an issue on github)
     162 * The design of a proposed feature or bug fix (documented and voted on within the relevant issue on github)
     163 * A change in code or configuration to the system (documented and voted on as a pull request on github)
     164 * General availability of stable releases (documented and voted on in the boinc_alpha mailing list)
     165 * Procedural and other issues
     166   * Other committer votes not otherwise identified above will be voted on in the boinc_dev mailing list
     167   * Other PMC votes not otherwise identified above will be voted on in the boinc_adm or private boinc_pmc mailing lists as deemed appropriate by the PMC Chair.
     168
     169Votes on design reviews, pull requests, and general availability of a stable release shall use the consensus voting process.
     170
     171  Procedural and other issues shall always follow the majority voting process.
     172
     173=== 5.1.1 Consensus Voting ===
     174Consensus voting consists of a 7 day review period. During this time anyone can review and discuss the item.  At the end of the 7 day period, if there is at least one "Yes" vote for an item (apart from the vote of the person who created the item) and zero "No" votes, then the vote shall be deemed as having passed.
     175
     176A vote of "No" shall not be valid unless it is accompanied by a detailed explanation of the objection to the item. It is preferable to suggest an alternative implementation if possible.
     177
     178If discussion cannot remove the concerns that resulted in the "No" vote, then the vote shall be deemed as having failed.
     179
     180If the vote fails, but the original proposer of the item still believes that the item is worth pursuing, they can appeal to the PMC. The PMC shall consider the appeal at their next regularly scheduled meeting and will use Majority Voting to determine the outcome.
     181
     182=== 5.1.2 Majority Voting ===
     183Majority voting requires that at least 2/3rds of eligible voters cast a vote and, of those who cast a vote, a majority must approve the item.
     184
     185== 5.2 Committer decisions ==
    186186Committers can vote on issues surrounding the technical infrastructure of the project and the code base itself.  This includes voting to determine if a reported bug, feature request, proposed design, or pull request should be accepted.  Committers are encouraged to review and participate in the discussion of any of these items, but they are also expected to know when it is advisable to get help from other committers who are stronger in the technology involved or have more experience in the area of application under consideration.  Committers are expected to understand the Development Workflow and Client Release Process and their associated guidelines before voting to approve.
    187187
    188 Committers are expected to subscribe to notifications from github in order to be aware of proposals under consideration.  Committers should make a reasonable attempt to respond quickly if they are personally asked to review an item.  Since most decisions that committers are involved in will use consensus voting, it is important for them to try to remain aware of proposed items. 
    189 
    190 == 5.3 PMC decisions  ==
    191 Certain specific types of decisions by the PMC must be made by a special voting procedure (see below). 
    192 
    193 === 5.3.1 Decisions where special voting procedures are mandatory  ===
    194 Decisions of the following types must be made by a special vote of the PMC: 
    195 
    196  * Intellectual property issues, e.g. those involving copyright and licensing of BOINC code 
    197  * Other legal and financial decisions 
    198  * PMC membership 
    199  * Selection of the PMC chair 
    200  * Changes to the project governance structure (i.e. changes to this document) 
    201 
    202 Votes can be called by any PMC member.  The special voting process is: 
    203 
    204  * A vote is announced on the PMC public list, phrasing the issue as a yes/no decision 
    205  * Discussion of the issue (by the entire community) takes place on the PMC public list.  Sensitive discussion among PC members uses the PMC private list 
    206  * PMC members cast their votes publicly (by email on the PMC public list) 
    207  * Votes on these issues are decided by agreement of at least 75% of responding voters.  The vote will be final when there is agreement of at least 75% of PMC members, or when 14 days have passed since the vote was called. 
    208  * If there is not agreement of at least 75% of responding voters, no action is taken on the issue 
    209 
    210 === 5.3.2 Other voting decisions  ===
    211 
    212 
    213 For all other types of decisions that require a PMC vote, the PMC will start decision making using the consensus voting with PMC members voting. If consensus voting fails to reach agreement, the chair or the person who called the vote can request that a majority vote occurs to determine the outcome. 
     188Committers are expected to subscribe to notifications from github in order to be aware of proposals under consideration.  Committers should make a reasonable attempt to respond quickly if they are personally asked to review an item.  Since most decisions that committers are involved in will use consensus voting, it is important for them to try to remain aware of proposed items.
     189
     190== 5.3 PMC decisions ==
     191Certain specific types of decisions by the PMC must be made by a special voting procedure (see below).
     192
     193=== 5.3.1 Decisions where special voting procedures are mandatory ===
     194Decisions of the following types must be made by a special vote of the PMC:
     195
     196 * Intellectual property issues, e.g. those involving copyright and licensing of BOINC code
     197 * Other legal and financial decisions
     198 * PMC membership
     199 * Selection of the PMC chair
     200 * Changes to the project governance structure (i.e. changes to this document)
     201
     202Votes can be called by any PMC member.  The special voting process is:
     203
     204 * A vote is announced on the PMC public list, phrasing the issue as a yes/no decision
     205 * Discussion of the issue (by the entire community) takes place on the PMC public list.  Sensitive discussion among PC members uses the PMC private list
     206 * PMC members cast their votes publicly (by email on the PMC public list)
     207 * Votes on these issues are decided by agreement of at least 75% of responding voters.  The vote will be final when there is agreement of at least 75% of PMC members, or when 14 days have passed since the vote was called.
     208 * If there is not agreement of at least 75% of responding voters, no action is taken on the issue
     209
     210=== 5.3.2 Other voting decisions ===
     211For all other types of decisions that require a PMC vote, the PMC will start decision making using the consensus voting with PMC members voting. If consensus voting fails to reach agreement, the chair or the person who called the vote can request that a majority vote occurs to determine the outcome.