Frameworks 5 Tech Preview
What is Frameworks 5?
The KDE libraries are currently the common code base for (almost) all KDE applications. They provide high-level functionality such as toolbars and menus, spell checking and file access. Currently, 'kdelibs' is distributed as a single set of interconnected libraries. Through KDE Frameworks efforts, these libraries have been methodically reworked into a set of independent, cross platform classes that will be readily available to all Qt developers.The KDE Frameworks—designed as drop-in Qt Addon libraries—will enrich Qt as a development environment with functions that simplify, accelerate and reduce the cost of Qt development. Frameworks eliminate the need to reinvent key functions.
The transition from Platform to Frameworks has been underway for almost three years and is being implemented by a team of about 20 (paid and volunteer) developers and actively supported by four companies. Frameworks 5 consists of 57 libraries: 19 independent Qt addons not requiring any dependencies; 9 that require libraries which themselves are independent; and 29 with more significant dependency chains. Frameworks are developed following the Frameworks Policies, in a vendor neutral, open process.
This KDE News article has more background on Frameworks 5.
Available today
The tech preview made available today contains all 57 libraries that are part of Frameworks 5. Of these, two have a maturity level that shows the direction of Frameworks: ThreadWeaver and KArchive. Developers are invited to take all of the libraries for a spin and provide feedback (and patches) to help bring them to the same level of maturity.KArchive offers support for many popular compression codecs in a self-contained, featureful and easy-to-use file archiving and extracting library. Just feed it files; there's no need to reinvent an archiving function in your Qt-based application! ThreadWeaver offers a high-level API to manage threads using job- and queue-based interfaces. It allows easy scheduling of thread execution by specifying dependencies between the threads and executing them while satisfying these dependencies, greatly simplifying the use of multiple threads. These are available for production use now.
There is a full list of the Frameworks; tarballs with the current code can be downloaded. Binaries are available as well.
The team is currently working on providing a detailed listing of all Frameworks and third party libraries at inqlude.org, the curated archive of Qt libraries. Each entry includes a dependency tree view. Dependency diagrams can also be found here.
Working towards a final release
The team will do monthly releases with a beta planned for the first week of April and a final release in the beginning of June.Plans for this period include tidying up the infrastructure, integration with QMake and pkg-config for non-CMake users, getting CMake contributions upstream, and a final round of API cleanups and reviews. Frameworks 5 will be open for API changes until the beta in April.
Those interested in following progress can check out the git repositories, follow the discussions on the KDE Frameworks Development mailing list and contribute patches through review board. Policies and the current state of the project and plans are available at the Frameworks wiki. Real-time discussions take place on the #kde-devel IRC channel on freenode.net.