You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2022/05/29 14:24:23 UTC

[maven-release] branch MRELEASE-1097 created (now 35f467b4)

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a change to branch MRELEASE-1097
in repository https://gitbox.apache.org/repos/asf/maven-release.git


      at 35f467b4 [MRELEASE-1097] rework plugin output to clarify goal's phases

This branch includes the following new commits:

     new 35f467b4 [MRELEASE-1097] rework plugin output to clarify goal's phases

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-release] 01/01: [MRELEASE-1097] rework plugin output to clarify goal's phases

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MRELEASE-1097
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 35f467b4d61e0ec94ac279974146d27d48c2531f
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun May 29 16:24:14 2022 +0200

    [MRELEASE-1097] rework plugin output to clarify goal's phases
---
 maven-release-manager/pom.xml                      |   2 -
 .../shared/release/DefaultReleaseManager.java      | 103 +++++++++++----------
 .../release/DefaultReleaseManagerListener.java     |  13 +--
 .../release/phase/AbstractBackupPomsPhase.java     |   4 +-
 .../release/phase/AbstractInputVariablesPhase.java |   9 +-
 .../release/phase/AbstractMapVersionsPhase.java    |   6 +-
 .../release/phase/AbstractRewritePomsPhase.java    |  10 +-
 .../release/phase/AbstractRunGoalsPhase.java       |   8 +-
 .../release/phase/CheckoutProjectFromScm.java      |  10 +-
 .../release/phase/CreateBackupPomsPhase.java       |   2 +
 .../shared/release/phase/RunPerformGoalsPhase.java |   4 +-
 .../shared/release/strategies/DefaultStrategy.java |   2 +-
 .../shared/release/DefaultReleaseManagerTest.java  |   6 +-
 maven-release-plugin/pom.xml                       |   7 --
 .../it/projects/perform/MRELEASE-818/verify.groovy |   2 +-
 .../src/site/apt/examples/perform-release.apt.vm   |   2 +-
 maven-release-plugin/src/site/apt/usage.apt.vm     |   6 +-
 17 files changed, 106 insertions(+), 90 deletions(-)

diff --git a/maven-release-manager/pom.xml b/maven-release-manager/pom.xml
index 60b10618..7b3d442c 100644
--- a/maven-release-manager/pom.xml
+++ b/maven-release-manager/pom.xml
@@ -238,9 +238,7 @@
         <executions>
           <execution>
             <goals>
-              <goal>xpp3-reader</goal>
               <goal>java</goal>
-              <goal>xpp3-writer</goal>
             </goals>
           </execution>
         </executions>
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
index c2732d9f..199dc7fd 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
@@ -72,8 +72,6 @@ public class DefaultReleaseManager
      */
     private final AtomicReference<ReleaseDescriptorStore> configStore;
 
-    private static final int PHASE_SKIP = 0, PHASE_START = 1, PHASE_END = 2, GOAL_END = 12, ERROR = 99;
-
     @Inject
     public DefaultReleaseManager( Map<String, Strategy> strategies,
                                   Map<String, ReleasePhase> releasePhases,
@@ -187,7 +185,7 @@ public class DefaultReleaseManager
 
         for ( int idx = 0; idx <= index; idx++ )
         {
-            updateListener( prepareRequest.getReleaseManagerListener(), preparePhases.get( idx ), PHASE_SKIP );
+            phaseSkip( prepareRequest.getReleaseManagerListener(), preparePhases.get( idx ) );
         }
 
         if ( index == preparePhases.size() - 1 )
@@ -212,7 +210,7 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
             }
 
-            updateListener( prepareRequest.getReleaseManagerListener(), name, PHASE_START );
+            phaseStart( prepareRequest.getReleaseManagerListener(), name );
 
             ReleaseResult phaseResult = null;
             try
@@ -249,10 +247,10 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Error writing release properties after completing phase", e );
             }
 
-            updateListener( prepareRequest.getReleaseManagerListener(), name, PHASE_END );
+            phaseEnd( prepareRequest.getReleaseManagerListener() );
         }
 
-        updateListener( prepareRequest.getReleaseManagerListener(), "prepare", GOAL_END );
+        goalEnd( prepareRequest.getReleaseManagerListener() );
     }
 
     @Override
