Policy for Dependencies

Christoph Cullmann cullmann at absint.com
Tue Oct 13 12:50:02 UTC 2015


Hi,

>> Ok, after the reasonable criticisms of making the sound stuff optional in
>> knotifications per default:
>>
>> Could we have some ECM switch like (name is just an example):
>>
>> option(KDE_ENABLE_MINIMAL_DEPENDENCIES "Will switch as many dependencies from
>> required to optional as possible, this might lead to a loss of functionality."
>> OFF)
>>
>> Based on that option, we can make stuff optional and we will have best of two
>> worlds:
>>
>> 1) no by accident loss of functionality and bug reports (like feared by some,
>> and I must confess that might be realistic)
>> 2) an easy to use solution for people wanting minimal dependencies as this is
>> "one" switch and it will work on all operating systems
> 
> I think we're mixing different subjects here. One thing is being able
> to be as portable as possible and another thing is to have few
> dependencies. Dependencies are a portability problem as they make the
> process a bit more complex, but also this process needs to be
> standardized. The reason why dependencies are a problem when we port,
> is because these pop when we as humble developers try to play the
> packager role, and we're not used it it.
> 
> My proposal is that we should make sure which frameworks are viable on
> each platform. If a framework is not viable on a platform (be it
> because it's not an abstraction or because it doesn't make sense) then
> other frameworks must either inherit the non-viability or make the
> framework usage optional. And so should do applications that aspire to
> be portable, which is by no means required.
> 
> I'm not sure though how acceptable is to drop functionality in favor
> of just reducing the dependency list.
I don't really think that this is mixing things.

I think we must accept, that on neither Windows nor Mac we will have all dependencies available
and that for many applications not all features are needed. There is no "packagers" for
that operating systems, you need to provide the stuff you use yourself, just like you
would do on Android/iOS.

E.g. no, I doubt that Krita or Kate will suffer a lot, if we have no sound, nor will
many 3rdparty applications. We can make the knotifications usage more optional, e.g.
in kparts, or we can make the knotifications dependencies more optional.

Therefore I think less dependencies are needed to be called "portable" in that case.

But that a side, for the dependencies itself, no matter if we target just one os or multiple,
would the KDE_ENABLE_MINIMAL_DEPENDENCIES switch be a solution for the criticism raised?

It at least would provide some generic and "opt-in" way for people compiling our stuff
to say "I want to have minimal dependencies and are aware of loss of functionality if stuff is missing"
opposed to my/our current approach to make things optional per default.

With that variable available, I could e.g. make even libgit2 required for KTextEditor to ensure
per default I have good git integration and make it optional with that var to still allow
people to build it if the really want to loose that. Same for Kate with its plugins.
Would save me bug reports about missing things, too.

Greetings
Christoph

-- 
----------------------------- Dr.-Ing. Christoph Cullmann ---------
AbsInt Angewandte Informatik GmbH      Email: cullmann at AbsInt.com
Science Park 1                         Tel:   +49-681-38360-22
66123 Saarbrücken                      Fax:   +49-681-38360-20
GERMANY                                WWW:   http://www.AbsInt.com
--------------------------------------------------------------------
Geschäftsführung: Dr.-Ing. Christian Ferdinand
Eingetragen im Handelsregister des Amtsgerichts Saarbrücken, HRB 11234


More information about the Kde-frameworks-devel mailing list