blob: c907c8675577ea92a91b2ef7560f21ba7630d179 [file] [log] [blame]
## Produce a report in text format that shows all versions for all Maven 2
## plugins. It tries to show if plugins are in need of a release, based purely
## on when the last release was made.
##
## It also checks if data is missing from the versions in JIRA.
##
##
## Return the number of months that has passed since the given date
##
#macro( monthsAgo $d )
#set( $nowYear = $strings.asInt( $date.format("yyyy") ) )
#set( $nowMonth = $strings.asInt( $date.format("MM") ) )
#set( $thenYear = $strings.asInt( $date.format( $d, "yyyy" ) ) )
#set( $thenMonth = $strings.asInt( $date.format( $d, "MM" ) ) )
#set( $years = $nowYear - $thenYear )
#set( $months = ( $years * 12 ) + ( $nowMonth - $thenMonth ) )
$months#end
## If the given date is older than the limit (12 months) issue a warning
##
#macro( oldWarning $d )
#set( $limit = 12 )
#set( $nowYear = $strings.asInt( $date.format("yyyy") ) )
#set( $nowMonth = $strings.asInt( $date.format("MM") ) )
#set( $thenYear = $strings.asInt( $date.format( $d, "yyyy" ) ) )
#set( $thenMonth = $strings.asInt( $date.format( $d, "MM" ) ) )
#set( $years = $nowYear - $thenYear )
#set( $months = ( $years * 12 ) + ( $nowMonth - $thenMonth ) )
#if( $months > $limit )OLD #end
#end
#set( $jira = $xmlrpc.connect("swizzletester:swizzle","http://jira.codehaus.org/rpc/xmlrpc") )
#set( $projects = $jira.getProjects().matches("name", "Maven 2.*Plugin") )
#foreach( $project in $projects )
#set( $allVersions = $jira.getVersions($project.key) )
#set( $project.attributes.allVersionsSize = $allVersions.size() )
#set( $project.attributes.unreleasedVersions = $allVersions.matches("released", "false").descending("name") )
#set( $project.attributes.releasedVersions = $allVersions.matches("released", "true").descending("name") )
#end
#foreach( $project in $projects.ascending("name") )
$project.name ($project.attributes.allVersionsSize version#if( $project.attributes.allVersionsSize != 1 )s#end)
Last released
#if( $project.attributes.releasedVersions.size() == 0)
NEVER
#else
#set( $lastReleasedVersion = $collections.first( $project.attributes.releasedVersions ) )
#set( $lastReleasedDate = $date.format( $lastReleasedVersion.releaseDate, "yyyy-MM-dd" ) )
#if( $lastReleasedDate == $date.format("yyyy-MM-dd") )
UNKNOWN
#else
#oldWarning( $lastReleasedVersion.releaseDate )#monthsAgo( $lastReleasedVersion.releaseDate ) months ago
#end
#end
Unreleased versions ($project.attributes.unreleasedVersions.size())
#foreach( $version in $project.attributes.unreleasedVersions )
#set( $scheduledReleaseDate = $date.format( $version.releaseDate, "yyyy-MM-dd" ) )
$version#if( $scheduledReleaseDate != $date.format("yyyy-MM-dd") ) (scheduled for release $scheduledReleaseDate)#end
#end
Released versions ($project.attributes.releasedVersions.size())
#foreach( $version in $project.attributes.releasedVersions )
#set( $releaseDate = $date.format( $version.releaseDate, "yyyy-MM-dd" ) )
#set( $releaseMonth = $date.format( $version.releaseDate, "MM" ) )
#set( $releaseYear = $date.format( $version.releaseDate, "yyyy" ) )
$version (#if( $releaseDate == $date.format("yyyy-MM-dd") )MISSING RELEASE DATE#else$releaseDate#end)
#end
#end