KDE Frameworks

KDE Frameworks 5
Original author(s) KDE
Developer(s) KDE
Initial release 1 July 2014 (2014-07-01)
Stable release 5.34.0 (May 13, 2017 (2017-05-13)) [±][1]
Preview release 5.0 beta 3 (June 5, 2014 (2014-06-05)) [±][2]
Repository quickgit.kde.org
Written in C++ (Qt)
Operating system Cross-platform (including "partial" support for Android,[3][4] Windows[5] and OS X)
Type
License GNU Lesser General Public License (LGPL)[6]
Website api.kde.org/frameworks/

KDE Frameworks is a collection of libraries and software frameworks by KDE that serve as technological foundation for KDE Plasma 5 and KDE Applications 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. The frameworks are available for multiple operating systems.

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 began in August 2013, guided by top KDE technical contributors.[7]

After the initial release of KDE Frameworks 5.0 and without the stress of a strict deadline, the developers are focusing on adding features to the components in KDE Frameworks 5,[8] an example being better integration of Firefox into KDE.[9]

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

Adoption

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 LXQt, MoonLightDE or Hawaii or applications such as Amarok, Avogadro, Trojitá or Subsurface.

Version 3.0 of Krita, the raster graphics editor of the Calligra Suite, which was released on May 31, 2016, depends on KDE Frameworks 5 and Qt 5.2. The previous version, 2.8, depends on KDE Platform and Qt 4.[11]

Development

Some source code was moved from being part of KDE Frameworks 5 to being part of Qt 5.2 and later.

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

API and ABI stability

