On Sun, Nov 22, 2009 at 5:19 PM, Florent Hivert <florent.hiv...@univ-rouen.fr> wrote: > Hi there, > >> Regarding deprecation, we already hashed this out in a previous thread >> quite some time ago. >> >> * Use the official deprecation(...) function when deprecating a function. >> >> * We can tell precisely what is deprecated and when by simply >> looking at the source code and using the revision control system >> and/or comments in the source code. Thus it's completely unnecessary >> bureaucracy to require people to open extra tickets just for this, as >> was suggested elsewhere in this thread. >> >> * After one year we are allowed to remove deprecated code, but we >> only actually do so at major releases (e.g., 5.0, 6.0, 7.0 etc.) >> Thus Sage-5.0 *will* remove deprecated code that was deprecated at >> least a year ago. > > Speaking about deprecation, I posted a patch #7515 which does two things: > > 1 - Add an option called ``version`` do deprecation where you can put the > information on since which version of sage this thing was deprecated: > > sage: def bar(): > ... sage.misc.misc.deprecation("The function bar is removed.", > ... 'Sage Version 4.2, Release Date: 2009-10-24') > sage: bar() > doctest:...: DeprecationWarning: (Since Sage Version 4.2, Release > Date: 2009-10-24) The function bar is removed. > > Note: This does noting than gluing the two strings, but this prompt the writer > of the function to insert this information at the right place. For backward > compatibility, This is only optional.
That's a good idea, and will make it easier to remove deprecated code after a given time limit. > > 2 - When renaming a function or method, you can use deprecated_function_alias > or deprecated_method_alias to keep the function under the old name: > > sage: from sage.misc.misc import deprecated_method_alias > sage: class cls(object): > ... def new_meth(self): return 42 > ... old_meth = deprecated_method_alias(new_meth, > ... 'Sage Version 42.132, Release Date: 5123-04-01') > sage: cls().old_meth() > doctest:...: DeprecationWarning: (Since Sage Version 42.132, Release > Date: 5123-04-01) old_meth is deprecated. Please use new_meth instead. > 42 > > I thinks both idea might be helpful. Anyone against this design ? Or any > better idea ? In particular, if someone has a better name for > deprecated_method_alias and deprecated_function_alias (actually both are the > same)... I prefer deprecated_function_alias if it also works on methods. William -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org