@@ -277,16 +275,16 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
             }
 
-            updateListener( rollbackRequest.getReleaseManagerListener(), name, PHASE_START );
+            phaseStart( rollbackRequest.getReleaseManagerListener(), name );
             phase.execute( releaseDescriptor,
                            rollbackRequest.getReleaseEnvironment(),
                            rollbackRequest.getReactorProjects() );
-            updateListener( rollbackRequest.getReleaseManagerListener(), name, PHASE_END );
+            phaseEnd( rollbackRequest.getReleaseManagerListener() );
         }
 
         //call release:clean so that resume will not be possible anymore after a rollback
         clean( rollbackRequest );
-        updateListener( rollbackRequest.getReleaseManagerListener(), "rollback", GOAL_END );
+        goalEnd( rollbackRequest.getReleaseManagerListener() );
     }
 
     @Override
@@ -363,7 +361,7 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
             }
 
-            updateListener( performRequest.getReleaseManagerListener(), name, PHASE_START );
+            phaseStart( performRequest.getReleaseManagerListener(), name );
 
             ReleaseResult phaseResult = null;
             try
@@ -389,7 +387,7 @@ public class DefaultReleaseManager
                 }
             }
 
-            updateListener( performRequest.getReleaseManagerListener(), name, PHASE_END );
+            phaseEnd( performRequest.getReleaseManagerListener() );
         }
 
         if ( BooleanUtils.isNotFalse( performRequest.getClean() ) )
@@ -398,7 +396,7 @@ public class DefaultReleaseManager
             clean( performRequest );
         }
 
-        updateListener( performRequest.getReleaseManagerListener(), "perform", GOAL_END );
+        goalEnd( performRequest.getReleaseManagerListener() );
     }
 
     @Override
@@ -445,7 +443,7 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
             }
 
-            updateListener( branchRequest.getReleaseManagerListener(), name, PHASE_START );
+            phaseStart( branchRequest.getReleaseManagerListener(), name );
 
             if ( dryRun )
             {
@@ -459,7 +457,8 @@ public class DefaultReleaseManager
                                branchRequest.getReleaseEnvironment(),
                                branchRequest.getReactorProjects() );
             }
-            updateListener( branchRequest.getReleaseManagerListener(), name, PHASE_END );
+
+            phaseEnd( branchRequest.getReleaseManagerListener() );
         }
 
         if ( !dryRun )
@@ -467,7 +466,7 @@ public class DefaultReleaseManager
             clean( branchRequest );
         }
 
-        updateListener( branchRequest.getReleaseManagerListener(), "branch", GOAL_END );
+        goalEnd( branchRequest.getReleaseManagerListener() );
     }
 
     @Override
@@ -513,16 +512,16 @@ public class DefaultReleaseManager
                 throw new ReleaseExecutionException( "Unable to find phase '" + name + "' to execute" );
             }
 
-            updateListener( updateVersionsRequest.getReleaseManagerListener(), name, PHASE_START );
+            phaseStart( updateVersionsRequest.getReleaseManagerListener(), name );
             phase.execute( releaseDescriptor,
                            updateVersionsRequest.getReleaseEnvironment(),
                            updateVersionsRequest.getReactorProjects() );
-            updateListener( updateVersionsRequest.getReleaseManagerListener(), name, PHASE_END );
+            phaseEnd( updateVersionsRequest.getReleaseManagerListener() );
         }
 
         clean( updateVersionsRequest );
 
