rfc:abolish-narrow-margins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
rfc:abolish-narrow-margins [2019/01/31 12:28]
krakjoe
rfc:abolish-narrow-margins [2019/02/07 17:23]
nikic
Line 11: Line 11:
  
 The nomenclature "language feature" is misleading and confusing, for new contributors and old alike - some people think it is synonymous with "syntax", others think it anything that is merged into /Zend, others think it anything that faces the end user. Various definitions have co-existed in the minds of contributors because we have never taken the effort to define exactly what "language feature" includes or excludes. The nomenclature "language feature" is misleading and confusing, for new contributors and old alike - some people think it is synonymous with "syntax", others think it anything that is merged into /Zend, others think it anything that faces the end user. Various definitions have co-existed in the minds of contributors because we have never taken the effort to define exactly what "language feature" includes or excludes.
- 
-Anything merged into php-src is by definition a core part of PHP, regardless of the folder it goes into, or whether it has direct implications for our users. This is not a debatable fact: If it is distributed with PHP, it is core software. 
  
 ===== Proposal ===== ===== Proposal =====
Line 18: Line 16:
 RFC's come in the following two categories: RFC's come in the following two categories:
  
 +  * Proposals to make changes to PHP
   * Proposals to amend or create policy documents   * Proposals to amend or create policy documents
-  * Proposals to merge code into php-src 
  
-This RFC proposes that //all// RFC's need to meet the same high standard.Any vote that would result in merges into the source repository, or amend or create policy documentation must require a super majority of 2/3.+This RFC proposes that **all** RFC's need to meet the same high standard: The main acceptance vote of any RFC must require a super majority of 2/3. 
 + 
 +If this RFC is accepted, the original [[rfc:voting|voting RFC]] will be amended as per the Normative Text section of this RFC. 
 + 
 +These rules shall apply to any RFC whose vote ends after this RFC is accepted, should this RFC be accepted. 
 + 
 +==== Normative Text ==== 
 + 
 +Under the "Required Majority" heading, the following text is **REMOVED**:
  
-This change means that the main vote in any RFC must have super majority.+<blockquote> 
 +Given that changes to languages (as opposed to changes to apps or even frameworks) are for the most part irreversible - the purpose of the vote is to ensure that there's strong support for the proposed feature. It needs to be clear that there are lot more people actively supporting the proposal, vs. people actively opposing it. We also need to ensure, as much as possible, that the decision isn't based on some arbitrary circumstances (such as a temporary marginal majority for a certain school of thought). For these reasons, a feature affecting the language itself (new syntax for example) will be considered as 'accepted' if it wins a 2/3 of the votes. Other RFCs require 50% + 1 votes to get 'accepted' 
 +</blockquote>
  
-Subsidiary votes come in the following two categories:+And instead the following text is **ADDED**:
  
-  1) Vote to resolve implementation details - ie. Choose between version X and version Y of an implementation for main vote. +<blockquote> 
-  2) Vote that could have been run as a separate RFC ie. Their passing would result in merges into the source repository or changes to policy documentation that would otherwise not take place, regardless of the outcome of the main vote.+The primary vote of an RFC, determining overall acceptance of the proposal, may only have two voting options and requires 2/3 majorityThis means that the number of Yes votes must be greater than or equal to the number of No votes multiplied by two.
  
-A subsidiary vote of type 1 may require a slim majority of 50%+Additionally, an RFC may have secondary votes, which are used to decide implementation details. Such votes may have more than two voting options and may be decided by simple plurality. This means that the voting option with the most votes wins. If there are multiple options with the most number of votes, it is left at the discretion of the RFC author to choose one of them.
  
-A subsidiary vote of type 2 must also require super majority.+For procedural reasons, multiple RFCs may be combined into one, in which case there may be multiple primary votes. Combining multiple RFCs into one does not allow turning a primary vote into secondary vote. 
 +</blockquote>
  
-These new rules are unambiguous, and much more suited to a project the size and scope of PHP.+No changes to other sections of the voting RFC are made.
  
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
-A straight yes/no vote. 
  
-//If this RFC passes the vote, the original [[/rfc/voting|voting RFC]] will be amended (under the heading Required Majority) to reflect current requirements, and have the version changed.//+A straight yes/no vote, 2/3 super majority required to pass.
  
 ===== Discussion Topics ====== ===== Discussion Topics ======
rfc/abolish-narrow-margins.txt · Last modified: 2019/02/22 11:45 by krakjoe