Review Request: Share code between makebuilder and external scripts

Morten Volden mvolden2 at gmail.com
Thu May 17 21:14:52 UTC 2012



> On May 3, 2012, 10:05 a.m., Milian Wolff wrote:
> > phew large patch and still many issues in there but overall the correct direction - many thanks!
> > 
> > besides the small nitpicks below, I think we still need to solve two fundamental issues:
> > 
> > a) user-defined rules. this is nothing I expect to be implemented by this patch, but something that should be kept in mind. imo, the architecture you define here would not allow this without deep changes so, while at it, please adapt the api to take this into account.
> > b) filter strategies: now, external scripts have a "script" strategy and executescript has the "compiler" strategy... this looks strange and is probably too hard coded
> > 
> > both issues are imo related. I think "strategies", or filters in general, should be extensible. there should be some api to allow one to add filters which would be used to replace the existing filter strategies. then on usage the job would just go over all existing filters and use the first matching one. maybe we can keep the idea of the strategies as categories, such that outputjob users can say "only filters in category 'compiler'" or similar...

Millian. Thanks for taking the time to review this - really appreciate it. :-)

I agree 100% with the points you have stated above. I think this should be made user-defined. Probably by making a plug-in to handle the strategies/filters and adding/editing/deleting them. 

As you mention that work should probably go into another patch. 

So, in the interest of getting it out there I propose the following order of things:

 - Extend the external script dialog to choose between the existing filters
 - The same for the execute script dialog
 - (Hopefully) Get this patch accepted
 - Submit review for Kdevelop changes
 - Submit review for Custom buildsystem changes
 - Start work on filter strategy extension plugin. 

Does this sound OK?


- Morten


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104814/#review13328
-----------------------------------------------------------


On May 15, 2012, 9:52 p.m., Morten Volden wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104814/
> -----------------------------------------------------------
> 
> (Updated May 15, 2012, 9:52 p.m.)
> 
> 
> Review request for KDevelop.
> 
> 
> Description
> -------
> 
> So far I have:
>    * Moved some of the filtering code
>        - More specifically some of the code for filtering (Compiler output, script output ) 
> 
>    * Extended the outputmodel 
>          - It now inherits from QAbstractListModel and IOutputview model
>          - It is now possible to choose a filtering strategy on the outputview outputmodel
>    * Plus a few other things to make things work
> 
>    * Started doing some Unit test of the different filters
> 
> The solution currently has four filtering strategies:
> 
> * No filter
> * Compiler filter 
> * Script Error flter 
> * StaticAnalysis Filter (for cpp check, krazy, etc)
> 
> I think I have now come to a point where it would be good to get some feedback on the proposed solution
> 
> Work identified that remains to be done (Input is welcome):
> 
> * Finish tests for filter strategies
> * Move MakeoutputModel tests to outputview and extend them
> * Make Makebuildder use the code in outputview. 
> * Make NofilteringStrategy faster (i.e. do not create a filtered item for each line)
> * Make custom buildsystem use the code in outputview - Done (But Needs to be reviewed)
> * Extend filterstrategies with other filters?? (Input on that one is most welcome)
> * Discuss how the filters should be selected via the GUI (and in which use-cases it makes sense to do so)
> 
> 
> Diffs
> -----
> 
>   outputview/CMakeLists.txt 5d9e539 
>   outputview/delegateholder.h PRE-CREATION 
>   outputview/delegateholder.cpp PRE-CREATION 
>   outputview/filtereditem.h PRE-CREATION 
>   outputview/filtereditem.cpp PRE-CREATION 
>   outputview/ifilterstrategy.h PRE-CREATION 
>   outputview/ifilterstrategy.cpp PRE-CREATION 
>   outputview/outputdelegate.h PRE-CREATION 
>   outputview/outputdelegate.cpp PRE-CREATION 
>   outputview/outputfilteringstrategies.h PRE-CREATION 
>   outputview/outputfilteringstrategies.cpp PRE-CREATION 
>   outputview/outputformats.h PRE-CREATION 
>   outputview/outputformats.cpp PRE-CREATION 
>   outputview/outputjob.h c17b592 
>   outputview/outputjob.cpp 5b9db06 
>   outputview/outputmodel.h b4c9631 
>   outputview/outputmodel.cpp 317e3ee 
>   outputview/tests/CMakeLists.txt PRE-CREATION 
>   outputview/tests/filteringstrategytest.h PRE-CREATION 
>   outputview/tests/filteringstrategytest.cpp PRE-CREATION 
>   outputview/tests/outputmodeltest.h PRE-CREATION 
>   outputview/tests/outputmodeltest.cpp PRE-CREATION 
>   outputview/tests/projects/onefileproject/main.cpp PRE-CREATION 
>   outputview/tests/testlinebuilderfunctions.h PRE-CREATION 
>   plugins/execute/nativeappjob.cpp 3eb654c 
>   plugins/executescript/executescriptoutputmodel.h 180adbd 
>   plugins/executescript/executescriptoutputmodel.cpp 1c852e9 
>   plugins/executescript/executescriptplugin.h 4eea6a4 
>   plugins/executescript/executescriptplugin.cpp e55b514 
>   plugins/executescript/scriptappconfig.h 2e401ea 
>   plugins/executescript/scriptappconfig.cpp d7ff984 
>   plugins/executescript/scriptappjob.h 48400aa 
>   plugins/executescript/scriptappjob.cpp 3b68ca5 
>   plugins/externalscript/externalscriptjob.h 1922469 
>   plugins/externalscript/externalscriptjob.cpp aeb5a34 
>   plugins/externalscript/externalscriptoutputmodel.cpp 7a3d5d4 
>   plugins/externalscript/externalscriptplugin.h c87aaa8 
>   plugins/externalscript/externalscriptplugin.cpp 6d62b63 
>   vcs/dvcs/dvcsjob.cpp 1e0f187 
> 
> Diff: http://git.reviewboard.kde.org/r/104814/diff/
> 
> 
> Testing
> -------
> 
> Started working on Unittest for filtering strategies. Plan to move most tests from Makeoutputmodel at some point. Plus used the patch for a week now and nothing seemingly breaks...
> 
> 
> Screenshots
> -----------
> 
> CPPCheckBefore
>   http://git.reviewboard.kde.org/r/104814/s/550/
> CppcheckAfter
>   http://git.reviewboard.kde.org/r/104814/s/551/
> QuickCompileBefore
>   http://git.reviewboard.kde.org/r/104814/s/552/
> QuickCompileAfter
>   http://git.reviewboard.kde.org/r/104814/s/553/
> 
> 
> Thanks,
> 
> Morten Volden
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120517/933721c1/attachment.html>


More information about the KDevelop-devel mailing list