I like your suggestion!
I'll give a try as soon as I get some spare time - I have to revert
the [functor] 'final' methods of yesterday night first :P
All the best,
Simo

http://people.apache.org/~simonetripodi/
http://www.99soft.org/



On Thu, Sep 15, 2011 at 1:04 PM, sebb <seb...@gmail.com> wrote:
> On 15 September 2011 11:11, Simone Tripodi <simonetrip...@apache.org> wrote:
>> Hi Seb,
>> this is nice, it helps reducing redundancies. Would be wise adopting
>> it in all components?
>
> It's a non-active profile so needs to be specifically referenced to
> have any effect.
>
>> is there a way the parent brings the template
>> when referenced in the components, or this already does it?
>
> That would be nice, but I don't know how to do either:
> - reference shared template in parent
> - copy template from parent to component.
>
> Having a shared template would be simpler, but changes would require a
> CP pom release.
> Nicest would be to use the local template if present, and fall back on
> the shared template if not, but I've not got the Maven foo for that
> either.
>
> At least now the pom makes it fairly simple for projects to implement
> release notes.
>
>> thanks in advance!
>> Simo
>>
>> http://people.apache.org/~simonetripodi/
>> http://www.99soft.org/
>>
>>
>>
>> On Thu, Sep 15, 2011 at 12:00 PM,  <s...@apache.org> wrote:
>>> Author: sebb
>>> Date: Thu Sep 15 10:00:16 2011
>>> New Revision: 1171027
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1171027&view=rev
>>> Log:
>>> Add release-notes profile and VM template
>>> Make a start on changes.xml
>>>
>>> Added:
>>>    commons/proper/commons-parent/trunk/src/changes/
>>>    commons/proper/commons-parent/trunk/src/changes/changes.xml   (with 
>>> props)
>>>    commons/proper/commons-parent/trunk/src/changes/release-notes.vm   (with 
>>> props)
>>> Modified:
>>>    commons/proper/commons-parent/trunk/pom.xml
>>>
>>> Modified: commons/proper/commons-parent/trunk/pom.xml
>>> URL: 
>>> http://svn.apache.org/viewvc/commons/proper/commons-parent/trunk/pom.xml?rev=1171027&r1=1171026&r2=1171027&view=diff
>>> ==============================================================================
>>> --- commons/proper/commons-parent/trunk/pom.xml (original)
>>> +++ commons/proper/commons-parent/trunk/pom.xml Thu Sep 15 10:00:16 2011
>>> @@ -31,6 +31,7 @@
>>>   <version>22-SNAPSHOT</version>
>>>   <name>Commons Parent</name>
>>>   <url>http://commons.apache.org/</url>
>>> +  <description>The Apache Commons Parent Pom provides common settings for 
>>> all Apache Commons components.</description>
>>>
>>>   <ciManagement>
>>>     <system>continuum</system>
>>> @@ -926,6 +927,46 @@
>>>       </build>
>>>     </profile>
>>>
>>> +    <profile>
>>> +      <!--
>>> +          Generate release notes in top-level directory from 
>>> src/changes/changes.xml
>>> +          Usage:
>>> +          mvn changes:announcement-generate -Prelease-notes
>>> +
>>> +          Requires file src/changes/release-notes.vm.
>>> +          A sample template is available from:
>>> +          
>>> https://svn.apache.org/repos/asf/commons/proper/commons-parent/trunk/src/changes/release-notes.vm
>>> +       -->
>>> +      <id>release-notes</id>
>>> +      <build>
>>> +        <plugins>
>>> +           <plugin>
>>> +            <groupId>org.apache.maven.plugins</groupId>
>>> +            <artifactId>maven-changes-plugin</artifactId>
>>> +            <version>2.6</version>
>>> +            <configuration>
>>> +              <template>release-notes.vm</template>
>>> +              <templateDirectory>src/changes</templateDirectory>
>>> +              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
>>> +              <outputDirectory>.</outputDirectory>
>>> +              <announcementFile>RELEASE-NOTES.txt</announcementFile>
>>> +              <announceParameters>
>>> +                <releaseVersion>${commons.release.version}</releaseVersion>
>>> +              </announceParameters>
>>> +            </configuration>
>>> +            <executions>
>>> +              <execution>
>>> +                <id>create-release-notes</id>
>>> +                <phase>generate-resources</phase>
>>> +                <goals>
>>> +                  <goal>announcement-generate</goal>
>>> +                </goals>
>>> +              </execution>
>>> +            </executions>
>>> +          </plugin>
>>> +        </plugins>
>>> +      </build>
>>> +    </profile>
>>>   </profiles>
>>>
>>>   <properties>
>>>
>>> Added: commons/proper/commons-parent/trunk/src/changes/changes.xml
>>> URL: 
>>> http://svn.apache.org/viewvc/commons/proper/commons-parent/trunk/src/changes/changes.xml?rev=1171027&view=auto
>>> ==============================================================================
>>> --- commons/proper/commons-parent/trunk/src/changes/changes.xml (added)
>>> +++ commons/proper/commons-parent/trunk/src/changes/changes.xml Thu Sep 15 
>>> 10:00:16 2011
>>> @@ -0,0 +1,89 @@
>>> +<?xml version="1.0"?>
>>> +<!--
>>> +
>>> +   Licensed to the Apache Software Foundation (ASF) under one or more
>>> +   contributor license agreements.  See the NOTICE file distributed with
>>> +   this work for additional information regarding copyright ownership.
>>> +   The ASF licenses this file to You under the Apache License, Version 2.0
>>> +   (the "License"); you may not use this file except in compliance with
>>> +   the License.  You may obtain a copy of the License at
>>> +
>>> +       http://www.apache.org/licenses/LICENSE-2.0
>>> +
>>> +   Unless required by applicable law or agreed to in writing, software
>>> +   distributed under the License is distributed on an "AS IS" BASIS,
>>> +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>>> +   See the License for the specific language governing permissions and
>>> +   limitations under the License.
>>> +
>>> +-->
>>> +<!--
>>> +This file is also used by the maven-changes-plugin to generate the release 
>>> notes.
>>> +Useful ways of finding items to add to this file are:
>>> +
>>> +1.  Add items when you fix a bug or add a feature (this makes the
>>> +release process easy :-).
>>> +
>>> +2.  Do a JIRA search for tickets closed since the previous release.
>>> +
>>> +3.  Use the report generated by the maven-changelog-plugin to see all
>>> +SVN commits. TBA how to use this with SVN.
>>> +
>>> +To generate the release notes from this file:
>>> +
>>> +mvn changes:announcement-generate
>>> +then tweak the formatting if necessary
>>> +and commit
>>> +
>>> +The <action> type attribute can be add,update,fix,remove.
>>> +-->
>>> +
>>> +<document>
>>> +    <properties>
>>> +        <title>Changes</title>
>>> +        <author email="dev@commons.apache.org">Apache Commons 
>>> devlopers</author>
>>> +        <intro>
>>> +    Starting with version 22, the RAT plugin has changed Maven group and 
>>> id, so any existing configuration
>>> +    needs to be updated.
>>> +    To fix component POMs, please change any occurrences of:
>>> +        &lt;groupId>org.codehaus.mojo&lt;/groupId>
>>> +        &lt;artifactId>rat-maven-plugin&lt;/artifactId>
>>> +    to the new values:
>>> +        &lt;groupId>org.apache.rat&lt;/groupId>
>>> +        &lt;artifactId>apache-rat-plugin&lt;/artifactId>
>>> +        </intro>
>>> +    </properties>
>>> +
>>> +    <!-- NOTE:
>>> +    The description below is specially formatted so as to improve the 
>>> layout of the generated release notes:
>>> +    The parsing process removes all line feeds, replacing them with a 
>>> single space.
>>> +    The Velocity template in resources/templates has been enhanced to 
>>> replace pairs of adjacent spaces
>>> +    with a new-line in the release notes. (These spaces are ignored when 
>>> displaying HTML).
>>> +    If the output is not quite correct, check for invisible trailing 
>>> spaces!
>>> +
>>> +    N.B. The release notes template groups actions by type, and only 
>>> extracts data for the current release.
>>> +    The changes report outputs actions in the order they appear in this 
>>> file.
>>> +     -->
>>> +
>>> +    <body>
>>> +        <release version="22" date="TBA" description="
>>> +Starting with version 22, the RAT plugin has changed Maven group and id,
>>> + so any existing configuration needs to be updated.
>>> + To fix component POMs, please change any occurrences of:
>>> +  &lt;groupId>org.codehaus.mojo&lt;/groupId>
>>> +  &lt;artifactId>rat-maven-plugin&lt;/artifactId>
>>> + to the new values:
>>> +  &lt;groupId>org.apache.rat&lt;/groupId>
>>> +  &lt;artifactId>apache-rat-plugin&lt;/artifactId>
>>> +">
>>> +            <action dev="sebb" type="update">
>>> +            Add release-notes profile to generate RELEASE-NOTES.txt from 
>>> changes.xml.
>>> +            Added changes.xml and template release-notes.vm
>>> +            </action>
>>> +            <action dev="sebb" type="update">
>>> +            Add pom description
>>> +            </action>
>>> +        </release>
>>> +
>>> +    </body>
>>> +</document>
>>>
>>> Propchange: commons/proper/commons-parent/trunk/src/changes/changes.xml
>>> ------------------------------------------------------------------------------
>>>    svn:eol-style = native
>>>
>>> Added: commons/proper/commons-parent/trunk/src/changes/release-notes.vm
>>> URL: 
>>> http://svn.apache.org/viewvc/commons/proper/commons-parent/trunk/src/changes/release-notes.vm?rev=1171027&view=auto
>>> ==============================================================================
>>> --- commons/proper/commons-parent/trunk/src/changes/release-notes.vm (added)
>>> +++ commons/proper/commons-parent/trunk/src/changes/release-notes.vm Thu 
>>> Sep 15 10:00:16 2011
>>> @@ -0,0 +1,140 @@
>>> +## Licensed to the Apache Software Foundation (ASF) under one
>>> +## or more contributor license agreements.  See the NOTICE file
>>> +## distributed with this work for additional information
>>> +## regarding copyright ownership.  The ASF licenses this file
>>> +## to you under the Apache License, Version 2.0 (the
>>> +## "License"); you may not use this file except in compliance
>>> +## with the License.  You may obtain a copy of the License at
>>> +##
>>> +##  http://www.apache.org/licenses/LICENSE-2.0
>>> +##
>>> +## Unless required by applicable law or agreed to in writing,
>>> +## software distributed under the License is distributed on an
>>> +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> +## KIND, either express or implied.  See the License for the
>>> +## specific language governing permissions and limitations
>>> +## under the License.
>>> +##
>>> +              Apache ${project.name} ${version} RELEASE NOTES
>>> +
>>> +The ${developmentTeam} is pleased to announce the release of ${finalName}
>>> +
>>> +$introduction.replaceAll("(?<!\015)\012", "
>>> +")
>>> +
>>> +## N.B. the available variables are described here:
>>> +## 
>>> http://maven.apache.org/plugins/maven-changes-plugin/examples/using-a-custom-announcement-template.html
>>> +##
>>> +## Hack to improve layout: replace all pairs of spaces with a single 
>>> new-line
>>> +$release.description.replaceAll("  ", "
>>> +")
>>> +
>>> +#if ($release.getActions().size() == 0)
>>> +No changes defined in this version.
>>> +#else
>>> +Changes in this version include:
>>> +
>>> +## indent to be used if there is no issue attribute.
>>> +## should be the same as the indent in the changes.xml file
>>> +## less 2 spaces for the 'o' and trailing space
>>> +#set($indent='          ')
>>> +#if ($release.getActions('add').size() !=0)
>>> +New features:
>>> +#foreach($actionItem in $release.getActions('add'))
>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>> +"))
>>> +#if ($actionItem.getIssue())
>>> +#set($issue=$actionItem.getIssue())
>>> +#else
>>> +#set($issue="")
>>> +#end
>>> +#if ($actionItem.getDueTo())
>>> +#set($dueto=$actionItem.getDueTo())
>>> +#else
>>> +#set($dueto="")
>>> +#end
>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != 
>>> "")Thanks to $dueto. #end
>>> +
>>> +#set($issue="")
>>> +#set($dueto="")
>>> +#end
>>> +#end
>>> +##
>>> +#if ($release.getActions('fix').size() !=0)
>>> +Fixed Bugs:
>>> +#foreach($actionItem in $release.getActions('fix'))
>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>> +"))
>>> +#if ($actionItem.getIssue())
>>> +#set($issue=$actionItem.getIssue())
>>> +#else
>>> +#set($issue="")
>>> +#end
>>> +#if ($actionItem.getDueTo())
>>> +#set($dueto=$actionItem.getDueTo())
>>> +#else
>>> +#set($dueto="")
>>> +#end
>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != 
>>> "")Thanks to $dueto. #end
>>> +
>>> +#set($issue="")
>>> +#set($dueto="")
>>> +#end
>>> +#end
>>> +##
>>> +#if ($release.getActions('update').size() !=0)
>>> +Changes:
>>> +#foreach($actionItem in $release.getActions('update'))
>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>> +"))
>>> +#if ($actionItem.getIssue())
>>> +#set($issue=$actionItem.getIssue())
>>> +#else
>>> +#set($issue="")
>>> +#end
>>> +#if ($actionItem.getDueTo())
>>> +#set($dueto=$actionItem.getDueTo())
>>> +#else
>>> +#set($dueto="")
>>> +#end
>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != 
>>> "")Thanks to $dueto. #end
>>> +
>>> +#set($issue="")
>>> +#set($dueto="")
>>> +#end
>>> +#end
>>> +##
>>> +#if ($release.getActions('remove').size() !=0)
>>> +Removed:
>>> +#foreach($actionItem in $release.getActions('remove'))
>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>> +"))
>>> +#if ($actionItem.getIssue())
>>> +#set($issue=$actionItem.getIssue())
>>> +#else
>>> +#set($issue="")
>>> +#end
>>> +#if ($actionItem.getDueTo())
>>> +#set($dueto=$actionItem.getDueTo())
>>> +#else
>>> +#set($dueto="")
>>> +#end
>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != 
>>> "")Thanks to $dueto. #end
>>> +
>>> +#set($issue="")
>>> +#set($dueto="")
>>> +#end
>>> +#end
>>> +## End of main loop
>>> +#end
>>> +
>>> +Historical list of changes: ${project.url}changes-report.html
>>> +
>>> +For complete information on ${project.name}, including instructions on how 
>>> to submit bug reports,
>>> +patches, or suggestions for improvement, see the Apache ${project.name} 
>>> website:
>>> +
>>> +${project.url}
>>> \ No newline at end of file
>>>
>>> Propchange: commons/proper/commons-parent/trunk/src/changes/release-notes.vm
>>> ------------------------------------------------------------------------------
>>>    svn:eol-style = native
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to