diff options
author | Brett Profitt <brett.profitt@gmail.com> | 2011-08-22 22:10:27 -0700 |
---|---|---|
committer | Brett Profitt <brett.profitt@gmail.com> | 2011-08-22 22:10:27 -0700 |
commit | 5ac7727c36392633dc7d1d4a79ee3c5086bd37b6 (patch) | |
tree | 8698390d4ceb449874723e813a843afced76628f /documentation/coding_standards/deprecation.txt | |
parent | 2b7817baafb400aab1de20ffb8093429cbe0ceab (diff) | |
parent | 0b3e6b6ed28742c29df5d09476b50fbce7f36dbb (diff) | |
download | elgg-5ac7727c36392633dc7d1d4a79ee3c5086bd37b6.tar.gz elgg-5ac7727c36392633dc7d1d4a79ee3c5086bd37b6.tar.bz2 |
Merge pull request #55 from cash/coding-standards
Refs #3657 separate out coding standards. (Still need to redirect requests for CODING.txt)
Diffstat (limited to 'documentation/coding_standards/deprecation.txt')
-rw-r--r-- | documentation/coding_standards/deprecation.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/documentation/coding_standards/deprecation.txt b/documentation/coding_standards/deprecation.txt new file mode 100644 index 000000000..370090138 --- /dev/null +++ b/documentation/coding_standards/deprecation.txt @@ -0,0 +1,36 @@ +*** DEPRECATING APIs *** + +Occasionally, functions and classes must be deprecated in favor of newer +replacements. Since 3rd party plugin authors rely on a consistent API, +backward compatibility must be maintained, but will not be maintained +indefinitely as plugin authors are expected to properly update their +plugins. In order to maintain backward compatibility, deprecated APIs will +follow these guidelines: + +* Incompatible API changes cannot occur between bugfix versions + (1.6.0 - 1.6.1). + +* API changes between minor versions (1.6 - 1.7) must maintain backward + compatibility for at least 2 minor versions. (1.7 and 1.8. See + procedures, below.) + +* Bugfixes that change the API cannot be included in bugfix versions. + +* API changes between major versions (1.0 - 2.0) can occur without regard to + backward compatibility. + +The procedure for deprecating an API is as follows: + +* The first minor version (1.7) with a deprecated API must include a wrapper + function/class (or otherwise appropriate means) to maintain backward + compatibility, including any bugs in the original function/class. + This compatibility layer uses elgg_deprecated_notice('...', 1.7) to log + that the function is deprecated. + +* The second minor version (1.8) maintains the backward compatibility + layer, but elgg_deprecated_notice() will produce a visible warning. + +* The third minor version (1.9) removes the compatibility layer. Any use of + the deprecated API should be corrected before this. + +The general timeline for two minor releases is 8 to 12 months. |