[owncloud-devel] [RFC] Splitting owncloud-client
sebas at kde.org
Wed Sep 30 15:38:53 GMT 2015
So my goals is to make the complex syncing logic in owncloud-client
usable from other applications. In order to achieve this, I'm splitting
out non-GUI functionality into its own lib to be able to use it from my
own client (a Plasma-based UI).
The owncloud-client repository already contains two libraries:
ocsync (a low level fork of csync) and owncloudsync (a slightly
higher level, Qt-style API on top of csync which handles the actual
syncing). My plan (after discussing this with Olivier and Klaas is to
split out yet another library which has the account handling and sits
on top of owncloudsync. The bits that stay in the client are then
basically just the GUI (mostly the QWidget-dependent code).
So I went ahead with this and cut up the client further, to a point
where it works again against my split-out libs. I haven't noticed any
regressions, but I also haven't built it for Windows or Mac (I don't
have such systems available), so it would be helpful if someone could
build my branch against these systems to catch further fallout. The
library already works with my (unfinished) Plasma client, as a
Along with the splitting, there are some cleanups for buildsystem
inconsistencies, I've tried separating them out, but it quickly became
quite a chore to test these things individually, and really -- if it
works as a whole, we should be fine.
My code is in https://github.com/sebasje/mirall/tree/sebas/libsplit and
is up to date with owncloud-client's master. I'd be happy if you guys
could have a look and tell me what needs to happen to get this merged.
Once the library split is merged, we can make further improvements, for
example cmake find module, librarizing things more (EXPORT macros),
moving stuff in different libraries into their own namespaces,
reviewing and polishing the API further, and moving things between
libraries to improve the semantics of the splitting. I've also not
moved any code files yet to make merging in upstream changes easier.
(I'm a bit afraid of bitrot, so I'd rather get this stuff in sooner
than later, and incrementally improve upon the result then.)
As I said, reviews and comments are most welcome.
Sebastian Kügler | http://vizZzion.org | http://kde.org
More information about the Devel