Splitting KActivities, 2nd attempt...

2015-11-08 Thread Ivan Čukić
Hi everybody,

We have a few problems at the moment because all the activities
components are in a single repository. Sometimes dependencies of the
service creep up into the library, builds break because components
that are meant only for Plasma start requiring Qt versions that Plasma
require, while KF5 requirement is lower, and similar.

The way I want to split the repository is as follows:

- KActivities framework (essentially a Tier 1, integration or solution, all OSs)
- kactivitymanagerd (service, kcm settings module, dolphin plugin;
officially linux-only)
- KActivitiesStats library (library meant for Plasma and friends, so
linux-only, no need for it to be a framework)
- kactivities QML imports (this could be in kamd repository, but it
will require KAStats at some point, and it is not really a part of the
service)

An alternative would be to have the dolphin and the qml imports in a
kactivities-workspace repo, or moved to existing workspace
repositories. IMO, the KCM module belongs with the service - it is its
main interface outside of Plasma.


More details on what is what:

- KActivities framework allows applications to report what they are
doing and to react to when the user changes her activity. On systems
that do not run kamd, it behaves like there is only one activity, so
everything works without the need of ifdeffing-out the kactivities
calls;
- kamd - the service that tracks which application opens which
documents, contacts and other resources, and manages the activities.
It comes with a kcm module to create and remove activities, to set the
'no-tracking' mode etc., and with the dolphin plugin to link files to
activities (something like adding favourites);
- KAStats library provides the way to applications to retrieve (in
some way) the statistics collected by kamd. It is currently
'experimental' and used only in Plasma. Since it does not build by
default from kactivities repo (plasma-desktop keeps a copy of the
library called kactivitiesexperimentalstats so that it does not
collide with the future released one) it will not break anything if it
is moved to another repo;
- QML imports - the name says it all.

The releases of other components would be synced to Plasma, not KF5.


Reasons for the split:

- Different deps for different components. Compiler version, Qt
version, KFrameworks used, other libraries (boost) etc. Only the
framework actually follows the KF5 requirements. Other parts follow
the plasma reqs.
- Dependency problems - currently we have a potential circular dep
problem due to KAStats being in plasma-desktop, and kactivities QML
imports wants to use it.
- KCM settings, dolphin plugin etc. are not really a part of the framework
- Simpler build system (compiler features checks, etc.)


Potential problems:

- More work for packagers (though, with benefits that they do not need
to know about -DKACTIVITIES_LIBRARY_ONLY and similar flags)
- It will require more planning on my side regarding syncing the
updates between the library and the service (the service already keeps
back-compatibility, but new library features will need  to wait until
the new service is released).



Cheerio,
Ivan

--
KDE, ivan.cu...@kde.org, http://cukic.co/
gpg key id: 850B6F76
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Splitting KActivities, 2nd attempt...

2015-12-28 Thread David Faure
Sounds good overall, but one question:

On Sunday 08 November 2015 12:04:54 Ivan Čukić wrote:
> Hi everybody,
> 
> We have a few problems at the moment because all the activities
> components are in a single repository. Sometimes dependencies of the
> service creep up into the library, builds break because components
> that are meant only for Plasma start requiring Qt versions that Plasma
> require, while KF5 requirement is lower, and similar.
> 
> The way I want to split the repository is as follows:
> 
> - KActivities framework (essentially a Tier 1, integration or solution, all 
> OSs)
> - kactivitymanagerd (service, kcm settings module, dolphin plugin;
> officially linux-only)

Shouldn't the service be part of the framework?
How usable is the framework without the service?
Compiling is good, but running is even better :-)

-- 
David Faure, fa...@kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Splitting KActivities, 2nd attempt...

2016-01-01 Thread Ivan Čukić
> Shouldn't the service be part of the framework?
> How usable is the framework without the service?
> Compiling is good, but running is even better :-)

This is the reason why the split has not happened before.

The purpose of the library is:
[1] - to report document/resource events to the service
[2] - to allow applications to see what activities exist, to see what
is the current activity, and to request activity creation, switching,
etc (these few latest features are generally intended to be used by
the workspace, not by the application, but it can be used by anyone).

If the service is not running [1] is ignorred (nowhere to send the
data to), [2] shows that there is only one activity present and
applications do not need to implement two different behaviours for
activity-enabled and activity-disabled environments.

So, applications that do link to activities will run and work
uninterrupted even if the service is not present.

Currently, more than a few apps have ifdefs for
kactivities-enabled/disabled, which is not the ideal situation.

At some point, somebody might want to implement the [1] for windows or
mac using the platform systems for usage tracking.

Cheers,
Ivan
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Splitting KActivities, 2nd attempt...

2016-01-01 Thread David Faure
On Friday 01 January 2016 18:07:59 Ivan Čukić wrote:
> 
> So, applications that do link to activities will run and work
> uninterrupted even if the service is not present.

OK, sounds good to me. 

-- 
David Faure, fa...@kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel