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

meonkeys pushed a commit to branch release/1.14.0
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/release/1.14.0 by this push:
     new e1b0329748 port steps 10 & 11 to the ATR
e1b0329748 is described below

commit e1b03297482caa686bd0a103caf5cb64957175e8
Author: Adam Monsen <[email protected]>
AuthorDate: Mon Dec 22 11:28:24 2025 -0800

    port steps 10 & 11 to the ATR
---
 .../main/groovy/org.apache.fineract.release.gradle | 26 -------
 .../apache/fineract/gradle/FineractPlugin.groovy   | 42 +---------
 .../email/release.step10.vote.message.ftl          | 51 -------------
 .../email/release.step11.vote.message.ftl          | 89 ----------------------
 .../step10.txt.ftl}                                | 10 ++-
 .../step11.txt.ftl}                                | 10 ++-
 .../docs/en/chapters/release/process-step10.adoc   | 13 +---
 .../docs/en/chapters/release/process-step11.adoc   | 13 +---
 8 files changed, 28 insertions(+), 226 deletions(-)

diff --git a/buildSrc/src/main/groovy/org.apache.fineract.release.gradle 
b/buildSrc/src/main/groovy/org.apache.fineract.release.gradle
index 78fb085b6a..254d80e223 100644
--- a/buildSrc/src/main/groovy/org.apache.fineract.release.gradle
+++ b/buildSrc/src/main/groovy/org.apache.fineract.release.gradle
@@ -196,36 +196,10 @@ fineract {
         step10: [
             order: 10,
             description: 'Start voting on the dev mailing list',
-            email: [
-                from: "${findProperty('fineract.config.email')}",
-                name: "${findProperty('fineract.config.name')}",
-                to: "${findProperty('fineract.config.email')}",
-                // to: '[email protected]',
-                mime: 'text/plain',
-                subjectTemplate: [
-                    templateFile: 
"${projectDir}/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl"
-                ],
-                messageTemplate: [
-                    templateFile: 
"${projectDir}/buildSrc/src/main/resources/email/release.step10.vote.message.ftl"
-                ]
-            ]
         ],
         step11: [
             order: 11,
             description: 'Conclude the vote and announce results',
-            email: [
-                from: "${findProperty('fineract.config.email')}",
-                name: "${findProperty('fineract.config.name')}",
-                to: "${findProperty('fineract.config.email')}",
-                // to: '[email protected]',
-                mime: 'text/plain',
-                subjectTemplate: [
-                    templateFile: 
"${projectDir}/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl"
-                ],
-                messageTemplate: [
-                    templateFile: 
"${projectDir}/buildSrc/src/main/resources/email/release.step11.vote.message.ftl"
-                ]
-            ]
         ],
         step12: [
             order: 12,
diff --git 
a/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy 
b/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy
index c2bb039afe..f1cf57ef70 100644
--- a/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy
@@ -18,7 +18,6 @@
  */
 package org.apache.fineract.gradle
 
-import groovy.json.JsonSlurper
 import org.apache.commons.io.FileUtils
 import org.apache.commons.io.filefilter.NotFileFilter
 import org.apache.commons.io.filefilter.PrefixFileFilter
@@ -384,23 +383,7 @@ class FineractPlugin implements Plugin<Project> {
             doFirst {
                 FineractPluginExtension.FineractPluginStep step = 
step(extension, "step10")
 
-                String version = 
project.properties?['fineract.release.version']
-
-                if(!version) {
-                    TextIO textIO = TextIoFactory.getTextIO();
-
-                    version = textIO.newStringInputReader()
-                            .withPattern("\\d+.\\d+.\\d+")
-                            .read("Release Version");
-                }
-
-                // TODO: input validation, see FINERACT-1610
-
-                this.context?.project?['fineract.release.version'] = version
-
-                if(step.email) {
-                    emailService.send( processEmailParams(step.email, 
this.context) )
-                }
+                printInstructions(project, "step10")
             }
         }
 
@@ -409,28 +392,7 @@ class FineractPlugin implements Plugin<Project> {
             doFirst {
                 FineractPluginExtension.FineractPluginStep step = 
step(extension, "step11")
 
-                String version = 
project.properties?['fineract.release.version']
-
-                if(!version) {
-                    TextIO textIO = TextIoFactory.getTextIO()
-
-                    version = textIO.newStringInputReader()
-                            .withPattern("\\d+.\\d+.\\d+")
-                            .read("Release Version");
-                }
-
-                // TODO: input validation, see FINERACT-1610
-
-                this.context?.project?['fineract.release.version'] = version
-
-                def jsonSlurper = new JsonSlurper()
-                def data = jsonSlurper.parse(new 
File("buildSrc/src/main/resources/vote/result.${version}.json"))
-
-                this.context?.project?['fineract.vote'] = data
-
-                if(step.email) {
-                    emailService.send( processEmailParams(step.email, 
this.context) )
-                }
+                printInstructions(project, "step11")
             }
         }
 
diff --git a/buildSrc/src/main/resources/email/release.step10.vote.message.ftl 
b/buildSrc/src/main/resources/email/release.step10.vote.message.ftl
deleted file mode 100644
index cf91d17461..0000000000
--- a/buildSrc/src/main/resources/email/release.step10.vote.message.ftl
+++ /dev/null
@@ -1,51 +0,0 @@
-<#--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership. The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License. You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied. See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-Hello everyone,
-
-We are proud to present Apache Fineract 
${project['fineract.release.version']}, with the artifacts below up for a vote. 
Releases are important for a number of reasons: They put a stamp of approval on 
a set of code changes and they build momentum for future improvements.
-
-Release notes and ChangeLog: 
https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract
-
-Source and binary artifacts: 
https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']}/
-
-Tagged as ${project['fineract.release.version']}
-
-Committer PGP keys, including the release signing key: 
https://dist.apache.org/repos/dist/dev/fineract/KEYS
-
-Note that this release candidate contains source and binary artifacts.
-
-This vote will be open for 72 hours:
-
-[ ] +1 approve
-[ ] +0 no opinion
-[ ] -1 disapprove (and reason why)
-
-Please indicate if yours is a binding vote, and "Verified: YES/NO/PARTIAL".
-
-Verified: YES ... Verified integrity and signatures of release artifacts 
locally, built from source, ran jar/war: Did everything mentioned in the 
current release candidate verification guidance ( 
https://fineract.apache.org/docs/rc/#_artifact_verification ). If you did more 
than that, please specify. "Verified: YES" is required for binding votes.
-
-Verified: NO ... No testing performed on release candidate, e.g. relying on 
testing performed by other contributors and/or output of GitHub Actions, while 
exercising your right to vote.
-
-Verified: PARTIAL ... Please specify.
-
-Cheers,
-
-${project['fineract.config.name']}
diff --git a/buildSrc/src/main/resources/email/release.step11.vote.message.ftl 
b/buildSrc/src/main/resources/email/release.step11.vote.message.ftl
deleted file mode 100644
index 227d956d63..0000000000
--- a/buildSrc/src/main/resources/email/release.step11.vote.message.ftl
+++ /dev/null
@@ -1,89 +0,0 @@
-<#--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership. The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License. You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied. See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<#if (project['fineract.vote'].approve.binding?size + 
project['fineract.vote'].approve.nonBinding?size > 
project['fineract.vote'].disapprove.binding?size + 
project['fineract.vote'].disapprove.nonBinding?size)>
-Voting is now closed and has passed with the following tally,
-
-Binding +1s: ${project['fineract.vote'].approve.binding?size}
-Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}
-<#else>
-Voting is now closed and has not passed with the following tally,
-
-Binding +1s: ${project['fineract.vote'].approve.binding?size}
-Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}
-
-Binding -1s: ${project['fineract.vote'].disapprove.binding?size}
-Non binding -1s: ${project['fineract.vote'].disapprove.nonBinding?size}
-</#if>
-
-Here are the detailed results:
-
-<#list project['fineract.vote'].approve.binding>
-Binding +1s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-
-<#list project['fineract.vote'].approve.nonBinding>
-Non binding +1s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-
-<#list project['fineract.vote'].disapprove.binding>
-Binding -1s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-<#list project['fineract.vote'].disapprove.nonBinding>
-Non binding -1s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-
-<#list project['fineract.vote'].noOpinion.binding>
-Binding +0s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-<#list project['fineract.vote'].noOpinion.nonBinding>
-Non binding +0s:
-    <#items as item>
-- ${item.name}
-    </#items>
-</#list>
-
-<#if (project['fineract.vote'].approve.binding?size + 
project['fineract.vote'].approve.nonBinding?size > 
project['fineract.vote'].disapprove.binding?size + 
project['fineract.vote'].disapprove.nonBinding?size)>
-Thanks to everyone who voted! I'll now continue with the rest of the release 
process.
-<#else>
-Thanks to everyone who voted! Looks like we have to repeat the vote.
-</#if>
-
-${project['fineract.config.name']}
diff --git a/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl 
b/buildSrc/src/main/resources/instructions/step10.txt.ftl
similarity index 85%
rename from buildSrc/src/main/resources/email/release.step11.vote.subject.ftl
rename to buildSrc/src/main/resources/instructions/step10.txt.ftl
index 3809266052..cbb81dd3df 100644
--- a/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl
+++ b/buildSrc/src/main/resources/instructions/step10.txt.ftl
@@ -18,4 +18,12 @@
     under the License.
 
 -->
