Since the beginning of my involvement in KDE and, more specifically, my involvement with KDevelop, many people have come to me and said that what we “actually need” is an SDK. So far, I never gave this much thought. Especially given that for me, the SDK was the system I’m running on and, by extension, the packaging system of my GNU/Linux distribution.
After all this time and given one of KDE Frameworks goals is to broaden our portability, I started wondering about the subject again. Some of the pieces are starting to come together already, but I still think we need to actually glue them together in a clear and pragmatic approach.
Premise: we want to build an SDK on top of the tools we generally use:
CMake, Qt, KDE Frameworks 5, Plasma, QML and C++.
For starters, we have two different major scopes: Integration with Plasma and Cross-platform facilities.
KDE Applications should be as distributable and portable as possible. On the other hand, we should be providing the tools to specifically integrate to the Plasma Workspaces.
Applications have different use-cases than the Plasma Workspaces. While applications need to be as easily distributable as possible, Plasma will want to have as much control on the system as needed to work accurately. Therefore, we want applications interacting with Qt5+KF5 and integrating through Qt abstractions, while Plasma will want to interact random components in the system regardless without fear.
What I propose:
- Figure out which frameworks are portable and which are Plasma Platform integration frameworks. (e.g. KDED modules, KNotifications, Solid: are they portable? do we want to support the different platforms?)
- Figure out what do we mean by supported platform (both in the case of Plasma and Applications).
Once we get there, we will be able to think about developers and:
- Offer a sensible set of tools to support the development and ease testing.
- Figure out a packaging plan for the libraries and tools for developers, so they can start using them for their development.
- Figure out a deployment plan for the frameworks on the different platforms, so that deployed applications know how to rely on the needed dependencies.
So this are mostly thoughts, I would like to know if you’d be interested in the project. I think it makes a lot of sense to figure this out and then gather this year’s Randa meeting to make sure we’re coming up with a coherent next development platform.
This is very desirable. My experience is that folks are actively developing and posting nifty tools on sites like KDE-Apps but installing those are beyond scope of general users as most of them require building and figuring out dependencies for them is in itself a hurdle. Developers should develop using a set of tools that are available to user in a form that we can abstract away complicated building part.
The tiers already provides these distinctions as a by-product of the classification system. This means we don’t need to make judgement calls, some of which might be wrong and some of which will certainly shift with time. Trying to divide beyond the tiers in place now will make frameworks that shift over time more difficult to handle as we will need to communicate that shift.
Instead, focusing on what the dependencies are and whether the framework is portable between OS and windowing systems should provide the answers you are looking for here imho. It also will avoid Plasma becoming to inwardly myopic.
The three points you offered after “we will be able to think about developers and:” get a great huge +1000 from me without equivocation, though! 🙂
It has been proposed that we write a book about Frameworks, presumably so that devels outside of KDE will know what Frameworks are, and how they can make use of them.
Answers to the questions you pose seem fundamental, and actually without those answers, I’m not sure how useful a book could be. WITH those answers, a book seems useful.
I hope you will take your questions to the Frameworks team and begin getting answers before Randa, so that we can write the best book possible. Also, we need more writers to register for the sprint and come help us out!