Platform releases are major releases that begin a series (version number X.0). Only these major releases are allowed to break both binary and source code compatibility with the predecessor. On the other hand, releases in the minor series (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 mainly follow the Qt release cycle, meaning that KDE SC 4 is based on Qt 4, while KDE 3 was based on Qt 3.

Supported operating systems

The repository of each framework should contain a file named metainfo.yaml.[15] This files documents the maintainer of the framework, the type, the supported operating system and other information. KConfig's maintainer is mdawson, its tier is 1, its type is functional, the supported platforms are Linux, Windows, MacOSX and Android, it is not a portingAid nor is it deprecated.

Software architecture

Structure

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

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

Components

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.[16]

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.[17]

Software packages

Linux distribution use some package management system to package the software they distribute. Debian for example distributes KGlobalAccel under the package name libkf5globalaccel,[19] while Fedora distributes it under the name kf5-kglobalaccel.[20]

History

The first release of KDE Frameworks was version 5, to account for the fact that the code base was that of KDE Platform version 4 (the only major version of KDE Platform). Thus KDE Frameworks version 5 signified that while a repacking had occurred, the entire code base had been carried over from its predecessor.

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.[7]

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

Release history

The 5.0 release was preceded by a technology preview, two alpha releases, and three beta releases.[21][22][23][2]

Frameworks 5 releases
Version Date Notes
Old version, no longer supported: 5.0 7 July 2014[24] Initial release
Old version, no longer supported: 5.1 7 August 2014
Old version, no longer supported: 5.2 12 September 2014[25]
Old version, no longer supported: 5.3 7 October 2014[26]
Old version, no longer supported: 5.4 6 November 2014[27]
Old version, no longer supported: 5.5 11 December 2014[28]
Old version, no longer supported: 5.6 8 January 2015[29] New frameworks: KPackage and NetworkManagerQt
Old version, no longer supported: 5.7 14 February 2015[30]
Old version, no longer supported: 5.8 13 March 2015[31] New frameworks: KPeople and KXmlRpcClient
Old version, no longer supported: 5.9 10 April 2015[32] New framework: ModemManagerQt
Old version, no longer supported: 5.10 8 May 2015[33]
Old version, no longer supported: 5.11 12 June 2015[34] New framework: BlueZ-Qt (cf. BlueZ)
Old version, no longer supported: 5.12 10 July 2015[35]
Old version, no longer supported: 5.13 12 August 2015[36] New frameworks: Baloo (replaces NEPOMUK) and KFileMetaData
Old version, no longer supported: 5.14 11 September 2015[37]
Old version, no longer supported: 5.15 10 October 2015[38]
Old version, no longer supported: 5.16 13 November 2015[39]
Old version, no longer supported: 5.17 12 December 2015[40]
Old version, no longer supported: 5.18 9 January 2016[41]
Old version, no longer supported: 5.19 13 February 2016[42]
Old version, no longer supported: 5.20 13 March 2016[1]
Old version, no longer supported: 5.21 9 April 2016[43] New framework: KActivities-stats
Old version, no longer supported: 5.22 15 May 2016[44] New framework: KWayland
Old version, no longer supported: 5.23 13 June 2016[45]
Old version, no longer supported: 5.24 9 July 2016[46]
Old version, no longer supported: 5.25 13 August 2016[47] Now requires Qt 5.5 or above.
Old version, no longer supported: 5.26 10 September 2016[48]
Old version, no longer supported: 5.27 8 October 2016[49]
Old version, no longer supported: 5.28 15 November 2016[50] New framework: KSyntaxHighlighting[51]
Old version, no longer supported: 5.29 12 December 2016[52] New framework: Prison
Old version, no longer supported: 5.30 14 January 2017[53] Add KNewStuff support for KPackage
Old version, no longer supported: 5.31 11 February 2017[54] Many modules now have Python bindings
Old version, no longer supported: 5.32 11 March 2017[55]
Old version, no longer supported: 5.33 08 April 2017[56]
Old version, no longer supported: 5.34 13 May 2017[57]
Old version, no longer supported: 5.35 1 June 2017[58]
Current stable version: 5.36 08 July 2017[59]
Legend:
Old version
Older version, still supported
Latest version
Latest preview version
Future release

References

  1. 1 2 Faure, David (13 May 2017). "KDE Frameworks 5.34.0 released". Retrieved 8 June 2017 via marc.info.
  2. 1 2 "KDE Ships Third Beta of Frameworks 5". KDE. 2014-06-05.
  3. https://www.kde.org/announcements/kde-frameworks-5.24.0.php
  4. https://community.kde.org/Android
  5. https://api.kde.org/
  6. "First release of KDE Frameworks 5". 2014-07-07.
  7. 1 2 3 Howard Chan (2013-09-04). "KDE Release Structure Evolves". KDE. Retrieved 2014-02-27.
  8. "KF5 Update Meeting Minutes 2014-w28". 2014-07-08.
  9. "Firefox + KDE integration: Getting FF to use Dolphin reliably". 2014-07-03.
  10. "Coinstallability with KDE Platform 4".
  11. "Krita 3.0 released". 2016-05-31.
  12. "Release schedule for KDE Frameworks 5".
  13. "Git workflow for Frameworks".
  14. "KDE Frameworks5 API documentation".
  15. "metainfo.yaml of KConfig".
  16. Jos Poortvliet (2013-12-17). "Qt 5.2 - Foundation for KDE Frameworks 5". Dot.kde.org. Retrieved 2014-03-10.
  17. Howard Chan (2013-09-25). "Frameworks 5". Dot.kde.org. Retrieved 2014-03-10.
  18. http://blog.martin-graesslin.com/blog/2014/02/kwindowsystem-in-frameworks-5/
  19. "KGlobalAccel in Debian".
  20. "KGlobalAccel in Fedora".
  21. "Frameworks 5 Technology Preview". KDE. 2014-01-07.
  22. "KDE Ships First Alpha of Frameworks 5". KDE. 2014-02-14.
  23. "KDE Ships Second Alpha of Frameworks 5". KDE. 2014-03-03.
  24. "First release of KDE Frameworks 5". Retrieved 8 July 2014.
  25. "Release of KDE Frameworks 5.2.0". KDE. 12 September 2014. Retrieved 5 March 2015.
  26. "Release of KDE Frameworks 5.3.0". 7 October 2014. Retrieved 5 March 2014.
  27. "Release of KDE Frameworks 5.4.0". KDE. 6 November 2014. Retrieved 5 March 2015.
  28. "Release of KDE Frameworks 5.5.0". KDE. 11 December 2014. Retrieved 5 March 2015.
  29. "Release of KDE Frameworks 5.6.0". KDE. 8 January 2015. Retrieved 5 March 2015.
  30. "Release of KDE Frameworks 5.7.0". KDE. 14 February 2015. Retrieved 5 March 2015.
  31. "Release of KDE Frameworks 5.8.0". KDE. 13 March 2015. Retrieved 13 March 2015.
  32. "Release of KDE Frameworks 5.9.0". KDE. 10 April 2015. Retrieved 30 April 2015.
  33. "Release of KDE Frameworks 5.10.0". KDE. 8 May 2015. Retrieved 9 May 2015.
  34. "Release of KDE Frameworks 5.11.0". KDE. Retrieved 29 June 2015.
  35. "Release of KDE Frameworks 5.12.0". KDE. Retrieved 10 July 2015.
  36. "Release of KDE Frameworks 5.13.0". KDE. 2015-08-12. Retrieved 2015-08-12.
  37. "Release of KDE Frameworks 5.14.0". KDE. 2015-09-12. Retrieved 2015-09-12.
  38. "Release of KDE Frameworks 5.15.0". KDE. 2015-10-10.
  39. "Release of KDE Frameworks 5.16.0". KDE. 2015-11-13.
  40. "Release of KDE Frameworks 5.17.0". KDE. 2015-12-12.
  41. "Release of KDE Frameworks 5.18.0". KDE. 2016-01-09.
  42. "Release of KDE Frameworks 5.19.0". KDE. 2016-02-13.
  43. "Release of KDE Frameworks 5.21.0". KDE. 2016-04-09. Retrieved 2016-04-09.
  44. "Release of KDE Frameworks 5.22.0". KDE. 2016-05-15. Retrieved 2016-05-15.
  45. "Release of KDE Frameworks 5.23.0". KDE. 2016-06-13. Retrieved 2016-06-14.
  46. "Release of KDE Frameworks 5.24.0". KDE. 2016-07-09. Retrieved 2016-07-10.
  47. "Release of KDE Frameworks 5.25.0". KDE. 2016-08-13. Retrieved 2016-08-21.
  48. "Release of KDE Frameworks 5.26.0". KDE. 2016-09-10. Retrieved 2016-10-08.
  49. "Release of KDE Frameworks 5.27.0". KDE. 2016-10-08. Retrieved 2016-10-08.
  50. "Release of KDE Frameworks 5.28.0". KDE. 2016-11-15. Retrieved 2016-11-15.
  51. "KSyntaxHighlighing: A new Syntax Highlighting Framework". KDE. 2016-11-15. Retrieved 2016-11-21.
  52. "Release of KDE Frameworks 5.29.0". KDE. 2016-12-12. Retrieved 2016-12-13.
  53. "Release of KDE Frameworks 5.30.0". KDE. 2017-01-14. Retrieved 2017-01-27.
  54. "Release of KDE Frameworks 5.31.0". KDE. 2017-02-11. Retrieved 2017-02-19.
  55. "Release of KDE Frameworks 5.32.0". KDE. 2017-03-11. Retrieved 2017-03-11.
  56. "Release of KDE Frameworks 5.33.0". KDE. 2017-04-08. Retrieved 2017-04-08.
  57. "Release of KDE Frameworks 5.34.0". KDE. 2017-05-13. Retrieved 2017-05-13.
  58. "Release of KDE Frameworks 5.35.0". KDE. 2017-06-10. Retrieved 2017-06-10.
  59. "Release of KDE Frameworks 5.36.0". KDE. 2017-07-08. Retrieved 2017-07-08.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.