You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sk...@apache.org on 2013/06/04 03:14:18 UTC

svn commit: r1489267 - in /maven/sandbox/trunk/dist-tools/dist-tool-plugin: ./ src/main/java/org/apache/maven/dist/tools/ src/site/markdown/

Author: skygo
Date: Tue Jun  4 01:14:18 2013
New Revision: 1489267

URL: http://svn.apache.org/r1489267
Log:
show some commands but layout not nice.
 older check is wrong and need a better regex

Modified:
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/markdown/todo.md

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Tue Jun  4 01:14:18 2013
@@ -232,8 +232,8 @@
                         <id>html</id>
                         <reports>
                             <!--<report>check-screen-site</report>-->
-                             <report>check-site</report> 
-                           <!-- <report>check-source-release</report>-->
+                          <report>check-site</report>
+                          <report>check-source-release</report>
                         </reports>  
                     </reportSet>
                 </reportSets>

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java Tue Jun  4 01:14:18 2013
@@ -19,6 +19,10 @@ package org.apache.maven.dist.tools;
  * under the License.
  */
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 /**
  *
  * @author skygo
@@ -30,6 +34,7 @@ class ConfigurationLineInfo
     private final String artifactId;
     private final String dist;
     private static final String URLSEP = "/";
+    private MavenMetadata metadata;
 
     public ConfigurationLineInfo( String groupId, String artifactId, String dist )
     {
@@ -81,4 +86,26 @@ class ConfigurationLineInfo
     {
         return getBaseURL( repoBaseUrl, version + URLSEP + artifactId + "-" + version + ".pom" );
     }
+
+    void addMetadata( MavenMetadata metadata )
+    {
+        this.metadata = metadata;
+    }
+
+    String getReleaseFromMetadata()
+    {
+
+        try
+        {
+            SimpleDateFormat dateFormatter = new SimpleDateFormat( "yyyyMMddkkmmss" );
+            Date f = dateFormatter.parse( metadata.versioning.lastUpdated );
+            SimpleDateFormat dateFormattertarget = new SimpleDateFormat( "MMM dd, yyyy" );
+            return dateFormattertarget.format( f );
+        }
+        catch ( ParseException ex )
+        {
+            return "Cannot parse";
+        }
+
+    }
 }

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java Tue Jun  4 01:14:18 2013
@@ -34,20 +34,12 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.dist.tools.checkers.HTMLChecker;
 import org.apache.maven.dist.tools.checkers.HTMLCheckerFactory;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.reporting.MavenReportException;
 import org.jsoup.HttpStatusException;
 import org.jsoup.Jsoup;
@@ -65,6 +57,7 @@ import org.jsoup.select.Elements;
 public class DistCheckSiteMojo extends AbstractDistCheckMojo
 {
     private static final String MAVEN_SITE = "http://maven.apache.org";
+    private static final int HTTP_OK = 200;
 
     @Override
     public String getOutputName()
@@ -89,7 +82,7 @@ public class DistCheckSiteMojo extends A
 
         private String url;
         private Map<HTMLChecker, Boolean> checkMap = new HashMap<>();
-        private int statusCode = 200;
+        private int statusCode = HTTP_OK;
         private Document document;
 
         public DistCheckSiteResult( ConfigurationLineInfo r, String version )
@@ -118,9 +111,9 @@ public class DistCheckSiteMojo extends A
             return checkMap;
         }
 
-        private void setHTTPErrorUrl( int statusCode )
+        private void setHTTPErrorUrl( int status )
         {
-            this.statusCode = statusCode;
+            this.statusCode = status;
         }
 
         /**
@@ -133,7 +126,7 @@ public class DistCheckSiteMojo extends A
 
         private void getSkins( Sink sink )
         {
-            if ( statusCode != 200 )
+            if ( statusCode != HTTP_OK )
             {
                 sink.text( "None" );
             }
@@ -146,10 +139,11 @@ public class DistCheckSiteMojo extends A
                     Node n = htmlTa.previousSibling();
                     if ( n instanceof Comment )
                     {
-                        text += (( Comment ) n).getData();
+                        text += ( ( Comment ) n ).getData();
                     }
                     else
-                    {   text += "Nothing";
+                    {
+                        text += "Nothing";
                     }
                 }
                 
@@ -173,7 +167,7 @@ public class DistCheckSiteMojo extends A
         private void getOverall( Sink sink )
         {
 
-            if ( statusCode != 200 )
+            if ( statusCode != HTTP_OK )
             {
                 iconError( sink );
             }
@@ -263,7 +257,7 @@ public class DistCheckSiteMojo extends A
         sink.rawText( "URL" );
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.rawText( "Skins and comments on top of html (helping for date but not allways)" );
+        sink.rawText( "Skins and comments on top of html (helping for date but not always)" );
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
         sink.rawText( "Precise and overkill contents check summary details on your left ==>" );
@@ -290,9 +284,12 @@ public class DistCheckSiteMojo extends A
             sink.tableCell();
             sink.rawText( csr.getVersion() );
             sink.tableCell_();
-
+            
             sink.tableCell();
-            if ( csr.getStatusCode() != 200 )
+            sink.rawText( csr.getConfigurationLine().getReleaseFromMetadata() );
+            sink.tableCell_();
+            sink.tableCell();
+            if ( csr.getStatusCode() != HTTP_OK )
             {
                 iconError( sink );
                 sink.rawText( "[" + csr.getStatusCode() + "] " );
@@ -393,7 +390,7 @@ public class DistCheckSiteMojo extends A
             JAXBContext context = JAXBContext.newInstance( MavenMetadata.class );
             Unmarshaller unmarshaller = context.createUnmarshaller();
             MavenMetadata metadata = ( MavenMetadata ) unmarshaller.unmarshal( input );
-
+            configLine.addMetadata( metadata );
             getLog().info( "Checking for site for artifact : " + configLine.getGroupId() + ":" + configLine.getArtifactId() + ":" + metadata.versioning.latest );
             // revert sort versions (not handling alpha and complex vesion scheme but more usefull version are displayed left side
             Collections.sort( metadata.versioning.versions, Collections.reverseOrder() );

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java Tue Jun  4 01:14:18 2013
@@ -36,20 +36,12 @@ import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.dist.tools.checkers.HTMLChecker;
 import org.apache.maven.dist.tools.checkers.HTMLCheckerFactory;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.reporting.MavenReportException;
 import org.jsoup.HttpStatusException;
 import org.jsoup.Jsoup;
@@ -343,7 +335,7 @@ public class DistCheckSiteTakeScreenMojo
             // revert sort versions (not handling alpha and complex vesion scheme but more usefull version are displayed left side
             Collections.sort( metadata.versioning.versions, Collections.reverseOrder() );
             getLog().warn( metadata.versioning.versions + " version(s) detected " + repoBaseUrl );
-
+            configLine.addMetadata( metadata );
             // central
             checkSite( configLine.getVersionnedPomFileURL( repoBaseUrl, metadata.versioning.latest ), configLine, metadata.versioning.latest );
 

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java Tue Jun  4 01:14:18 2013
@@ -31,7 +31,10 @@ import java.util.Locale;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
+import org.apache.maven.doxia.markup.HtmlMarkup;
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkEventAttributeSet;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.reporting.MavenReportException;
@@ -71,11 +74,14 @@ public class DistCheckSourceReleaseMojo 
         return "Verification of source release";
     }
 
+    
+
     class DistCheckSourceRelease extends AbstractCheckResult
     {
 
         private List<String> central;
         private List<String> dist;
+        private List<String> older;
 
         public DistCheckSourceRelease( ConfigurationLineInfo r, String version )
         {
@@ -91,6 +97,11 @@ public class DistCheckSourceReleaseMojo 
         {
             central = checkRepos;
         }
+
+        private void setOlderSourceRelease( List<String> checkRepos )
+        {
+            older = checkRepos;
+        }
     }
     private List<DistCheckSourceRelease> results = new LinkedList<>();
 
@@ -121,6 +132,9 @@ public class DistCheckSourceReleaseMojo 
         sink.paragraph();
         sink.text( "Check Source Release (= artifactId + version + '-source-release.zip[.asc|.md5]') availability in:" );
         sink.paragraph_();
+        sink.paragraph();
+        sink.text( "cli command and olders artifact exploration is Work In Progress" );
+        sink.paragraph_();
         sink.list();
         sink.listItem();
         sink.link( repoBaseUrl );
@@ -146,11 +160,17 @@ public class DistCheckSourceReleaseMojo 
         sink.rawText( "LATEST" );
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
+        sink.rawText( "DATE" );
+        sink.tableHeaderCell_();
+        sink.tableHeaderCell();
         sink.rawText( "central" );
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
         sink.rawText( "dist" );
         sink.tableHeaderCell_();
+        sink.tableHeaderCell();
+        sink.rawText( "Older in dist REGEX ISSUE NO TRUST (mainly for doxia) " );
+        sink.tableHeaderCell_();
         sink.tableRow_();
 
         for ( DistCheckSourceRelease csr : results )
@@ -159,7 +179,8 @@ public class DistCheckSourceReleaseMojo 
 
             sink.tableRow();
             sink.tableCell();
-            sink.rawText( csr.getConfigurationLine().getGroupId() );
+            // shorten groupid
+            sink.rawText( csr.getConfigurationLine().getGroupId().replaceAll( "org.apache.maven", "o.a.m" ) );
             sink.tableCell_();
             sink.tableCell();
             sink.rawText( csr.getConfigurationLine().getArtifactId() );
@@ -169,7 +190,11 @@ public class DistCheckSourceReleaseMojo 
             sink.rawText( csr.getVersion() );
             sink.link_();
             sink.tableCell_();
-
+            
+            sink.tableCell();
+            sink.rawText( csr.getConfigurationLine().getReleaseFromMetadata() );
+            sink.tableCell_();
+            
             sink.tableCell();
             sink.link( cli.getBaseURL( repoBaseUrl, "" ) );
             sink.text( "artifact" );
@@ -194,7 +219,7 @@ public class DistCheckSourceReleaseMojo 
                 sink.rawText( missing );
             }
             sink.tableCell_();
-
+            // dist
             sink.tableCell();
             sink.link( cli.getDist() );
             sink.text( cli.getDist().substring( DIST_AREA.length() ) );
@@ -208,14 +233,64 @@ public class DistCheckSourceReleaseMojo 
             {
                 iconWarning( sink );
             }
+            StringBuilder cliMissing = new StringBuilder();
             for ( String missing : csr.dist )
             {
                 sink.lineBreak();
                 iconError( sink );
                 sink.rawText( missing );
+                cliMissing.append( "\nwget -O " ).append( cli.getVersionnedFolderURL( repoBaseUrl, csr.getVersion() ) ).
+                        append( "/" ).append( missing );
+                cliMissing.append( "\nsvn co " ).append( missing );
+            }
+            if ( !cliMissing.toString().isEmpty() )
+            {
+                sink.lineBreak();
+                SinkEventAttributeSet atts = new SinkEventAttributeSet();
+                sink.unknown( "pre", new Object[]
+                {
+                    new Integer( HtmlMarkup.TAG_TYPE_START )
+                }, atts );
+                sink.text( cliMissing.toString() );
+                sink.unknown( "pre", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_END )}, null );
             }
             sink.tableCell_();
-
+            //older
+            sink.tableCell();
+            sink.link( cli.getDist() );
+            sink.text( cli.getDist().substring( DIST_AREA.length() ) );
+            sink.link_();
+            sink.text( "source-release" );
+            if ( csr.dist.isEmpty() )
+            {
+                iconSuccess( sink );
+            }
+            else
+            {
+                iconWarning( sink );
+            }
+            
+            StringBuilder cliOlder = new StringBuilder();
+            for ( String missing : csr.older )
+            {
+                sink.lineBreak();
+                iconError( sink );
+                sink.rawText( missing );
+                cliOlder.append( "\nsvn rm " ).append( missing );
+            }
+            if ( !cliOlder.toString().isEmpty() )
+            {
+                sink.lineBreak();
+                SinkEventAttributeSet atts = new SinkEventAttributeSet();
+                sink.unknown( "pre", new Object[]
+                {
+                    new Integer( HtmlMarkup.TAG_TYPE_START )
+                }, atts );
+                sink.text( cliOlder.toString() );
+                sink.unknown( "pre", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_END )}, null );
+            }
+           
+            sink.tableCell_();
             sink.tableRow_();
         }
         sink.table_();
@@ -223,7 +298,44 @@ public class DistCheckSourceReleaseMojo 
         sink.flush();
         sink.close();
     }
+    
+    private List<String> checkOldinRepos( String repourl, ConfigurationLineInfo r, String version ) throws IOException
+    {
+        Document doc = Jsoup.connect( repourl ).get();
+        Elements links = doc.select( "a[href]" );
+        List<String> expectedFile = new LinkedList<>();
+        List<String> retrievedFile = new LinkedList<>();
+        // http://maven.apache.org/developers/release/maven-project-release-procedure.html#Copy_the_source_release_to_the_Apache_Distribution_Area
+        // build source artifact name
+        expectedFile.add( r.getArtifactId() + "-" + version + "-source-release.zip" );
+        expectedFile.add( r.getArtifactId() + "-" + version + "-source-release.zip.asc" );
+        expectedFile.add( r.getArtifactId() + "-" + version + "-source-release.zip.md5" );
+
+
+
+        for ( Element e : links )
+        {
+            String art = e.attr( "href" );
+            // need a regex no strong enough
+            if ( art.startsWith( r.getArtifactId() + "-" ) && (art.endsWith( "-source-release.zip" )
+                    || art.endsWith( "-source-release.zip.asc" )
+                    || art.endsWith( "-source-release.zip.md5" )) )
+            //if (art.matches( "^"+r.getArtifactId()+"-\d.-source-release.zip[]"))
+            {
 
+                retrievedFile.add( e.attr( "href" ) );
+            }
+        }
+        retrievedFile.removeAll( expectedFile );
+        if ( !expectedFile.isEmpty() )
+        {
+            for ( String sourceItem : expectedFile )
+            {
+                getLog().error( "Older:" + sourceItem + " in " + repourl );
+            }
+        }
+        return retrievedFile;
+    }
     private List<String> checkRepos( String repourl, ConfigurationLineInfo r, String version ) throws IOException
     {
         Document doc = Jsoup.connect( repourl ).get();
@@ -254,24 +366,26 @@ public class DistCheckSourceReleaseMojo 
     }
 
     @Override
-    void checkArtifact( ConfigurationLineInfo r, String repoBaseUrl ) throws MojoExecutionException
+    void checkArtifact( ConfigurationLineInfo configLine, String repoBaseUrl ) throws MojoExecutionException
     {
-        try ( BufferedReader input = new BufferedReader( new InputStreamReader( new URL( r.getMetadataFileURL( repoBaseUrl ) ).openStream() ) ) )
+        try ( BufferedReader input = new BufferedReader( new InputStreamReader( new URL( configLine.getMetadataFileURL( repoBaseUrl ) ).openStream() ) ) )
         {
             JAXBContext context = JAXBContext.newInstance( MavenMetadata.class );
             Unmarshaller unmarshaller = context.createUnmarshaller();
             MavenMetadata metadata = ( MavenMetadata ) unmarshaller.unmarshal( input );
 
-            getLog().info( "Checking for artifact : " + r.getGroupId() + ":" + r.getArtifactId() + ":" + metadata.versioning.latest );
+            getLog().info( "Checking for artifact : " + configLine.getGroupId() + ":" + configLine.getArtifactId() + ":" + metadata.versioning.latest );
             // revert sort versions (not handling alpha and complex vesion scheme but more usefull version are displayed left side
             Collections.sort( metadata.versioning.versions, Collections.reverseOrder() );
             getLog().warn( metadata.versioning.versions + " version(s) detected " + repoBaseUrl );
-            DistCheckSourceRelease result = new DistCheckSourceRelease( r, metadata.versioning.latest );
+            configLine.addMetadata( metadata );
+            DistCheckSourceRelease result = new DistCheckSourceRelease( configLine, metadata.versioning.latest );
             results.add( result );
             // central
-            result.setMisingCentralSourceRelease( checkRepos( r.getVersionnedFolderURL( repoBaseUrl, metadata.versioning.latest ), r, metadata.versioning.latest ) );
+            result.setMisingCentralSourceRelease( checkRepos( configLine.getVersionnedFolderURL( repoBaseUrl, metadata.versioning.latest ), configLine, metadata.versioning.latest ) );
             //dist
-            result.setMissingDistSourceRelease( checkRepos( r.getDist(), r, metadata.versioning.latest ) );
+            result.setMissingDistSourceRelease( checkRepos( configLine.getDist(), configLine, metadata.versioning.latest ) );
+            result.setOlderSourceRelease( checkOldinRepos( configLine.getDist(), configLine, metadata.versioning.latest ) );
         }
         catch ( MalformedURLException ex )
         {

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/markdown/todo.md
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/markdown/todo.md?rev=1489267&r1=1489266&r2=1489267&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/markdown/todo.md (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/markdown/todo.md Tue Jun  4 01:14:18 2013
@@ -6,17 +6,22 @@ Todo
 # Source Release
 
 * add date of release (from artifact)
+  -- date from metadata is ok ?
 * Check older artifact in dist (only latest should be present, previous version removed)
 * Shell command for cleaning older artifacts
 
 # Sites
 
 * Check if artifact versions are up to date in /plugins/, /shared/, /pom/ and so on
+    -- [sky] not sure to get your point :)
 * remove "check if version present", since our inheritance ensures we don't have problems
+    -- [sky] kept only for precise layout check
 * replace Skins columns with one unique column "Skin used", showing which skin is used (with version)
-  -- [RE] no garantee some site like http://maven.apache.org/plugins/maven-one-plugin/ have no style header 
+    -- [sky] no garantee some site like http://maven.apache.org/plugins/maven-one-plugin/ have no style header 
 * add date of release (from artifact)
+    -- [sky] date from metadata is ok ?
 * add date of site
+    -- [sky] date from comment part in skin (no always ok :( )
 
 # (for-fun)
 * take screenshot of site. ( os specific )