You wrote: > Thomas, can you elaborate on the state of this http/json webservice you > are refering to here: > > [EMAIL PROTECTED] wrote: > > First version of the plugin using the http/json webservice instead of > > spawning a mtn automate process itself. Some things still have to be > > fixed though. > > It sounds very interesting, but I don't currently understand how is it > related to the trac plugin.
It's simply that I realized that forking off and talking to a monotone subprocess from within the trac plugin is not the best thing to do, for several reasons: - Depending on how trac is deployed (e.g. if mod_python is used), it might happen that we create multiple mtn subprocesses, which will put unnecessary (memory) stress on the server and increase the chances for locking issues. - Monotone used via automate stdio currently outputs some of its error messages on stderr. But properly receiving everything from stdout *and* stderr, without blocking on stderr, is not easy (read: a big mess) to do in a portable way. You need either a non-blocking read(), or create your own eventloop, or use threads, or whatever. This is when I decided to look at twisted, which promises to exactly do that. But even using twisted, things work best if done in a stand-alone application and not in a plugin somehow executed by the webserver. That's why I created that daemon. As I currently only use it from the plugin, it lives in the same branch. > It's based on twisted, right? Yes, it is. Currently, it is read-only and tries to use a simple url schema. Information is fetched from an mtn subprocess via automate stdio, parsed and then sent to the client as json encoded data. > Can I run a standalone http/json service? Yeah, sure. There is some usage information at the top of twisted/plugins/mserv.py. Feel free to test it and send me comments or suggestions about it. Regards, Thomas _______________________________________________ Monotone-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/monotone-devel
