https://agateau.com/tags/kf5/feedPosts tagged kf52016-11-24T07:50:27+01:00Aurélien Gâteaupython-feedgenhttps://agateau.com/2013/frameworks-5-pushFrameworks 5 Push2013-08-12T21:45:47+02:00<p>In case you haven't heard of it, <a href="http://community.kde.org/Frameworks">KDE Frameworks 5</a> is an effort to port our existing kdelibs to Qt5 and split it into smaller components. This requires work in many areas: in addition to the actual porting (which is reasonably easy), dependencies between classes needs to be reduced, some of our classes are being deprecated and their features integrated into Qt5 itself, the code is being made more portable... This huge project is driven by awesome hackers Kévin Ottens and David Faure.</p>
<p>Back in Akademy, my Blue Systems colleague Alex Fiestas came up with a great idea: what if all Blue Systems developers switched to working exclusively on Frameworks for three months?</p>
<p>He did not have to work hard to convince us, and this is what most of us have been doing since the beginning of August.</p>
<p>I am quite happy with this push, it feels good to work on Frameworks. I have always felt a bit guilty that I was not contributing to it, blaming the usual lack-of-time and too-many-projects excuses.</p>
<p>You may remember I recently <a href="https://agateau.com/2013/06/20/getting-started-on-kdepim/">announced I would be working on KDE-PIM</a>. I still intend to do so, but this is put on hold until the end of the push. This means some of the changes I have in mind won't make it in KDE SC 4.12, but sometimes one has to shift priorities. The Frameworks project is critical, for KDE and KDE projects like <a href="http://vizzzion.org/blog/2013/01/the-road-to-kde-frameworks-5-and-plasma-2/">Plasma Workspaces 2</a> but also for the whole Qt ecosystem: I am looking forward to see Qt-only applications being able to use our technologies, without fear of dragging too many dependencies.</p>2013-08-12T21:45:47+02:00https://agateau.com/2014/dependency-diagrams-on-api.kde.orgDependency diagrams on api.kde.org!2014-03-01T22:40:13+01:00<p>Today I am happy to announce that after a bit of work we finally got dependency diagrams for KDE Frameworks 5 automatically generated on <a href="http://api.kde.org/frameworks-api/frameworks5-apidocs/">api.kde.org</a>. Pick a framework, then click on the "Dependencies" link in the sidebar. For example, a tier 2 framework like <a href="http://api.kde.org/frameworks-api/frameworks5-apidocs/kauth/html/kauth-dependencies.html">KAuth</a>, a tier 3 one like <a href="http://api.kde.org/frameworks-api/frameworks5-apidocs/kiconthemes/html/kiconthemes-dependencies.html">KIconThemes</a> or if your looking for something a bit crazier, here is <a href="http://api.kde.org/frameworks-api/frameworks5-apidocs/kio/html/kio-dependencies.html">KIO</a>.</p>
<p>Getting this to work was a bit more involved than I originally thought because the first part of the diagram generation is done by running <code>cmake --graphviz</code> on the source code. This means it must be run on a system with all the necessary dependencies installed. We ended up having the build servers run this part and rsync'ing the result to the server responsible for running Doxygen.</p>
<p>If you are interested in how it works, the code is available in the <a href="http://quickgit.kde.org/?p=kapidox.git">kapidox repository</a>. Feel free to ping me if you need help with it.</p>
<p>I am still debating whether it makes sense to host the <a href="https://agateau.com/2014/dependency-diagrams-on-api.kde.org/kf5.png">"mother of all diagrams"</a> on api.kde.org or not. My gut feeling tells me that while it's impressive, it is of limited value and this is only going to get worse as we add new frameworks (the linked diagram is already outdated). It would probably be more interesting to produce a readable diagram of all tier 1 and tier 2 frameworks instead. I experimented a bit with this, but I am not done yet: I need to find a way to get more vertical spaces between cluster graphs. Right now <a href="https://agateau.com/2014/dependency-diagrams-on-api.kde.org/tier-1-2-qt.png">the result is not useful</a> because the arrows are all stuck together, even <a href="https://agateau.com/2014/dependency-diagrams-on-api.kde.org/tier-1-2.png">without Qt libs</a>.</p>2014-03-01T22:40:13+01:00https://agateau.com/2014/back-from-the-kde-frameworks-sprintBack from the KDE Frameworks Sprint2014-04-30T10:26:20+02:00<p>Last week I attended the KDE Frameworks Sprint, held in Blue Systems Barcelona office. Kevin put together the now traditional sticky note board and we started cranking through the tasks. I think we were quite productive, as this picture of the board at the end of the sprint can attest:</p>
<p><a href="https://agateau.com/2014/back-from-the-kde-frameworks-sprint/sticky-note-board.jpg"><img alt="Sticky Note Board" src="https://agateau.com/2014/back-from-the-kde-frameworks-sprint/thumb-sticky-note-board.jpg"/></a></p>
<p>I spent most of my time working on translation support, ironing out details to get them to install properly and working with David on the release tarballs scripts. I also worked a bit on <a href="http://quickgit.kde.org/?p=kapidox.git">KApidox</a>, the code generating API documentation for KF5 on <a href="http://api.kde.org">api.kde.org</a>. I updated the script to match with the latest framework changes and switched to the <a href="http://jinja.pocoo.org">Jinja2</a> template engine. Using Jinja will make it possible to generate an up-to-date list of frameworks on the landing page, based on the information from the framework <code>metainfo.yaml</code> files. I already have a branch which creates this list, but before I deploy it I want to fix the dependency diagrams on the server. Hopefully I'll figure it out this week.</p>2014-04-30T10:26:20+02:00https://agateau.com/2014/using-kapidoxUsing KApidox2014-05-26T18:07:02+02:00<h2>What is KApidox?</h2>
<p>Good libraries come with good documentation. It is therefore essential for KDE Frameworks to provide comprehensive online and offline documentation.</p>
<p>KApidox is a set of tools used to generate <a href="http://api.kde.org/frameworks-api/frameworks5-apidocs">KDE Frameworks documentation</a>. These command-line tools use <a href="http://doxygen.org">Doxygen</a> to do most of the work. The following tools are provided:</p>
<ul>
<li><code>kgenapidox</code>: Generate documentation for a single framework</li>
<li><code>kgenframeworksapidox</code>: Generate documentations for all frameworks as well as the landing page which lets you list and filter frameworks by supported platforms</li>
<li><code>depdiagram-prepare</code> and <code>depdiagram-generate</code>: Generate dependency diagrams (requires CMake and Graphviz)</li>
</ul>
<p>In this post I am going to talk about <code>kgenapidox</code>, which is the tool you are most likely to run by yourself. While it is often good enough to read documentation online through api.kde.org, it is also useful to be able to generate documentation offline, for example because your Internet access is slow or you are currently offline, or because you want to improve the existing documentation. <code>kgenapidox</code> is the tool you want to use for this.</p>
<h2>Installing</h2>
<p>The first thing to do is to install KApidox. The code is hosted in a Git repository on <a href="http://quickgit.kde.org/?p=kapidox.git">KDE infrastructure</a>. Get it with:</p>
<div class="codehilite"><pre><span/><code>git clone git://anongit.kde.org/kapidox
</code></pre></div>
<p>KApidox tools are written in Python. In addition to Doxygen, you need to have the <a href="http://pyyaml.org">pyyaml</a> and <a href="http://jinja.pocoo.org">Jinja2</a> Python modules installed. If your distribution does not provide packages for those modules, you can install them with:</p>
<div class="codehilite"><pre><span/><code>pip install --user pyyaml jinja2
</code></pre></div>
<p>KApidox itself can be installed the standard Python way using <code>python setup.py install</code>. You can also run KApidox tools directly from the source directory.</p>
<h2>Generating Documentation</h2>
<p>You are now ready to generate documentation. Go into any checkout of a framework repository and run <code>kgenapidox</code>:</p>
<div class="codehilite"><pre><span/><code>$ kgenapidox
19:08:48 INFO Running Doxygen
19:08:49 INFO Postprocessing
19:08:50 INFO Done
19:08:50 INFO Doxygen warnings are listed in apidocs/doxygen-warnings.log
19:08:50 INFO API documentation has been generated in apidocs/html/index.html
</code></pre></div>
<p>As you can see from the command output, the documentation is generated by default in the <code>apidocs/html</code> directory. You can now open the documentation with your preferred browser. <code>kgenapidox</code> can also tell Doxygen to generate man pages or Qt compressed help files. Run <code>kgenapidox --help</code> for more details.</p>
<h2>Improving the Documentation</h2>
<p>If you maintain a framework, contribute to the KDE Frameworks project or want to get involved, open the warning file generated in <code>apidocs/doxygen-warnings.log</code> and start fixing! Improving the documentation of a framework can make it much more useful, so it is a very welcome contribution.</p>
<p><em>Vim tip: The warnings file can be loaded in the quickfix list with <code>:cfile apidocs/doxygen-warnings.log</code>.</em></p>2014-05-26T18:07:02+02:00https://agateau.com/2016/gwenview-importer-is-backGwenview Importer is back2016-11-24T07:50:27+01:00<p>I spent some time over the last weeks to port Gwenview Importer to KDE Frameworks 5, as I was getting frustrated with importing pictures by hand. It's a straight port: no new features.</p>
<p>Here is a screenshot after I filled my SD Card with random pictures of my daughter and cat for the purpose of illustrating this blog post :)</p>
<p><img alt="Gwenview Importer" src="https://agateau.com/2016/gwenview-importer-is-back/gwenview-importer.png"/></p>
<p>I missed the KDE Applications 16.12 deadline, but the code is in Gwenview master now, so Gwenview Importer should be in the next KDE Applications release.</p>
<hr/>
<p><em>Update, 2017-05-14:</em></p>
<p>Looks like I messed up while porting, see <a href="https://bugs.kde.org/show_bug.cgi?id=379615">bug 379615</a>. Users of 17.04.0 and 17.04.1 should refrain from using the importer. Thanks to Henrik (don't know your last name, sorry), the bug has been fixed in 17.04.2.</p>2016-11-24T07:50:27+01:00