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.

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)...

Cheers,

Florent

-- 
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

Reply via email to