The discussion related to #1900 brings up a point about backwards 
compatibility.  Last summer, it seemed like we could change the 
interface from version to version and it wasn't a big deal---the 
community was small enough and updated often enough that we weren't 
worried about preserving or even really documenting backward 
incompatible changes.  However, with the recent surge in users and 
interest, maybe it's time that we at least document changes which are 
not compatible with previous releases, even if we don't have a 
"deprecated function" functionality just yet.

What does everyone think?  I'm imagining just a short changelog-style 
file in the root directory and/or the documentation that would document 
changes to functions which would affect people upgrading from previous 
releases.  For example, in #1900 the issue is whether to remove a 
parameter from the adjacency_matrix function.  If someone is using that 
parameter, then their code will blow up when they upgrade (if the patch 
is applied).  A short note in a file like the following could help 
tremendously:

* (Di)Graph.adjacency_matrix() and (Di)Graph.am() no longer accept the 
over_integers parameter and a matrix over the integers is returned in 
each case now.  If G is a (di)graph with G.multiple_edges()==False, then 
G.adjacency_matrix(over_integers=True) --> G.adjacency_matrix() and 
G.adjacency_matrix(over_integers=False) or G.adjacency_matrix() --> 
matrix(GF(2),G).

It may be better if there were a way to do a short table with columns 
"Old functionality" and "Equivalent new functionality" or a short 
documentation paragraph like the following:

If G is a (di)graph where G.multiple_edges()==False, then

before 2.10.1: G.adjacency_matrix() or 
G.adjacency_matrix(over_integers=False)

is equivalent to

2.10.1: matrix(GF(2),G)

and

before 2.10.1: G.adjacency_matrix(over_integers=True)

is equivalent to

2.10.1: G.adjacency_matrix()


I think documenting these sorts of changes will help users not be 
frustrated with a new release every week in which their code might break :).


Jason


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to