Hi,

Jamis Buck wrote:
> Well, to be fair, it was a private API that changed. The problem was

What is the concept 'private API' here?  In general library development, 
there are 2 APIs for users and developers.  For users it can be called 
'public API' as you wrote.  Is 'private API' you wrote an API for 
developers who extend a class for implementation inheritance?

Unfortunately Ruby has its small weakness about representing the latter 
API.  Only we can do is writing a document about it.  Logger has an 
inline document (by gsinclair: Thanks) but there's no mention about it 
because it's a 'final' (Java term) class.

As a library developer, I wish if I were able to write some 
'protect'-ness and 'final'-ness explicitly (without writing any 
document) in Ruby.  IIRC Java uses 'final', 'protected' and "This 
implementation ..." in Javadoc comments though.

Anyway, at this time, developers should not do both removing constants 
for redefinition and overwriting private methods without explicit 
permission by documents if they can.

Regards,
// NaHi