-[FINERACT] [VOTE] [RESULT] 🧾️ ${project['fineract.release.version']} for 
release
+
+
+[INSTRUCTIONS:START]
+
+Initiate voting with the ATR (ASF Trusted Releases) tool.
+
+https://release-test.apache.org
+
+[INSTRUCTIONS:END]
diff --git a/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl 
b/buildSrc/src/main/resources/instructions/step11.txt.ftl
similarity index 85%
rename from buildSrc/src/main/resources/email/release.step10.vote.subject.ftl
rename to buildSrc/src/main/resources/instructions/step11.txt.ftl
index 9c8df50844..5186a299e2 100644
--- a/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl
+++ b/buildSrc/src/main/resources/instructions/step11.txt.ftl
@@ -18,4 +18,12 @@
     under the License.
 
 -->
-[FINERACT] [VOTE] 🗳️ ${project['fineract.release.version']} for release
+
+
+[INSTRUCTIONS:START]
+
+Conclude voting with the ATR (ASF Trusted Releases) tool.
+
+https://release-test.apache.org
+
+[INSTRUCTIONS:END]
diff --git a/fineract-doc/src/docs/en/chapters/release/process-step10.adoc 
b/fineract-doc/src/docs/en/chapters/release/process-step10.adoc
index 5a1a82a70d..a7ba519d6d 100644
--- a/fineract-doc/src/docs/en/chapters/release/process-step10.adoc
+++ b/fineract-doc/src/docs/en/chapters/release/process-step10.adoc
@@ -2,19 +2,14 @@
 
 == Description
 
