KDE Frameworks 5

From Wikipedia, the free encyclopedia
  (Redirected from KDE Frameworks)
Jump to: navigation, search
KDE Frameworks 5
Original author(s) KDE
Developer(s) KDE
Initial release 1 July 2014; 2 months ago (2014-07-01)
Stable release 5.2 (September 12, 2014; 3 days ago (2014-09-12)) [±][1]
Preview release 5.2 (June 5, 2014; 3 months ago (2014-06-05)) [±][2]
Written in C++
Operating system Linux, OS X, Microsoft Windows, et al.
Type
License GNU Lesser General Public License (LGPL)[3]
Website www.kde.org

KDE Frameworks is a collection of libraries and software frameworks by KDE that serve as technological foundation for KDE Plasma 5 and KDE Applications 5 distributed under the GNU Lesser General Public License (LGPL).

The included individual frameworks offer a wide variety of commonly needed functionality providing solutions including hardware integration, file format support, additional graphical control elements, plotting functions, spell checking and more. Many[which?] of the frameworks are available for multiple operating systems and have minimal or no extra dependencies.

KDE Frameworks represents an effort to rework KDE Platform 4 into a set of individual and independent, cross platform modules that will be readily available to all Qt-based applications. The transition from KDE Platform to KDE Frameworks has been in progress for over 3 years, guided by top KDE technical contributors.[4]

After the release of KDE Frameworks 5.0 and without the stress of a strict deadline, the developers will focus on adding features to the components in KDE Frameworks 5.[5] Such as a better integration of Firefox into KDE.[6]

It should be possible to install a KDE Frameworks 5 runtime alongside a KDE Platform 4 runtime so apps can use either one.[7]

Adoption[edit]

The source code in KDE Frameworks has been around since KDElibs 1. Besides the KDE Software Compilation, there may be other adopters, such as e.g. the desktop environments Razor-Qt, LXQt, MoonLightDE or Hawaii or applications such as Amarok, Avogadro, Trojitá or Subsurface.[citation needed]

Development[edit]

Since the split of the KDE Software Compilation into KDE Frameworks 5, KDE Plasma 5 and KDE Applications 5, each sub-project can pick its own development pace. KDE Frameworks 5 will be released on a monthly base[8] and use git.[9][10]

API and ABI stability[edit]

Platform releases are major releases that begin a series (version number X.0). These releases are allowed to break both binary and source code compatibility with the predecessor, or to put it differently, all following releases (X.1, X.2, ...) will guarantee source & binary portability (API & ABI). This means, for instance, that software that was developed for KDE 3.0 will work on all (future) KDE 3 releases; however, an application developed for KDE 2 is not guaranteed to be able to make use of the KDE 3 libraries. KDE major version numbers follow the Qt release cycle, meaning that KDE SC 4 is based on Qt 4, while KDE 3 was based on Qt 3.

Software architecture[edit]

Structure[edit]

The Frameworks have a clear dependency structure, divided into "categories" and "tiers". The "categories" refer to runtime dependencies:

  • Functional elements have no runtime dependencies.
  • Integration designates code that may require runtime dependencies for integration depending on what the OS or platform offers.
  • Solutions have mandatory runtime dependencies.

The "Tiers" refer to compile-time dependencies on other Frameworks.

  • Tier 1 Frameworks have no dependencies within Frameworks and only need Qt and other relevant libraries.
  • Tier 2 Frameworks can depend only on Tier 1.
  • Tier 3 Frameworks can depend on other Tier 3 Frameworks as well as Tier 2 and Tier 1.

Components[edit]

The KDE Frameworks bundle consists of over 60 packages. These existed as a single large package, called kdelibs, in KDE SC 4. Kdelibs was split into several individual frameworks, some of which are no longer part of KDE but were integrated into Qt 5.2.[11]

KDE Frameworks are grouped in four different tiers according to dependency on other libraries. Tier 1 frameworks only depend on Qt or other system libraries. Tier 2 frameworks can depend on tier 1 libraries, Qt and/or other system libraries and so forth.[12]

