Reviewing and merging file-templates and unittest branches

Aleix Pol aleixpol at
Mon Sep 17 12:05:58 UTC 2012

On Mon, Sep 17, 2012 at 12:27 PM, Miha Čančula <miha at> wrote:
> Hello!
> I worked on templates for code generation this summer as part of GSoC
> (branch "file-templates"), as well as a framework for finding, running and
> reporting unit tests (branch "unittest"). Both branches are in kdevelop and
> kdevplatform repositories, and 'unittest' also has a component in kdev-php.
> Also, they are not related in any way, so I would prefer merging them
> separately.
> I was busy with schoolwork since the end of GSoC, but now I finally finished
> my school obligations for this year, so I have the rest of September free to
> focus on KDevelop. I'm sure that some work will be needed for merging both
> branches, so I'd like to do it soon while I still have enough time.
> I am asking for a review of both code and functionality for both projects.
> Because they are rather large changes, I didn't create a review request on
> ReviewBoard, but I will do so if needed. I'm providing a short summary of
> changes so you know where to look:
> 1. Templates
>  * kdevplatform:
>    - in language/codegen, I have added utility classes for rendering
> templates with Grantlee. These are mainly SourceFileTemplate,
> TemplateRenderer, and CodeDescription. They are all documented. There are
> also TemplatesModel and MultiLevelListView which are useful for navigating
> through installed templates.
>    - the class assistant in createclass.{h,cpp}, along with UI files and
> licenses was moved to a plugin in plugins/filetemplates. I have
> refactored/replaced much of the code there.
>    - added an interface in language/interfaces for a CreateClassHelper, with
> implements language-specific parts of code generation.
>    - in templates, I created some Grantlee filters, as well as convenience
> inclusion templates.
>  * kdevelop:
>    - remove C++ specific class generator in languages/cpp/cppcreateclass.h.
> Replaced it with a CreateClassHelper implementation.
>    - in file_templates, there is now a large number of templates for
> classes, unit tests, and other things (like cmake modules). These will be
> put on kde-files instead of the code repository, except perhaps the basic
> ones for each language. I would still like some comments on this.
> 2. Unit tests
>  * kdevplatform:
>    - in interfaces, added new interfaces: ITestSuite (for a single test
> suite) and ITestController
>    - in shell, a TestController implementation
>    - in plugins/testview, a plugin that shows all found tests and allows the
> user to run them and see results
>    - in plugins/patchreview, the option of running tests before submitting a
> patch
>  * kdevelop:
>    - in cmakemanager, an implementation of ITestSuite for tests declared in
> CMake files with add_test. It works with KDE's wrapper, as well as with a
> custom wrapper macro. CMakeManager now also looks through source files to
> find declaration for test cases, which only works with QTestLib.
>  * php:
>    - again, an implementation of ITestSuite for running with phpUnit. Test
> suites are found as classes which inherit from PHPUnit_Framework_TestCase.
> That's it in short, quite possibly I missed some minor change in another
> folder. All new API I introduced is documented in the source files, and
> working with templates is already on Techbase
> ( and Userbase. There
> also unit tests wherever I could add them.
> So, please try to look at the source and the new functionality. I have just
> merged changes from master to both 'file-templates' branches, so you can
> compile it right away. And let me know if I can make reviewing any easier,
> either with a review request or in any other way.
> Thank you,
> Miha Čančula
> --
> KDevelop-devel mailing list
> KDevelop-devel at

Hi Miha!
I'm really happy to see you happy enough with these branches to be
merged, I think it will be an important step for KDevelop to take
advantage of them and I'm looking forward to it.

It's a rather large codebase so I'll try to review it before the end
of hte sprint where we should decide to merge them for real :).

Thanks Miha!

More information about the KDevelop-devel mailing list