-Voting has to be done on [email protected]. You can close the vote 
after voting period expires (72 hours) and you accumulate sufficient votes 
(minimum 3 x +1 PMC votes).
-
-[source,text]
-----
-include::{rootdir}/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl[lines=21..]
-
-include::{rootdir}/buildSrc/src/main/resources/email/release.step10.vote.message.ftl[lines=21..]
-----
+Initiate voting with https://release-test.apache.org[the ATR (ASF Trusted 
Releases) tool].
 
 == Gradle Task
 
 .Command
 [source,bash,subs="attributes+,+macros"]
 ----
-./gradlew fineractReleaseStep10 -Pfineract.release.version={revnumber}
+./gradlew fineractReleaseStep10
 ----
+
+INFO: Use the ATR for this task.
diff --git a/fineract-doc/src/docs/en/chapters/release/process-step11.adoc 
b/fineract-doc/src/docs/en/chapters/release/process-step11.adoc
index 62aab040ed..51a3de3190 100644
--- a/fineract-doc/src/docs/en/chapters/release/process-step11.adoc
+++ b/fineract-doc/src/docs/en/chapters/release/process-step11.adoc
@@ -2,19 +2,14 @@
 
 == Description
 
-Upon receiving 3 x +1 from the PMC, or after 72 hours (whichever one comes 
first), reply to the voting thread and add the prefix "[RESULT]" to the subject 
line with the results, as follows:
-
-[source,text]
-----
-include::{rootdir}/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl[lines=21..]
-
-include::{rootdir}/buildSrc/src/main/resources/email/release.step11.vote.message.ftl[lines=21..]
-----
+Conclude voting with https://release-test.apache.org[the ATR (ASF Trusted 
Releases) tool].
 
 == Gradle Task
 
 .Command
 [source,text,subs="attributes+,+macros"]
 ----
-./gradlew fineractReleaseStep11 -Pfineract.release.version={revnumber}
+./gradlew fineractReleaseStep11
 ----
+
+INFO: Use the ATR for this task.

Reply via email to