Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 71220200D3A for ; Wed, 1 Nov 2017 07:04:53 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 6FB50160BFB; Wed, 1 Nov 2017 06:04:53 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 163A51609EF for ; Wed, 1 Nov 2017 07:04:51 +0100 (CET) Received: (qmail 48013 invoked by uid 500); 1 Nov 2017 06:04:50 -0000 Mailing-List: contact dev-help@maven.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Maven Developers List" Reply-To: "Maven Developers List" Delivered-To: mailing list dev@maven.apache.org Received: (qmail 47994 invoked by uid 99); 1 Nov 2017 06:04:50 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Nov 2017 06:04:50 +0000 From: GitBox To: dev@maven.apache.org Subject: [GitHub] hboutemy closed pull request #13: MRELEASE-980 Allow commit comments to be controlled Message-ID: <150951629010.5809.564130352388296600.gitbox@gitbox.apache.org> archived-at: Wed, 01 Nov 2017 06:04:53 -0000 hboutemy closed pull request #13: MRELEASE-980 Allow commit comments to be controlled URL: https://github.com/apache/maven-release/pull/13 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/maven-release-manager/src/main/components-fragment.xml b/maven-release-manager/src/main/components-fragment.xml index 5880c75f..97eca406 100644 --- a/maven-release-manager/src/main/components-fragment.xml +++ b/maven-release-manager/src/main/components-fragment.xml @@ -152,7 +152,7 @@ - prepare release {0} + getScmReleaseCommitComment @@ -165,7 +165,7 @@ - prepare for next development iteration + getScmDevelopmentCommitComment rollback changes from release preparation of {0} @@ -179,7 +179,7 @@ - prepare branch {0} + getScmBranchCommitComment @@ -192,7 +192,7 @@ - rollback the release of {0} + getScmRollbackCommitComment diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java index 235517b6..559a4921 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java @@ -211,6 +211,22 @@ public void write( ReleaseDescriptor config, File file ) { properties.setProperty( "scm.commentPrefix", config.getScmCommentPrefix() ); } + if ( config.getScmDevelopmentCommitComment() != null ) + { + properties.setProperty( "scm.developmentCommitComment", config.getScmDevelopmentCommitComment() ); + } + if ( config.getScmReleaseCommitComment() != null ) + { + properties.setProperty( "scm.releaseCommitComment", config.getScmReleaseCommitComment() ); + } + if ( config.getScmBranchCommitComment() != null ) + { + properties.setProperty( "scm.branchCommitComment", config.getScmBranchCommitComment() ); + } + if ( config.getScmRollbackCommitComment() != null ) + { + properties.setProperty( "scm.rollbackCommitComment", config.getScmRollbackCommitComment() ); + } if ( config.getAdditionalArguments() != null ) { properties.setProperty( "exec.additionalArguments", config.getAdditionalArguments() ); diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java index 522fef4a..5dca5b8a 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java @@ -69,6 +69,16 @@ public static ReleaseDescriptor merge( ReleaseDescriptor mergeInto, ReleaseDescr mergeOverride( mergeInto.getScmPrivateKeyPassPhrase(), toBeMerged.getScmPrivateKeyPassPhrase() ) ); mergeInto.setScmCommentPrefix( mergeOverride( mergeInto.getScmCommentPrefix(), toBeMerged.getScmCommentPrefix() ) ); + mergeInto.setScmDevelopmentCommitComment( + mergeOverride( + mergeInto.getScmDevelopmentCommitComment(), + toBeMerged.getScmDevelopmentCommitComment() ) ); + mergeInto.setScmReleaseCommitComment( + mergeOverride( mergeInto.getScmReleaseCommitComment(), toBeMerged.getScmReleaseCommitComment() ) ); + mergeInto.setScmBranchCommitComment( + mergeOverride( mergeInto.getScmBranchCommitComment(), toBeMerged.getScmBranchCommitComment() ) ); + mergeInto.setScmRollbackCommitComment( + mergeOverride( mergeInto.getScmRollbackCommitComment(), toBeMerged.getScmRollbackCommitComment() ) ); mergeInto.setAdditionalArguments( mergeOverride( mergeInto.getAdditionalArguments(), toBeMerged.getAdditionalArguments() ) ); mergeInto.setPreparationGoals( @@ -158,6 +168,23 @@ public static ReleaseDescriptor copyPropertiesToReleaseDescriptor( Properties pr releaseDescriptor.setScmBranchBase( properties.getProperty( "scm.branchBase" ) ); releaseDescriptor.setScmReleaseLabel( properties.getProperty( "scm.tag" ) ); releaseDescriptor.setScmCommentPrefix( properties.getProperty( "scm.commentPrefix" ) ); + if ( properties.getProperty( "scm.releaseCommitComment" ) != null ) + { + releaseDescriptor.setScmReleaseCommitComment( properties.getProperty( "scm.releaseCommitComment" ) ); + } + if ( properties.getProperty( "scm.developmentCommitComment" ) != null ) + { + releaseDescriptor.setScmDevelopmentCommitComment( + properties.getProperty( "scm.developmentCommitComment" ) ); + } + if ( properties.getProperty( "scm.branchCommitComment" ) != null ) + { + releaseDescriptor.setScmBranchCommitComment( properties.getProperty( "scm.branchCommitComment" ) ); + } + if ( properties.getProperty( "scm.rollbackCommitComment" ) != null ) + { + releaseDescriptor.setScmRollbackCommitComment( properties.getProperty( "scm.rollbackCommitComment" ) ); + } releaseDescriptor.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) ); releaseDescriptor.setPomFileName( properties.getProperty( "exec.pomFileName" ) ); releaseDescriptor.setPreparationGoals( properties.getProperty( "preparationGoals" ) ); diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java index 990060d7..e67fd267 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java @@ -39,7 +39,6 @@ import org.apache.maven.shared.release.util.ReleaseUtil; import java.io.File; -import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -63,9 +62,9 @@ protected ScmRepositoryConfigurator scmRepositoryConfigurator; /** - * The format for the commit message. + * The getter in the descriptor for the comment. */ - protected String messageFormat; + protected String descriptorCommentGetter; public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List reactorProjects ) @@ -186,10 +185,47 @@ protected void validateConfiguration( ReleaseDescriptor releaseDescriptor ) } } - protected String createMessage( ReleaseDescriptor releaseDescriptor ) + protected String createMessage( List reactorProjects, + ReleaseDescriptor releaseDescriptor ) + throws ReleaseExecutionException { - return MessageFormat.format( releaseDescriptor.getScmCommentPrefix() + messageFormat, - new Object[]{releaseDescriptor.getScmReleaseLabel()} ); + String comment; + boolean branch = false; + if ( "getScmReleaseCommitComment".equals( descriptorCommentGetter ) ) + { + comment = releaseDescriptor.getScmReleaseCommitComment(); + } + else if ( "getScmDevelopmentCommitComment".equals( descriptorCommentGetter ) ) + { + comment = releaseDescriptor.getScmDevelopmentCommitComment(); + } + else if ( "getScmBranchCommitComment".equals( descriptorCommentGetter ) ) + { + comment = releaseDescriptor.getScmBranchCommitComment(); + branch = true; + } + else if ( "getScmRollbackCommitComment".equals( descriptorCommentGetter ) ) + { + comment = releaseDescriptor.getScmRollbackCommitComment(); + } + else + { + throw new ReleaseExecutionException( "Invalid configuration in components-fragment.xml" ); + } + + MavenProject project = ReleaseUtil.getRootProject( reactorProjects ); + comment = comment.replace( "@{prefix}", releaseDescriptor.getScmCommentPrefix().trim() ); + comment = comment.replace( "@{groupId}", project.getGroupId() ); + comment = comment.replace( "@{artifactId}", project.getArtifactId() ); + if ( branch ) + { + comment = comment.replace( "@{branchName}", releaseDescriptor.getScmReleaseLabel() ); + } + else + { + comment = comment.replace( "@{releaseLabel}", releaseDescriptor.getScmReleaseLabel() ); + } + return comment; } protected static List createPomFiles( ReleaseDescriptor releaseDescriptor, MavenProject project ) diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhase.java index 889b9c35..a1fc956e 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhase.java @@ -78,13 +78,13 @@ protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment else { // a normal commit - message = createMessage( releaseDescriptor ); + message = createMessage( reactorProjects, releaseDescriptor ); } if ( simulating ) { Collection pomFiles = createPomFiles( releaseDescriptor, reactorProjects ); logInfo( result, - "Full run would be commit " + pomFiles.size() + " files with message: '" + message + "'" ); + "Full run would commit " + pomFiles.size() + " files with message: '" + message + "'" ); } else { diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhase.java index 8c65a60a..1bee2fb4 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhase.java @@ -28,7 +28,6 @@ import org.apache.maven.shared.release.scm.ReleaseScmCommandException; import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException; -import java.text.MessageFormat; import java.util.List; /** @@ -40,11 +39,6 @@ extends AbstractScmCommitPhase { - /** - * The format for the - */ - private String rollbackMessageFormat; - protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List reactorProjects, ReleaseResult result, boolean simulating ) throws ReleaseScmCommandException, ReleaseExecutionException, ReleaseScmRepositoryException @@ -65,8 +59,7 @@ protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment // commit development versions required else { - String message = createMessage( releaseDescriptor ); - + String message = createMessage( reactorProjects, releaseDescriptor ); if ( simulating ) { simulateCheckins( releaseDescriptor, reactorProjects, result, message ); @@ -78,12 +71,6 @@ protected void runLogic( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment } } - private String createRollbackMessage( ReleaseDescriptor releaseDescriptor ) - { - return MessageFormat.format( releaseDescriptor.getScmCommentPrefix() + rollbackMessageFormat, - new Object[]{releaseDescriptor.getScmReleaseLabel()} ); - } - protected void validateConfiguration( ReleaseDescriptor releaseDescriptor ) throws ReleaseFailureException { diff --git a/maven-release-manager/src/main/mdo/release-descriptor.mdo b/maven-release-manager/src/main/mdo/release-descriptor.mdo index f62b0ffd..c8defbc7 100644 --- a/maven-release-manager/src/main/mdo/release-descriptor.mdo +++ b/maven-release-manager/src/main/mdo/release-descriptor.mdo @@ -69,6 +69,42 @@ + scmReleaseCommitComment + 3.0.0+ + String + @{prefix} prepare release @{releaseLabel} + + The SCM commit comment when setting pom.xml to release + + + + scmDevelopmentCommitComment + 3.0.0+ + String + @{prefix} prepare for next development iteration + + The SCM commit comment when setting pom.xml back to development + + + + scmBranchCommitComment + 3.0.0+ + String + @{prefix} prepare branch @{releaseLabel} + + The SCM commit comment when branching + + + + scmRollbackCommitComment + 3.0.0+ + String + @{prefix} rollback the release of @{releaseLabel} + + The SCM commit comment when rolling back + + + scmSourceUrl 1.0.0+ String @@ -793,6 +829,22 @@ { return false; } + if ( !safeEquals( scmDevelopmentCommitComment, that.scmDevelopmentCommitComment ) ) + { + return false; + } + if ( !safeEquals( scmReleaseCommitComment, that.scmReleaseCommitComment ) ) + { + return false; + } + if ( !safeEquals( scmBranchCommitComment, that.scmBranchCommitComment ) ) + { + return false; + } + if ( !safeEquals( scmRollbackCommitComment, that.scmRollbackCommitComment ) ) + { + return false; + } if ( !safeEquals( scmPrivateKeyPassPhrase, that.scmPrivateKeyPassPhrase ) ) { return false; @@ -921,6 +973,10 @@ result = 29 * result + ( completionGoals != null ? completionGoals.hashCode() : 0 ); result = 29 * result + ( pomFileName != null ? pomFileName.hashCode() : 0 ); result = 29 * result + ( checkModificationExcludes != null ? checkModificationExcludes.hashCode() : 0 ); + result = 29 * result + ( scmDevelopmentCommitComment != null ? scmDevelopmentCommitComment.hashCode() : 0 ); + result = 29 * result + ( scmReleaseCommitComment != null ? scmReleaseCommitComment.hashCode() : 0 ); + result = 29 * result + ( scmBranchCommitComment != null ? scmBranchCommitComment.hashCode() : 0 ); + result = 29 * result + ( scmRollbackCommitComment != null ? scmRollbackCommitComment.hashCode() : 0 ); result = 29 * result + ( scmTagBase != null ? scmTagBase.hashCode() : 0 ); result = 29 * result + ( scmBranchBase != null ? scmBranchBase.hashCode() : 0 ); result = 29 * result + ( scmUsername != null ? scmUsername.hashCode() : 0 ); diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhaseTest.java index 56875c0a..14f99938 100644 --- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhaseTest.java +++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitDevelopmentPhaseTest.java @@ -118,6 +118,21 @@ public void testCommitsNextVersions() } @Test + public void testCommitsNextVersionsAlternateMessage() + throws Exception + { + descriptor.setUpdateWorkingCopyVersions( true ); + descriptor.setScmCommentPrefix("[release]"); + descriptor.setScmDevelopmentCommitComment("@{prefix} Development of @{groupId}:@{artifactId}"); + + prepareCheckin( "[release] Development of groupId:artifactId" ); + + phase.execute( descriptor, new DefaultReleaseEnvironment(), reactorProjects ); + + verifyCheckin( "[release] Development of groupId:artifactId" ); + } + + @Test public void testCommitsRollbackPrepare() throws Exception { diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java index 9cc7256c..ec825074 100644 --- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java +++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java @@ -129,6 +129,41 @@ public void testCommit() } @Test + public void testCommitAlternateMessage() + throws Exception + { + // prepare + List reactorProjects = createReactorProjects(); + ReleaseDescriptor descriptor = new ReleaseDescriptor(); + descriptor.setScmSourceUrl( "scm-url" ); + descriptor.setScmCommentPrefix("[release]"); + descriptor.setScmReleaseCommitComment("@{prefix} Release of @{groupId}:@{artifactId} @{releaseLabel}"); + MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects ); + descriptor.setWorkingDirectory( rootProject.getFile().getParentFile().getAbsolutePath() ); + descriptor.setScmReleaseLabel( "release-label" ); + + ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile(), rootProject.getFile() ); + + ScmProvider scmProviderMock = mock( ScmProvider.class ); + when( scmProviderMock.checkIn( isA( ScmRepository.class ), argThat( new IsScmFileSetEquals( fileSet ) ), + isNull( ScmVersion.class ), + eq( "[release] Release of groupId:artifactId release-label" ) ) ).thenReturn( new CheckInScmResult( "...", + Collections.singletonList( new ScmFile( rootProject.getFile().getPath(), + ScmFileStatus.CHECKED_IN ) ) ) ); + + ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE ); + stub.setScmProvider( scmProviderMock ); + + // execute + phase.execute( descriptor, new DefaultReleaseEnvironment(), reactorProjects ); + + // verify + verify( scmProviderMock ).checkIn( isA( ScmRepository.class ), argThat( new IsScmFileSetEquals( fileSet ) ), + isNull( ScmVersion.class ), eq( "[release] Release of groupId:artifactId release-label" ) ); + verifyNoMoreInteractions( scmProviderMock ); + } + + @Test public void testCommitMultiModule() throws Exception { @@ -204,6 +239,44 @@ public void testCommitDevelopment() } @Test + public void testCommitDevelopmentAlternateMessage() + throws Exception + { + // prepare + phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "scm-commit-development" ); + + ReleaseDescriptor descriptor = new ReleaseDescriptor(); + List reactorProjects = createReactorProjects(); + descriptor.setScmSourceUrl( "scm-url" ); + descriptor.setScmCommentPrefix("[release]"); + descriptor.setScmDevelopmentCommitComment("@{prefix} Bump version of @{groupId}:@{artifactId} after @{releaseLabel}"); + MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects ); + descriptor.setWorkingDirectory( rootProject.getFile().getParentFile().getAbsolutePath() ); + descriptor.setScmReleaseLabel( "release-label" ); + + ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile(), rootProject.getFile() ); + + ScmProvider scmProviderMock = mock( ScmProvider.class ); + when( scmProviderMock.checkIn( isA( ScmRepository.class ), argThat( new IsScmFileSetEquals( fileSet ) ), + isNull( ScmVersion.class ), + eq( "[release] Bump version of groupId:artifactId after release-label" ) ) ).thenReturn( new CheckInScmResult( "...", + Collections.singletonList( new ScmFile( rootProject.getFile().getPath(), + ScmFileStatus.CHECKED_IN ) ) ) ); + + ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE ); + stub.setScmProvider( scmProviderMock ); + + // execute + phase.execute( descriptor, new DefaultReleaseEnvironment(), reactorProjects ); + + // verify + verify( scmProviderMock ).checkIn( isA( ScmRepository.class ), argThat( new IsScmFileSetEquals( fileSet ) ), + isNull( ScmVersion.class ), + eq( "[release] Bump version of groupId:artifactId after release-label" ) ); + verifyNoMoreInteractions( scmProviderMock ); + } + + @Test public void testCommitNoReleaseLabel() throws Exception { diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java index 03aa31be..9884334a 100644 --- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java +++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java @@ -207,6 +207,25 @@ private String projectNamingPolicyId; /** + * The SCM commit comment when branching. + * Defaults to "@{prefix} prepare branch @{releaseLabel}". + *