-        updateListener( updateVersionsRequest.getReleaseManagerListener(), "updateVersions", GOAL_END );
+        goalEnd( updateVersionsRequest.getReleaseManagerListener() );
     }
 
     /**
@@ -560,15 +559,10 @@ public class DefaultReleaseManager
     {
         try
         {
-            updateListener( listener, "verify-release-configuration", PHASE_START );
-            ReleaseDescriptorBuilder result = configStore.get().read( builder );
-            updateListener( listener, "verify-release-configuration", PHASE_END );
-            return result;
+            return configStore.get().read( builder );
         }
         catch ( ReleaseDescriptorStoreException e )
         {
-            updateListener( listener, e.getMessage(), ERROR );
-
             throw new ReleaseExecutionException( "Error reading stored configuration: " + e.getMessage(), e );
         }
     }
@@ -592,8 +586,6 @@ public class DefaultReleaseManager
     @Override
     public void clean( ReleaseCleanRequest cleanRequest ) throws ReleaseFailureException
     {
-        updateListener( cleanRequest.getReleaseManagerListener(), "cleanup", PHASE_START );
-
         logger.info( "Cleaning up after release..." );
 
         ReleaseDescriptor releaseDescriptor =
@@ -616,8 +608,6 @@ public class DefaultReleaseManager
                 ( (ResourceGenerator) phase ).clean( cleanRequest.getReactorProjects() );
             }
         }
-
-        updateListener( cleanRequest.getReleaseManagerListener(), "cleanup", PHASE_END );
     }
 
     void goalStart( ReleaseManagerListener listener, String goal, List<String> phases )
@@ -628,27 +618,43 @@ public class DefaultReleaseManager
         }
     }
 
-    void updateListener( ReleaseManagerListener listener, String name, int state )
+    void goalEnd( ReleaseManagerListener listener )
     {
         if ( listener != null )
         {
-            switch ( state )
-            {
-                case GOAL_END:
-                    listener.goalEnd();
-                    break;
-                case PHASE_SKIP:
-                    listener.phaseSkip( name );
-                    break;
-                case PHASE_START:
-                    listener.phaseStart( name );
-                    break;
-                case PHASE_END:
-                    listener.phaseEnd();
-                    break;
-                default:
-                    listener.error( name );
-            }
+            listener.goalEnd();
+        }
+    }
+
+    void phaseSkip( ReleaseManagerListener listener, String name )
+    {
+        if ( listener != null )
+        {
+            listener.phaseSkip( name );
+        }
+    }
+
+    void phaseStart( ReleaseManagerListener listener, String name )
+    {
+        if ( listener != null )
+        {
+            listener.phaseStart( name );
+        }
+    }
+
+    void phaseEnd( ReleaseManagerListener listener )
+    {
+        if ( listener != null )
+        {
+            listener.phaseEnd();
+        }
+    }
+
+    void error( ReleaseManagerListener listener, String name )
+    {
+        if ( listener != null )
+        {
+            listener.error( name );
         }
     }
 
@@ -726,7 +732,10 @@ public class DefaultReleaseManager
 
     private void captureException( ReleaseResult result, ReleaseManagerListener listener, Exception e )
     {
-        updateListener( listener, e.getMessage(), ERROR );
+        if ( listener != null )
+        {
+            listener.error( e.getMessage() );
+        }
 
         result.appendError( e );
 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManagerListener.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManagerListener.java
index 19295187..d177879e 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManagerListener.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManagerListener.java
@@ -77,7 +77,7 @@ public class DefaultReleaseManagerListener
 
     public void goalStart( String goal, List<String> phases )
     {
-        log.info( "starting " + buffer().strong( goal ) + " goal" + ( dryRun ? " in dry-run mode" : "" )
+        log.info( "starting " + buffer().mojo( goal ) + " goal" + ( dryRun ? " in dry-run mode" : "" )
             + ", composed of " + phases.size() + " phases: " + StringUtils.join( phases.iterator(), ", " ) );
         currentPhase = -1;
         this.phases = phases;
@@ -86,16 +86,9 @@ public class DefaultReleaseManagerListener
 
     public void phaseStart( String name )
     {
-        if ( goal == null || ( ( currentPhase + 1 ) >= phases.size() ) )
-        {
-            // out of goal phase
-            log.info( "phase " + buffer().strong( name ) + ( dryRun ? " (dry-run)" : "" ) );
-            return;
-        }
-
         nextPhase( name );
-        log.info( buffer().strong( "[" + goal + ( dryRun ? " dry-run" : "" ) + "] " ).toString() + ( currentPhase + 1 )
-            + "/" + phases.size() + " " + buffer().strong( name ) );
+        log.info( ( currentPhase + 1 ) + "/" + phases.size() + ' ' + buffer().mojo( goal + ':' + name )
+            + ( dryRun ? " dry-run" : "" ) );
     }
 
     /**
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
index 25770ecb..c0fe0d18 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
@@ -32,7 +32,7 @@ import org.apache.maven.shared.release.util.ReleaseUtil;
 public abstract class AbstractBackupPomsPhase
         extends AbstractReleasePhase
 {
-    private final String backupSuffix = ".releaseBackup";
+    protected static final String BACKUP_SUFFIX = ".releaseBackup";
 
     /**
      * <p>getPomBackup.</p>
@@ -46,7 +46,7 @@ public abstract class AbstractBackupPomsPhase
 
         if ( pomFile != null )
         {
-            return new File( pomFile.getAbsolutePath() + backupSuffix );
+            return new File( pomFile.getAbsolutePath() + BACKUP_SUFFIX );
         }
         else
         {
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractInputVariablesPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractInputVariablesPhase.java
index bae1798b..7a00671c 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractInputVariablesPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractInputVariablesPhase.java
@@ -52,6 +52,7 @@ import org.codehaus.plexus.interpolation.StringSearchInterpolator;
 import org.codehaus.plexus.util.StringUtils;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
 /**
  * Input any variables that were not yet configured.
@@ -230,7 +231,7 @@ public abstract class AbstractInputVariablesPhase
                     if ( branchOperation )
                     {
                         tag = prompter.get().prompt( "What is the branch name for \"" + project.getName() + "\"? ("
-                                + project.getGroupId() + ":" + project.getArtifactId() + ")" );
+                            + buffer().project( project.getArtifactId() ) + ")" );
                         if ( StringUtils.isEmpty( tag ) )
                         {
                             throw new ReleaseExecutionException( "No branch name was given." );
@@ -238,8 +239,10 @@ public abstract class AbstractInputVariablesPhase
                     }
                     else
                     {
-                        tag = prompter.get().prompt( "What is the SCM release tag or label for \"" + project.getName()
-                                + "\"? (" + project.getGroupId() + ":" + project.getArtifactId() + ")", suggestedName );
+                        tag = prompter.get().prompt(
+                                                     "What is the SCM release tag or label for \"" + project.getName()
+                                                         + "\"? (" + buffer().project( project.getArtifactId() ) + ")",
+                                                     suggestedName );
                     }
                 }
                 catch ( PrompterException e )
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractMapVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractMapVersionsPhase.java
index b75a4b1d..61940e08 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractMapVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractMapVersionsPhase.java
@@ -41,6 +41,7 @@ import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.util.StringUtils;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
 /**
  * Map projects to their new versions after release / into the next development cycle.
@@ -308,9 +309,8 @@ public abstract class AbstractMapVersionsPhase
                     {
                         messageKey = getMapversionPromptKey( releaseDescriptor );
                     }
-                    String message =
-                            MessageFormat.format( resourceBundle.getString( messageKey ), project.getName(),
-                                    projectId );
+                    String message = MessageFormat.format( resourceBundle.getString( messageKey ), project.getName(),
+                                                           buffer().project( project.getArtifactId() ) );
                     nextVersion = prompter.prompt( message, suggestedVersion );
 
                     //@todo validate next version, maybe with DefaultArtifactVersion
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 47525a46..9fc6b056 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -20,6 +20,7 @@ package org.apache.maven.shared.release.phase;
  */
 
 import java.io.File;
