Itamar Shtull-Trauring wrote:
One problem with leaving it as twisted.news in future releases as Andrew suggests in a later email is that we lose our emphasis on the fact that it's a separate release with separate versions. Assume following scenario - we have lowdown 0.1 and lowdown 0.2, which are API incompatible. We want to be very clear that lowdown 0.1 can still be used on latest Twisted core, that you don't have to go in lockstep.
Agreed, but it is a short term thing as all new users will have never known the "old way".
So, looking at code - is twisted.foo part of core twisted and thus probably pretty stable or is it a separate package? What expectations can I have of API stability?
It is no worse than currently where you have to read the doc. As well, even stable interface can change. Nothing is set in stone.
Partially this is just Python conventions. Separate packages go in separate namespaces. Possibly Java's system is better, but if it doesn't really match our users' expectations then we're just going to confuse them if we use it.
So you mean that os.path is not pythonic ? os.path is one of the first include that every python user do !
Then again, maybe we're just being stupid and we should stick to Java-style "twisted.foo", so "twisted.news" with a "twisted.news.nntp". Who else thinks that's a good idea?
Big repeat ... I will repeat that I think that <basename>.<protocol>(.<implementation>)+ basename :: twisted, foobar, other protocol :: nntp, ldap, mail, ... implementation :: lowdown, smtp, pop3, .. twisted.mail.pop3.byme twisted.mail.pop3.byyou twisted.nntp.lowdown twisted.nntp.cnn poweredbytwisted.mail.pop3.byme poweredbytwisted.mail.pop3.byyou poweredbytwisted.nntp.lowdown poweredbytwisted.nntp.cnn would be valid names You could even have a prefered implementation accessible as from twisted.nntp import default as nntp or the like Thomas