leonov reloaded!
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Leonov |
New
|
Undecided
|
Unassigned |
Bug Description
Over the last week I took some time to think about leonov and the code structure of leonov again. I would like to present some thoughts in this bugreport:
* python-launchpadlib
leonov should use launchpadlib instead of python-
* Offline mode
there has been some effort to put the result of some queries in a database in leonov, in my opinion this is very unflexible and given the fact that launchpadlib is caching all data, creating an additional "cache" in a database would be duplicate work. Instead the offline mode of leonov should be implemented by subclassing launchpadlib.
* Process queue
we should try to implement a "global" worker queue which manages all the interaction with launchpad via launchpadlib
* user interfaces
all UI related logic should be implemented in abstract UI classes. An implementation for a GUI framework like GTK or QT should inherit from this abstract classes. This way it should be easier to sync functionality between different GUI implementations.
I've done some experimental hacking over the last few days, please see the attached screencast for a first example.
The code still needs some polishing and should be available in a public branch soonish.
So far so good, but here is the problem: as far as I know the existing code of leonov, to implement the described thoughts in a sane way, big parts of leonov have to be rewritten and we will loose a huge amount of work we already put into leonov.
What do you think about this?
Markus
Hi,
I think this is a good idea. Leonov seems to be more or less died, and one of the reasons I don't work on it more (besides of lack of time) is the code: writing GUI code was hard (the backend library was bad), and much code was more or less the same in GTK / QT branch which I didn't like...
So I say: go for it... maybe I'll find some time to improve it (Can't canonical participate in GSOC with leonov?)