+import java.net.URI;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -64,6 +65,7 @@ import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.util.StringUtils;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
 /**
  * Base class for rewriting phases.
@@ -199,9 +201,15 @@ public abstract class AbstractRewritePomsPhase
     {
         result.setStartTime( ( startTime >= 0 ) ? startTime : System.currentTimeMillis() );
 
+        URI root = ReleaseUtil.getRootProject( reactorProjects ).getBasedir().toURI();
+
         for ( MavenProject project : reactorProjects )
         {
-            logInfo( result, "Transforming '" + project.getName() + "'..." );
+            URI pom = project.getFile().toURI();
+            logInfo( result,
+                     "Transforming " + root.relativize( pom ).getPath() + ' '
+                         + buffer().project( project.getArtifactId() ) + " '" + project.getName() + "'"
+                         + ( simulate ? " with ." + getPomSuffix() + " suffix" : "" ) + "..." );
 
             transformProject( project, releaseDescriptor, releaseEnvironment, simulate, result );
         }
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
index 67d4aed6..ce5df05c 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
@@ -33,6 +33,7 @@ import org.apache.maven.shared.release.exec.MavenExecutorException;
 import org.codehaus.plexus.util.StringUtils;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
 /**
  * Abstract phase to run a Maven invocation on the project.
@@ -71,11 +72,12 @@ public abstract class AbstractRunGoalsPhase
             String goals = getGoals( releaseDescriptor );
             if ( !StringUtils.isEmpty( goals ) )
             {
-                logInfo( result, "Executing goals '" + goals + "'..." );
-                if ( logArguments && ( additionalArguments != null ) )
+                logInfo( result, "Executing goals '" + buffer().strong( goals ) + "'..." );
+                if ( logArguments )
                 {
                     // logging arguments may log secrets: should be activated only on dryRun
-                    logInfo( result, "    with additional arguments: " + additionalArguments );
+                    logInfo( result, "    with additional arguments: "
+                        + ( additionalArguments == null ? "" : additionalArguments ) );
                 }
 
                 MavenExecutor mavenExecutor = mavenExecutors.get( releaseEnvironment.getMavenExecutorId() );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
index 1eb3682b..406d2ac6 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
@@ -270,13 +270,19 @@ public class CheckoutProjectFromScm
     {
         ReleaseResult result = new ReleaseResult();
 
+        MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
+        File checkoutDirectory =
+                        FileUtils.resolveFile( rootProject.getBasedir(), releaseDescriptor.getCheckoutDirectory() );
+
         if ( releaseDescriptor.isLocalCheckout() )
         {
-            logInfo( result, "This would be a LOCAL check out to perform the release ..." );
+            logInfo( result,
+                     "This would be a LOCAL check out to perform the release from " + checkoutDirectory + "..." );
         }
         else
         {
-            logInfo( result, "The project would be checked out to perform the release ..." );
+            logInfo( result,
+                     "The project would be checked out to perform the release from " + checkoutDirectory + "..." );
         }
 
         result.setResultCode( ReleaseResult.SUCCESS );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
index 866c9a20..3a9ba41b 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
@@ -52,6 +52,8 @@ public class CreateBackupPomsPhase
         // remove previous backups, if any
         clean( reactorProjects );
 
+        logInfo( result, "Creating pom.xml backup with " + BACKUP_SUFFIX + " suffix" );
+
         for ( MavenProject project : reactorProjects )
         {
             createPomBackup( project );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
index 4c008788..32bf357c 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhase.java
@@ -23,6 +23,8 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
+
 import java.io.File;
 import java.util.List;
 import java.util.Map;
@@ -99,7 +101,7 @@ public class RunPerformGoalsPhase
         {
             ReleaseResult result = new ReleaseResult();
 
-            logInfo( result, "Simulating perform goals '" + getGoals( releaseDescriptor )
+            logInfo( result, "Simulating perform goals '" + buffer().strong( getGoals( releaseDescriptor ) )
                 + "' - since this is simulation mode these goals are skipped." );
             logInfo( result, "    with additional arguments: " + additionalArguments );
 
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/strategies/DefaultStrategy.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/strategies/DefaultStrategy.java
index 866af8f8..60b51485 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/strategies/DefaultStrategy.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/strategies/DefaultStrategy.java
@@ -39,7 +39,7 @@ import org.apache.maven.shared.release.strategy.Strategy;
 public class DefaultStrategy implements Strategy
 {
     /**
-     * The phases of release to run, and in what order.
+     * The phases of release to run to prepare.
      */
     private final List<String> preparePhases;
 
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
index 376b8a02..a7fcf702 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
@@ -612,6 +612,7 @@ public class DefaultReleaseManagerTest
         // prepare
         ReleasePerformRequest performRequest = new ReleasePerformRequest();
         performRequest.setDryRun( true );