Complete list of frameworks
Name Tier Description
Frameworkintegration 4 Integration of Qt applications with KDE Plasma Workspaces.
KActivities 3 Core components for KDE's Activities Activity Manager.
KApiDox 4 Scripts and data for building API documentation in a standard format and style.
KArchive 1 Classes for easy reading, creation and manipulation of "archive" formats like zip and tar.
KAuth 2 Provides a convenient, system-integrated way to offload actions that need to be performed as a privileged user to small helper utilities.
KBookmarks 3 Web browser bookmark management.
KCMUtils 3 Utilities for KDE System Settings modules.
KCodecs 1 Provides a collection of methods to manipulate strings using various encodings.
KCompletion 2 String completion framework.
KConfig 1 Back-end for storing application configuration.
KConfigWidgets 3 Graphical control elements (widgets) for configuration dialogs.
KCoreAddons 1 Utilities for core application functionality and accessing the OS.
KCrash 2 Provides support for intercepting and handling application crashes.
KDBusAddons 1
KDE4Support 4
KDeclarative 3
KDED 3
KDesignerPlugin 3
KDESu 3
KDEWebkit 3
KDNSSDFramework 2
KDocTools 2
KEmoticons 3
KF5Umbrella 1
KFileAudioPreview 4
KGlobalAccel 1
KGuiAddons 1
KHTML 4
Ki18n 1
KIconThemes 3
KIdleTime 1
KImageFormats 1
KInit 3
KIO 3
KItemModels 1
KItemViews 1
KJobWidgets 2
KJS 1
KJSEmbed 3
KMediaPlayer 3
KNewStuff 3
KNotifications 3
KNotifyConfig 3
KParts 3
KPlotting 1
KPrintUtils 3
KPty 2
Kross 3
KRunner 3
KService 3
KTextEditor 3
KTextWidgets 3
KUnitConversion 2
KWalletFramework 3
KWidgetsAddons 1
KWindowSystem 1 allows to interact with the windowing system. It provides a NETRootInfo for accessing the global state (all that’s set on the root window) and NETWinInfo for all information about a specific window. The classes have a window manager and client perspective. This is the foundation which powers KWin and various parts of the graphical shell such as the taskmanager.[13]

On top of those X11-specific classes we have a convenient API KWindowInfo and KWindowSystem which provides a windowing system independent API for our applications.

KXMLGUI 3
Plasma-framework 3
Solid 1
Sonnet 1 spell checker
ThreadWeaver 1

History[edit]

The first release of KDE Frameworks was version 5 to account for the fact, that the entire code base is that of KDE Platform, whereas the only version of KDE Platform was version 4 to account for the fact that it was a repacking thing and the entire code base remained from predecessors.

Major improvements aimed for in Frameworks 5 include increased modularization. In earlier KDE versions, the libraries were bundled as a single large package. In Frameworks, the libraries will be split into individual smaller packages. This will facilitate utilization of the libraries by other Qt-based software, since dependencies can be kept at a minimum.[4]

Whereas KDE 4 was based on version 4 of the widget toolkit Qt, Frameworks 5 will be based on version 5. Qt 5 enables increased usage of QML, a simpler JavaScript-based declarative programming language, for design of user interfaces. The graphics rendering engine used by QML allows for more fluid user interfaces across different devices.[4]

Release schedule[edit]

Version Planned date Actual date Notes
Tech preview 1 December 2013[4] 7 January 2014[14]
Alpha 1 1 February 2014[15] 14 February 2014[16]
Alpha 2 1 March 2014[17] 3 March 2014[18]
Beta 1 1 April 2014[17] 1 April 2014[2]
Beta 2 4 May 2014[17] TBD
Beta 3 1 June 2014[17] 5 June 2014
Final 1 July 2014[17] 7 July 2014[19]
5.1 7 August 2014 7 August 2014

References[edit]

  1. ^ "Release of KDE Frameworks 5.2.0". KDE. 2014-09-12. Retrieved 2014-09-15. 
  2. ^ a b "KDE Ships Third Beta of Frameworks 5". KDE. 2014-06-05. 
  3. ^ "First release of KDE Frameworks 5". 2014-07-07. 
  4. ^ a b c d Howard Chan (2013-09-04). "KDE Release Structure Evolves". KDE. Retrieved 2014-02-27. 
  5. ^ "KF5 Update Meeting Minutes 2014-w28". 2014-07-08. 
  6. ^ "Firefox + KDE integration: Getting FF to use Dolphin reliably". 2014-07-03. 
  7. ^ "Coinstallability with KDE Platform 4". 
  8. ^ "Release schedule for KDE Frameworks 5". 
  9. ^ "Git workflow for Frameworks". 
  10. ^ "KDE Frameworks5 API documentation". 
  11. ^ Jos Poortvliet (2013-12-17). "Qt 5.2 - Foundation for KDE Frameworks 5". Dot.kde.org. Retrieved 2014-03-10. 
  12. ^ Howard Chan (2013-09-25). "Frameworks 5". Dot.kde.org. Retrieved 2014-03-10. 
  13. ^ http://blog.martin-graesslin.com/blog/2014/02/kwindowsystem-in-frameworks-5/
  14. ^ "Frameworks 5 Technology Preview". KDE. 2014-01-07. 
  15. ^ Kevin Ottens (2014-01-06). "KDE Frameworks: Moving toward 5.0 final and Governance". kde-core-devel mailing list. http://lists.kde.org/?l=kde-core-devel&m=138899121007825&w=1. Retrieved 2014-02-27.
  16. ^ "KDE Ships First Alpha of Frameworks 5". KDE. 2014-02-14. 
  17. ^ a b c d e "KDE Frameworks Epics Dashboard". KDE. 2014-02-14. Retrieved 2014-02-27. 
  18. ^ "KDE Ships Second Alpha of Frameworks 5". KDE. 2014-03-03. 
  19. ^ "First release of KDE Frameworks 5". Retrieved 8 July 2014.