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

royteeuwen pushed a commit to branch 
feature/SLING-13253-tally-votes-finalize-steps
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git

commit d3725946c54c08025ff63c2434340036d1eba168
Author: Roy Teeuwen <[email protected]>
AuthorDate: Mon Aug 3 10:55:12 2026 +0200

    SLING-13253 - tally-votes: list all finalize steps in the result email
    
    The closing paragraph only mentioned the dist upload and the promotion to
    Maven Central, while finalize also creates the next JIRA version, moves
    unresolved issues, marks the version released and updates the Apache
    Reporter System. It also stated the dist-before-Central order twice, once
    in the explanation and again in the ACTION NEEDED line.
    
    Both the PMC and non-PMC variants now share one FINALIZE_STEPS list that
    mirrors FinalizeCommand, and the ACTION NEEDED line carries only the ask.
    
    Reporter data is committee-scoped, so a non-PMC releaser cannot complete
    that step either - the note now says steps 1 and 5 need PMC membership,
    not just the dist upload.
---
 .../sling/cli/impl/release/TallyVotesCommand.java  | 24 ++++++++------
 .../cli/impl/release/TallyVotesCommandTest.java    | 38 +++++++++++++++-------
 2 files changed, 41 insertions(+), 21 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java 
b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
index 21dd4f9..d772a83 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java
@@ -89,6 +89,14 @@ public class TallyVotesCommand implements Command {
     @CommandLine.Mixin
     private ReusableCLIOptions reusableCLIOptions;
 
+    /** The steps {@link FinalizeCommand} performs, in the order it performs 
them. */
+    private static final String FINALIZE_STEPS = "  1. copy the artifacts to 
the Sling dist directory\n"
+            + "     (https://dist.apache.org/repos/dist/release/sling/)\n"
+            + "  2. promote the staged artifacts to the central Maven 
repository\n"
+            + "  3. create the next JIRA version and move any unresolved 
issues to it\n"
+            + "  4. mark the JIRA version as released\n"
+            + "  5. add the release to the Apache Reporter System";
+
     private static final String EMAIL_TEMPLATE;
 
     static {
@@ -199,20 +207,16 @@ public class TallyVotesCommand implements Command {
      * dist directory first and only then promoting the artifacts to Maven 
Central. Because the dist
      * upload is restricted to PMC members, a non-PMC release manager cannot 
perform the finalization
      * in the correct order and must ask a PMC member to finalize the release. 
PMC membership is derived
-     * from the current user, so no flag is needed.
+     * from the current user, so no flag is needed. Both variants list the 
same {@link #FINALIZE_STEPS},
+     * so the email states what finalizing actually involves rather than only 
its first two steps.
      */
     private String closingAction(String releaseFullName, boolean isPmcMember) {
         if (isPmcMember) {
-            return "I will copy this release to the Sling dist directory and\n"
-                    + "promote the artifacts to the central Maven repository.";
+            return "I will finalize this release:\n\n" + FINALIZE_STEPS;
         }
-        return "The release still needs to be finalized: the artifacts must 
first be copied to the\n"
-                + "Sling dist directory 
(https://dist.apache.org/repos/dist/release/sling/) and only\n"
-                + "then promoted to the central Maven repository. As that 
first step requires PMC\n"
-                + "membership, which I do not have, I cannot finalize this 
release myself.\n\n"
-                + "ACTION NEEDED: can a PMC member please finalize " + 
releaseFullName + " by copying it\n"
-                + "to the dist directory and then promoting the staged 
artifacts to the central Maven\n"
-                + "repository?";
+        return "This release still needs to be finalized:\n\n" + 
FINALIZE_STEPS + "\n\n"
+                + "Steps 1 and 5 require PMC membership, which I do not 
have.\n\n"
+                + "ACTION NEEDED: can a PMC member please finalize " + 
releaseFullName + "?";
     }
 
     // TODO - better detection of '+1' votes
diff --git 
a/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java 
b/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
index 03fd03c..5b31706 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/TallyVotesCommandTest.java
@@ -103,8 +103,14 @@ public class TallyVotesCommandTest {
                         + "+1 (binding): Alice, Bob, Charlie, John Doe, Joerg 
Hoh\n"
                         + "+1 (non-binding): Daniel\n"
                         + "\n"
-                        + "I will copy this release to the Sling dist 
directory and\n"
-                        + "promote the artifacts to the central Maven 
repository.\n"
+                        + "I will finalize this release:\n"
+                        + "\n"
+                        + "  1. copy the artifacts to the Sling dist 
directory\n"
+                        + "     
(https://dist.apache.org/repos/dist/release/sling/)\n"
+                        + "  2. promote the staged artifacts to the central 
Maven repository\n"
+                        + "  3. create the next JIRA version and move any 
unresolved issues to it\n"
+                        + "  4. mark the JIRA version as released\n"
+                        + "  5. add the release to the Apache Reporter 
System\n"
                         + "\n"
                         + "Regards,\n"
                         + "John Doe\n"));
@@ -142,14 +148,18 @@ public class TallyVotesCommandTest {
                 +1 (binding): Alice, Bob, Charlie
                 +1 (non-binding): none
 
-                The release still needs to be finalized: the artifacts must 
first be copied to the
-                Sling dist directory 
(https://dist.apache.org/repos/dist/release/sling/) and only
-                then promoted to the central Maven repository. As that first 
step requires PMC
-                membership, which I do not have, I cannot finalize this 
release myself.
+                This release still needs to be finalized:
+
+                  1. copy the artifacts to the Sling dist directory
+                     (https://dist.apache.org/repos/dist/release/sling/)
+                  2. promote the staged artifacts to the central Maven 
repository
+                  3. create the next JIRA version and move any unresolved 
issues to it
+                  4. mark the JIRA version as released
+                  5. add the release to the Apache Reporter System
 
-                ACTION NEEDED: can a PMC member please finalize Apache Sling 
CLI Test 1.0.0 by copying it
-                to the dist directory and then promoting the staged artifacts 
to the central Maven
-                repository?
+                Steps 1 and 5 require PMC membership, which I do not have.
+
+                ACTION NEEDED: can a PMC member please finalize Apache Sling 
CLI Test 1.0.0?
 
                 Regards,
                 Daniel
@@ -204,8 +214,14 @@ public class TallyVotesCommandTest {
                         + "+1 (binding): Alice, Bob, Charlie, John Doe\n"
                         + "+1 (non-binding): Daniel\n"
                         + "\n"
-                        + "I will copy this release to the Sling dist 
directory and\n"
-                        + "promote the artifacts to the central Maven 
repository.\n"
+                        + "I will finalize this release:\n"
+                        + "\n"
+                        + "  1. copy the artifacts to the Sling dist 
directory\n"
+                        + "     
(https://dist.apache.org/repos/dist/release/sling/)\n"
+                        + "  2. promote the staged artifacts to the central 
Maven repository\n"
+                        + "  3. create the next JIRA version and move any 
unresolved issues to it\n"
+                        + "  4. mark the JIRA version as released\n"
+                        + "  5. add the release to the Apache Reporter 
System\n"
                         + "\n"
                         + "Regards,\n"
                         + "John Doe\n");

Reply via email to