+        performRequest.setReactorProjects( createReactorProjects() );
 
         ReleaseManagerListener managerListener = mock( ReleaseManagerListener.class );
         performRequest.setReleaseManagerListener( managerListener );
@@ -627,12 +628,10 @@ public class DefaultReleaseManagerTest
         releaseManager.perform( performRequest );
 
         // verify
-        verify( managerListener ).phaseStart( "verify-release-configuration" );
         verify( managerListener ).phaseStart( "verify-completed-prepare-phases" );
         verify( managerListener ).phaseStart( "checkout-project-from-scm" );
         verify( managerListener ).phaseStart( "run-perform-goals" );
-        verify( managerListener ).phaseStart( "cleanup" );
-        verify( managerListener, times( 5 ) ).phaseEnd();
+        verify( managerListener, times( 3 ) ).phaseEnd();
 
         // not part of actual test, but required to confirm 'no more interactions'
         verify( managerListener ).goalStart( anyString(), any() );
@@ -756,6 +755,7 @@ public class DefaultReleaseManagerTest
         // prepare
         ReleasePerformRequest performRequest = new ReleasePerformRequest();
         performRequest.setDryRun( true );
+        performRequest.setReactorProjects( createReactorProjects() );
 
         ReleaseManagerListener managerListener = mock( ReleaseManagerListener.class );
         performRequest.setReleaseManagerListener( managerListener );
