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: >>> + <groupId>org.codehaus.mojo</groupId> >>> + <artifactId>rat-maven-plugin</artifactId> >>> + to the new values: >>> + <groupId>org.apache.rat</groupId> >>> + <artifactId>apache-rat-plugin</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: >>> + <groupId>org.codehaus.mojo</groupId> >>> + <artifactId>rat-maven-plugin</artifactId> >>> + to the new values: >>> + <groupId>org.apache.rat</groupId> >>> + <artifactId>apache-rat-plugin</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