rfc:experimental

Differences

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

Link to this comparison view

Next revision
Previous revision
rfc:experimental [2014/10/28 18:18] – created krakjoerfc:experimental [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 11: Line 11:
 ===== Proposal ===== ===== Proposal =====
  
-We propose to amend the current definition of experimental:+We propose to amend the current definition of experimental as follows:
  
     Experimental Code     Experimental Code
Line 21: Line 21:
      * Any authoring information (known bugs, future directions of the module).      * Any authoring information (known bugs, future directions of the module).
      * Ongoing status notes which may not be appropriate for Git comments.      * Ongoing status notes which may not be appropriate for Git comments.
-     
-    If possible, new features should go to PECL or experimental branches until  
-    there are specific reasons for directly adding it to the core distribution. 
          
     Experimental code being distributed with PHP must follow coding standards.     Experimental code being distributed with PHP must follow coding standards.
Line 30: Line 27:
     cannot be marked as experimental.     cannot be marked as experimental.
          
-    New code, with no user base, is considered experimental for X releases/moons/elephants.+    New code, with no user base, can be considered experimental for a  
 +    maximum of 2 years.
  
-This allows the definition to apply to SAPI and extension code, and further clarifies what we can consider experimental.+This allows the definition to apply to SAPI and extension code, and further clarifies what we can consider experimental, and for how long.
  
-We propose we make a decision as to how such experimental code should be developed:+===== Staging Process for Experimental Code =====
  
-  * experimental code is immediately subject to the normal internals process. +Experimental code can be developed in an experimental branch of php-src or an external repository.
-  * experimental code is developed using a staging process.+
  
-===== Staging Process for Experimental Code ===== +Experimental does not mean unstable; every effort should be made to stabilize code before merging is suggested.
- +
-Experimental code can be developed in an experimental branch of php-src or an external repository+
  
 Before any merges into production or development branches of php-src, maintainers of experimental code must invite discussion on internals, for //anything// other than bug and security fixes. Before any merges into production or development branches of php-src, maintainers of experimental code must invite discussion on internals, for //anything// other than bug and security fixes.
Line 47: Line 42:
 Discussion of such merges must lead to an RFC in the case that an agreement about implementation details cannot be reached on internals. Discussion of such merges must lead to an RFC in the case that an agreement about implementation details cannot be reached on internals.
  
-Only if there are no objections to a merge from internals after a period of 1 week/moon/elephant, a merge to production or development branches is permitted.+Only if there are no objections to a merge from internals after a period of 7 days, a merge to production or development branches is permitted after discussion with release manager(s) has taken place. 
 + 
 +After the defined period for experimental code has passed, the experimental notice must be removed and the code subject to the normal internals process.
  
 This allows experimental code to be developed at a different pace to production or development branches of PHP, but still requires that the maintainers are in communication with internals. This allows experimental code to be developed at a different pace to production or development branches of PHP, but still requires that the maintainers are in communication with internals.
- 
-After the defined period for experimental code has passed, the experimental notice must be removed and the code subject to the normal internals process. 
  
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
Line 59: Line 54:
   * Adopt the proposed definition of experimental (yes/no)   * Adopt the proposed definition of experimental (yes/no)
   * Adopt the proposed staging process for experimental code (yes/no)   * Adopt the proposed staging process for experimental code (yes/no)
 +
 +If we decide against adopting the staging process for experimental code, experimental code will be subject to the normal internals process.
  
 ===== Implementation ===== ===== Implementation =====
 No implementation is required, only an update to the current version of CODING_STANDARDS which contains the current definition of experimental. No implementation is required, only an update to the current version of CODING_STANDARDS which contains the current definition of experimental.
rfc/experimental.1414520300.txt.gz · Last modified: 2017/09/22 13:28 (external edit)