[jdev] xmppony 0.1 is released!

Anaël Verrier elghinn at free.fr
Wed Apr 15 19:08:18 CDT 2009


Norman Rasmussen a écrit :
>> Our fixes are and will be free software, you’ll be able to take them back if you
>> want. However, I have the intention to change quite a lot of things: revamp
>> simplexmp, replace debug with standard logging, get rid of fake inheritance,
>> etc. Are these ground-breaking changes suitable for incorporation in xmpppy?
> 
> as far as I'm concerned:
>  - simplexml is ugly and should be thrown away.  something like the
> standard python xml.dom and xml.sax (maybe xml.dom.pulldom) would be
> more than enough
I don't think that removing simplexml would be a good thing. simplexml is simple
(Captain Obvious agrees), and having a simple API to make Python objets from an
XML stream (thanks to expat) and serialize them back (thanks to __str__) seems
useful to me. I prefer cleaning simplexml than using DOM. I think we don’t need
such a complicated interface to handle stanzas.

>  - not sure what you mean about the fake inheritance - do you mean the
> plugging?
Yes, the plugin system and the horror[1] in client.py (CommonClient is derivated
in Client and Component, but its contructor does different things according to
the one call it (Client.__init__ or Component.__init__)). And other stuff like
this one.

[1] http://trac.last-exile.org/xmppony/browser/trunk/xmppony/client.py?rev=30#L119

> 
> Much of the code of xmpp.py was written by Alexey _before_ python had
> support for all this stuff in it's internal libraries.  I've had to
> deal with being able to run the transports on Python 2.2.  I think
> Alexey did a fantastic job with what he had to work with when he wrote
> the library.  Unfortunately (as it happens to all of us), he was
> unable to dedicate as much time as he would have wanted to maintaining
> the library.
> 
As I already said to steve-e, I thank him for his job and I don't blame him: he
has his life.

> Moving forwards I would like to see:
>  - true asynchronous code - Gajim team did this about a year ago.
> They added non-blocking calls for almost everything that used to
> block.  Support for asyncore would be great, because this is another
> python built-in library.
I don't understand why people do not like threads :'(
threading is a standard Python module too.

>  - cleaner separation of concerns - the Gajim team have started on
> this.  The client should not care if the server connection is TCP or
> TLS or SSL or BOSH or Magic-transport-method-5.
That sounds good.

I want Magic-transport-method-5 \o/

>  - the library should continue to support client and transport
> connections.  adhoc commands should get client-side (consumer) support
> (currently only server-side (producer) is supported).
Adhoc commands, pep, and other cool stuff are on my roadmap for v0.3.


>  - file transfer would be fantastic, would you support all 5 methods?
> (si, ibb, oob, socks5, jingle)
> 
For now, xmppony supports si, socks5 and ibb. With emacs-jabber, I can already
send and receive files from a bot based on xmppony.
Jingle support would be great, but I didn't plan to touch it now (except if
someone sends me a patch).


As I said in previous mail, for v0.2, I plan to revamp simplexml, replace debug
with standard logging and get rid of fake inheritance. But I also take a look to
rfcs and xeps. Because they evolved since the code was written. For example, I
found 2 problems in omega's patch (which was written 4-5 years ago). I also plan
to make some unit tests.

The base must be cleanest possible before going further!


-- 
Anaël Verrier
xmpp:elghinn at last-exile.org
GPG: 1024D/65B95D84






More information about the JDev mailing list