-
Notifications
You must be signed in to change notification settings - Fork 44
Deprecation Process
Br. Samuel Springuel edited this page Aug 18, 2015
·
1 revision
If a change necessitates that a User level function be deprecated, then the following procedure is to be followed for phasing out said function:
- The function is marked as deprecated: Use of it raises a warning (using
\gre@deprecated
) which points to the new syntax which achieves the same effect, and calls said syntax for the user. An entry under### Deprecated
should also appear in CHANGELOG.md which indicates the appropriate new syntax. - The function is marked as obsolete: Use of it does not work, but raise an error (using
\gre@obsolete
) which points to the new syntax which achieves the same effect. An entry under### Removed
should also appear in CHANGELOG.md which indicates the appropriate new syntax. - The function no longer exists in the code base. Anyone still using it gets the generic "Undefined control sequence" error.
Each of these steps should be in a major or minor release, with step 1 or 2 being a mandatory major (i.e., if step 1 is a minor release, then step 2 must be major, if step 1 is a major release, then step 2 is allowed to be a minor release). It is advisable, therefore, that existing functions which are deprecated or obsolete be moved along this path on the develop branch immediately after a major or minor release is made.