+ * Property interpolation is performed on the value, but in order to ensure that the interpolation occurs + * during release, you must use @{...} to reference the properties rather than ${...}. + * The following properties are available: + *

    + *
  • prefix - The comment prefix. + *
  • groupId - The groupId of the root project. + *
  • artifactId - The artifactId of the root project. + *
  • releaseLabel - The release version of the root project. + *
+ * + * @since 3.0.0 + */ + @Parameter( defaultValue = "@{prefix} prepare branch @{releaseLabel}", property = "scmBranchCommitComment" ) + private String scmBranchCommitComment = "@{prefix} prepare branch @{releaseLabel}"; + + /** * {@inheritDoc} */ public void execute() @@ -231,6 +250,7 @@ public void execute() config.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeBranch ); config.setProjectVersionPolicyId( projectVersionPolicyId ); config.setProjectNamingPolicyId( projectNamingPolicyId ); + config.setScmBranchCommitComment( scmBranchCommitComment ); // Create a config containing values from the session properties (ie command line properties with cli). ReleaseDescriptor sysPropertiesConfig diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java index 852f61cd..a0ae3b2d 100644 --- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java +++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java @@ -234,6 +234,46 @@ private String projectNamingPolicyId; /** + * The SCM commit comment when setting pom.xml to release. + * Defaults to "@{prefix} prepare release @{releaseLabel}". + *

