The KApiDox poll results (at last!)
I add to put on the side most of my contributions for some times, as I’m finishing my master thesis in end August, and that I still have some exams in parallel. However it’s important that I give you a feedback about what you expect KApiDox to be. I already apologies, this post is long, but hopefully worth it.
As some of you might remember, there was a survey about the future of KApiDox and more generally of api.kde.org. First: thank you for answering, it was very helpful. In this post I’ll review your answers and discuss some of them. Feel free to comment if you do not agree with my understanding or to share your point of view. This is important for the promotion of KDE products.
Who are you
I’m quite happy because I got quite a lot of answers, mostly by KDE developers. Most people seem to be using api.kde.org for the KDE Frameworks documentation. An interesting contribution was from a developer that uses only the Qt Frameworks because he founds the KF5 online documentation difficult to use. Well, let’s try to change that!
I worked at modernizing the old api.kde.org website. It’s unfortunately not finished. Most of you find the new design nicer, which really pleases me, but still a lot of you think it’s not good enough to attract new people. As next questions show, there is a usability problem to solve: too many clicks to access to one info, more crosslinks are needed… (@VDG: Help!)
People expect the design to be more responsible for mobile browsing. I must say that I have no knowledge about this. As usual, contribution welcomed: just contact me!
Some people refered as well to the search box which
- Redirect to a page with the old design
- Shows results for all libraries, with not very transparent names (Frameworks in module Frameworks5)
This will change. See next section.
I’d like to let KApiDox generating the search box. This would have the benefit to isolate the results. If you search within the KF5 module, you don’t want to get all the KDELibs, Krita, KDevelop results. Only KF5. And that makes sense.
About the API versions to show, most of you proposed generating only the major versions plus master (For example when Okular 5 will be released: okular4, okular5, master). This makes sense to me and so I’ll see how to do this.
Some people asked me about this. It still exists but hidden: https://api.kde.org/qch. Currently one script generates them and put them where to be found by links statically written on a hand-written page. I want KApiDox to handle this. It will first generate the full qch/man file by product (one for all KF5). I’ll think later how to make it smooth library by library if really needed.
Some of you think only the Frameworks should appear here. Here is why I disagree: we don’t have the man power to maintain scripts generating the [Plasma applets, Okular, Marble, Amarok, KIPI, Krita,…] API documentation. Having a centralized place allow people using more easily what we propose. It only needs to be correctly done (and I hope it will).
Now come the question about how to organize things. There is no clear cut whether Plasma and Frameworks API must be on top, or considered only as one other KDE products. It is not my choice to promote one or another library: for now it will stay alphabetical. A problem with the idea of organizing in categories, is that it is difficult to understand this organization. Is Okular in Office or Graphic? I use it only to read PDF and epub, but you can also read pictures… Hum…
It might be less important for you, but I redesigned most of the code (written in Python). Currently everything is done through dictionaries, without too much exception handling. This makes KApiDox not robust at all. I really want to change that, and to ease in the same time the feature extension. Moreover it is part of the Frameworks, but cannot be used in the current state by people out of KDE. I really want to make that nicer, more robust, and more Pythonic. We’ll see 😛
About the expected documentation
This poll raised some comments about the documentation in itself (content) and what could be improved. It doesn’t concern KApiDox but all of us, to provide more useful documentation.
- The class-by-class documentation is mostly fine (Hurray!)
- Information about how classes and libraries fit and work together is missing. A more high-level documentation (less technical but more about the concepts) would be really appreciated.
- The introduction pages should link and name the main classes so that one doesn’t have to browse through all of them (through the awful class picker).
- More tutorial and examples would be really appreciated, directly in the class documentation or in the introduction pages. Remember my last post about this.
- Some API need reviews from people who are new to KDE: too much assumptions are made on the reader knowledge. This example was given:
NormalizedRect TextEntity::transformedArea ( const QTransform & matrix) const Returns the transformed area of the text entity.
Question: Why should one ever use such a method?
I guess that’s all…. Oh and by the way: KDevelop, Krita and libgames, it would be great if you would join our front page…..
It’s a great thing you are doing. Improved docs will make the life easier for the beginners and experienced alike. Well Done.
I rember how daunting it was for me to look at KF5 API in the initial days. XD
I can lend you a hand with python(after this gsoc ends). I’m g33kyaditya on Freenode.
Did you get in contact with Olivier Goffart about the woboq code browser? Maybe it could be integrated, e.g. https://code.woboq.org/qt5/kf5/ktexteditor/src/document/katedocument.h.html
@dhaumann: I know this website, but to integrate with Doxygen is certainly quite difficult. I’ll think about it but I’m not sure it is the priority now.