diff --git a/maven-release-plugin/pom.xml b/maven-release-plugin/pom.xml
index 7e8a7174..3e582d6f 100644
--- a/maven-release-plugin/pom.xml
+++ b/maven-release-plugin/pom.xml
@@ -116,13 +116,6 @@
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <configuration>
-          <stagingSiteURL>scp://people.apache.org/www/maven.apache.org/plugins/${project.artifactId}-${project.version}</stagingSiteURL>
-        </configuration>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-plugin-plugin</artifactId>
diff --git a/maven-release-plugin/src/it/projects/perform/MRELEASE-818/verify.groovy b/maven-release-plugin/src/it/projects/perform/MRELEASE-818/verify.groovy
index 9057a562..a2dfd3bb 100644
--- a/maven-release-plugin/src/it/projects/perform/MRELEASE-818/verify.groovy
+++ b/maven-release-plugin/src/it/projects/perform/MRELEASE-818/verify.groovy
@@ -20,7 +20,7 @@
 File buildLog = new File( basedir, 'build.log' )
 assert buildLog.exists()
 
-def localCheckoutExpr = /\Q[INFO] This would be a LOCAL check out to perform the release ...\E/
+def localCheckoutExpr = /\Q[INFO] This would be a LOCAL check out to perform the release from /
 def matcher = ( buildLog.getText() =~ localCheckoutExpr )
 
 assert matcher.find()
diff --git a/maven-release-plugin/src/site/apt/examples/perform-release.apt.vm b/maven-release-plugin/src/site/apt/examples/perform-release.apt.vm
index 002c9fa3..d3dca4b6 100644
--- a/maven-release-plugin/src/site/apt/examples/perform-release.apt.vm
+++ b/maven-release-plugin/src/site/apt/examples/perform-release.apt.vm
@@ -29,7 +29,7 @@ Perform a Release
 
   Performing a release runs the following release phases {{{../../maven-release-manager/#perform}by default}}:
 
-   * Checkout from an SCM URL with optional tag
+   * Checkout from an SCM URL with optional tag to <<<workingDirectory>>> (<<<target/checkout>>> by default)
 
    * Run the perform Maven goals to release the project (by default, <<<deploy site-deploy>>>), eventually with release profile(s) active
 
diff --git a/maven-release-plugin/src/site/apt/usage.apt.vm b/maven-release-plugin/src/site/apt/usage.apt.vm
index 1e609d44..8353bc6c 100644
--- a/maven-release-plugin/src/site/apt/usage.apt.vm
+++ b/maven-release-plugin/src/site/apt/usage.apt.vm
@@ -80,7 +80,7 @@ mvn release:prepare -DdryRun
 ------
 
   This will ask all the same questions, run the same tests, and output a copy of how the POMs will look after
-  transformation. You can check the output and review the POMs, then run:
+  transformation. You can check the output and review the POMs (with <<<.tag>>> and <<<.next>>> suffixes), then run:
 
 ------
 mvn release:perform -DdryRun
@@ -94,9 +94,9 @@ mvn release:perform -DdryRun
   builds through a build server). To use the default inputs for the versions and tag information and not prompt for any
   values, use Maven's <<<--batch-mode>>> setting:
 
-+------
+------
 mvn --batch-mode release:prepare
-+------
+------
 
 * Use a staging repository