[rfc] developer documentation on user interaction

Alexander Belchenko bialix at ukr.net
Fri Sep 25 07:45:26 BST 2009


John Arbash Meinel пишет:
> I honestly feel that Gui's should be interacting with an object model,
> and never interacting via a stdout pipe. Though qbzr's policy of
> interacting via a subprocess (to preserve interactivity in the main
> thread, IIRC) means that this is difficult.

Hear, hear, hear. I suppose you guys will blame us for ever for our 
decision to use qsubprocess. I don't really care.

What I'm really care is maintaining load: bzr CLI API is 2 orders of 
magnitude STABLE than your internal API. So we don't have to update all 
q-dialogs every time new version of bzr is released. But other dialogs 
which working with bzrlib directly required constant maintaining and 
fixing various small and big problems (like suddenly annotate becomes 
broken because 2a format repositories have changed locking policy/sequence).

Using bzrlib directly means for any decent GUI implementing wrapper 
around your API to make the GUI more responsive, to execute long 
operations in the background and so on and so on.

Clearly bzr and bzrlib is supposed to use as one-threaded command-line 
application (IIRC I've read this in some docs or on wiki). So next time 
you will blame us think for a while about our reasons.

Thanks.




More information about the bazaar mailing list