[DB-SIG] what is: backwards compatibility

Art Protin aprotin at research.att.com
Fri Jun 22 17:14:02 CEST 2007


Dear folks,
    Carsten Haese wrote:

>On Thu, 2007-06-21 at 14:30 -0500, Carl Karsten wrote:
>  
>
>>Carsten Haese wrote:
>> > On Thu, 2007-06-21 at 11:51 -0500, Carl Karsten wrote:
>> >> Carsten Haese wrote:
>> >>> On Thu, 2007-06-21 at 10:02 -0500, Carl Karsten wrote:
>> >>>> When we talk about backwards compatibility, I am wondering exactly what 
>>that means.
>> >>> A module is backwards compatible if code using it won't break if the
>> >>> module is replaced with a newer version.
>> >> Even if it relies on implementation details?
>> >
>> > Yes, if those details are documented. Otherwise, no.
>>
>>I totally disagree, and have a feeling this needs to be voted on before either 
>>of us can continue this discussion.
>>    
>>
>
>Fine. Let's vote. Please define what we're voting on.
>
>  
>
I, as a developer who implements interfaces, only recognize the 
commitments I have explicitly
made in the documentation for how the interface works.  A bug is when 
the code does not
match the documentation.  If you choose to look at my code instead of my 
documentation,
then when I change the code you are responsible to change how you use it 
- I never made
any commitment to not change my code.  I will only entertain complaints 
about how my code
does not fulfill the commitments I made in the documentation.

I define "backward compatibility" as allowing to continue to work that 
behavior that conforms
to the previously provided documentation!  If you cheated and used my 
code to figure out how
things work, you maintain that old version and leave me and my new work 
alone.

Thus, I think I side with Carsten on this issue.


    Thank you all,
    Art Protin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/db-sig/attachments/20070622/fb91f95b/attachment.htm 


More information about the DB-SIG mailing list