Reviewing and merging file-templates and unittest branches

Milian Wolff mail at milianw.de
Tue Oct 23 22:06:40 UTC 2012


Hey Miha,

we just sat together and discussed and reviewed the visual things of the file-
templates branches. All in all we agree that we are going to merge that beast 
into master (I'll do that tomorrow) and then continue from there on.

Here is a list of stuff that needs to be done:

- new project wizard should reduce on clutter 
--- merge single language items (see also below)
--- add icons if possible

- new file from template
-- test category twice in .desktop file of e.g. test_qtestlib.desktop 
(Category=Test/Test/C++)
-- where comes the identifier page from?
-- test cases wizard page:
--- tab order wrong
--- fast adding of test cases with the keyboard (enter to add next e.g.), 
proper focus management, etc. pp.
-- move c++/qt category to c++ (qt) i.e. next to c,c++,python,...

- general
-- prevent collapse in trees of templates
-- remove root node in outermost template
-- simplify categories (no Basic/Basic, merge parent/child nodes if there is 
only a single child

- templates config
-- "load": rename to "import from file" or similar
-- "extract" -> rename to "adapt" or similar, and ensure that the extracted 
project is directly opened as a project in kdevelop, ready for editing.
-- expand all trees
-- share is broken (still missing the khns provider?)

- aborting KHNS dialog during download of project template crashes

Other than that, good work. We can try to improve all the things above in the 
next days when I've merged this code into master. Regarding the unittest 
branch though, I cannot merge master into it to try it out... Lots of 
apparently unrelated conflicts... Could you have a look at that please?


On Monday 17 September 2012 12:27:56 Miha Čančula 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 (
> http://techbase.kde.org/Development/Tutorials#KDevelop) 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
-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20121024/d99ac662/attachment.sig>


More information about the KDevelop-devel mailing list