+ * Property interpolation is performed on the value, but in order to ensure that the interpolation occurs + * during release, you must use @{...} to reference the properties rather than ${...}. + * The following properties are available: + *

    + *
  • prefix - The comment prefix. + *
  • groupId - The groupId of the root project. + *
  • artifactId - The artifactId of the root project. + *
  • releaseLabel - The release version of the root project. + *
+ * + * @since 3.0.0 + */ + @Parameter( defaultValue = "@{prefix} prepare release @{releaseLabel}", property = "scmReleaseCommitComment" ) + private String scmReleaseCommitComment = "@{prefix} prepare release @{releaseLabel}"; + + /** + * The SCM commit comment when setting pom.xml back to development. + * Defaults to "@{prefix} prepare for next development iteration". + *

+ * Property interpolation is performed on the value, but in order to ensure that the interpolation occurs + * during release, you must use @{...} to reference the properties rather than ${...}. + * The following properties are available: + *

    + *
  • prefix - The comment prefix. + *
  • groupId - The groupId of the root project. + *
  • artifactId - The artifactId of the root project. + *
  • releaseLabel - The release version of the root project. + *
+ * + * @since 3.0.0 + */ + @Parameter( + defaultValue = "@{prefix} prepare for next development iteration", + property = "scmDevelopmentCommitComment" ) + private String scmDevelopmentCommitComment = "@{prefix} prepare for next development iteration"; + + /** * {@inheritDoc} */ public void execute() @@ -274,6 +314,8 @@ protected void prepareRelease( boolean generateReleasePoms ) config.setWaitBeforeTagging( waitBeforeTagging ); config.setProjectVersionPolicyId( projectVersionPolicyId ); config.setProjectNamingPolicyId( projectNamingPolicyId ); + config.setScmDevelopmentCommitComment( scmDevelopmentCommitComment ); + config.setScmReleaseCommitComment( scmReleaseCommitComment ); if ( checkModificationExcludeList != null ) { diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java index fd0cad07..2fc60d29 100644 --- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java +++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java @@ -22,6 +22,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.shared.release.ReleaseExecutionException; import org.apache.maven.shared.release.ReleaseFailureException; import org.apache.maven.shared.release.config.ReleaseDescriptor; @@ -42,6 +43,27 @@ { /** + * The SCM commit comment when rolling back. + * Defaults to "@{prefix} rollback the release of @{releaseLabel}". + *

+ * Property interpolation is performed on the value, but in order to ensure that the interpolation occurs + * during release, you must use @{...} to reference the properties rather than ${...}. + * The following properties are available: + *

    + *
  • prefix - The comment prefix. + *
  • groupId - The groupId of the root project. + *
  • artifactId - The artifactId of the root project. + *
  • releaseLabel - The release version of the root project. + *
+ * + * @since 3.0.0 + */ + @Parameter( + defaultValue = "@{prefix} rollback the release of @{releaseLabel}", + property = "scmRollbackCommitComment" ) + private String scmRollbackCommitComment = "@{prefix} rollback the release of @{releaseLabel}"; + + /** * {@inheritDoc} */ public void execute() @@ -50,6 +72,7 @@ public void execute() super.execute(); ReleaseDescriptor config = createReleaseDescriptor(); + config.setScmRollbackCommitComment( scmRollbackCommitComment ); try { ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: users@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org For additional commands, e-mail: dev-help@maven.apache.org