[ 
http://jira.codehaus.org/browse/MCHANGELOG-118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=257429#action_257429
 ] 

Ivan Mrva commented on MCHANGELOG-118:
--------------------------------------

In my opinion, integration tests included in this patch (and also currently 
existing tests) could be better, if they would include also parsing the 
resultant output HTML file. I did not want to do it like this, because that 
would mean a definition of new dependency to project (some HTML parser 
library). But in this moment, all my tests are at least on the same level as 
another currently existing tests are (I did them by analogy).

> Provide simple sorting based on the content of SCM commit messages on the 
> HTML report.
> --------------------------------------------------------------------------------------
>
>                 Key: MCHANGELOG-118
>                 URL: http://jira.codehaus.org/browse/MCHANGELOG-118
>             Project: Maven 2.x Changelog Plugin
>          Issue Type: New Feature
>    Affects Versions: 2.2
>            Reporter: Ivan Mrva
>            Priority: Minor
>         Attachments: changelog-sorting-comment.diff, sample-sorted-report.png
>
>
> Purpose:
> In our company we have a 'pre-commit' hook script set up for all projects, 
> that requires from developers to fulfill some formatting rules of SCM commit 
> message. We would like to leverage from this rules and reflect them also on 
> the HTML change log to have a more comprendious and well-arranged change log 
> report. We would like to have commit messages sorted and placed in several 
> additional columns (instead of having them all in one 'Detail' column) in a 
> table on HTML report based on their format and content.
> Example:
> Suppose you want to divide SCM entries displayed on HTML report into four 
> columns labeled as "Bug fixes", "Features", "Improvements" and "Other 
> changes" in this order. Commit messages that contain at the beginning of the 
> line string "[B]" shall be placed in the "Bug fixes" column, messages with 
> "[F]" at the beginning shall come in the "Features" column, and messages with 
> "[I]" shall come in the "Improvements" column. All other messages shall 
> reside in the last "Other changes" column.
> To see an example of how can such customized report look like, see screenshot 
> added as attachment (*sample-sorted-report.png*).
> I implemented a patch (see *changelog-sorting-comment.diff*) that contains 
> logic that performs sorting of SCM entries as described above and I did it in 
> a general way, so that other users of changelog-plugin can define their own 
> rules for sorting messages. So, with my implementation, you can customize 
> report layout as described in above example by providing three new plugin 
> configuration parameters:
> * *commentSortRegexPattern*=^[[BFI]]
> ** Standard java regex pattern that is used for searching a match in commit 
> messages.
> ** In this case, it matches commit messages that begin with "[B]", "[F]" or 
> "[I]" string
> * *commentSortMatchValues*=[B],[F],[I]
> ** Possible values of result of matches found by above pattern.
> ** Used to determine number and order of newly created columns. Also defines 
> which message is placed into which column (messages with [B] at the beginning 
> will be placed in the first column, [F] in the second column, and so on ...).
> * *commentSortColumnHeaders*=Bug fixes,Features,Improvements,Other changes
> ** Header titles for newly created columns.
> ** They matches the order and number of 'commentSortMatchValues' values, but 
> with one last additional value that is used as a header title for last 
> column, where all 'unsorted' messages will be placed.
> Complete documentation of these parameters is included in my implementation 
> as javadoc.
> What I did in the patch:
> * 1. I modified 'ChangeLogReport" class as follows:
> ** a) I added three new plugin parameters:
> *** commentSortRegexPattern
> *** commentSortMatchedValues
> *** commentSortColumnHeaders
> *** including comprehensive documentation - see source code in the patch.
> ** b) I added call to newly created method "validateCommentSortParams()" to 
> main "executeReport" method. As it is obvious from its name, this method 
> performs validation of above mentioned three parameters (including different 
> combinations of parameters configuration).
> ** c) I slightly modified method "doChangedSetTable" to support creation of 
> new additional column headers used for sorting SCM commit messages. These 
> headers are created only if above mentioned plugin parameters are specified. 
> Otherwise code behaves exactly as it behaved before my change.
> ** d) Original method "doChangeSetDetail" was extended with little bit of new 
> logic that distributes SCM messages together with changed files into new 
> columns - if comment sorting functionality is enabled. Because of that, I 
> needed to extract code that deals only with 'detail' column to a separate 
> method - now called "doChangeSetEntryDetail". Finally, I renamed original 
> "doChangeSetDetail" method to "doChangeSetEntry" name, because it deals with 
> whole entry (one row in HTML table including timestamp and author columns) 
> and not only 'detail' part - just to improve a readability of code.
> * 2. I modifies "ChangeLogReportTest" class:
> ** f) I add some integration tests that tests both correct and wrong 
> combination of configuration parameters to "ChangeLogReportTest" class.
> If there is something else to do in connection with this patch, please let me 
> know and I can do it. If this patch could be accepted and included in 
> official release of plugin, I would be grateful and I am also willing to 
> provide any following required bug fixes to this functionality.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to