From c5275cbd34f17f6d43bf6ca4c43c946261ac275a Mon Sep 17 00:00:00 2001 From: Adam Monsen Date: Fri, 9 May 2025 12:34:07 -0700 Subject: [PATCH] FINERACT-2306: release doc fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: link directly to FINERACT-873 and shorten it for brevity / clarity * fineract plugin: * print email, don't send (WIP, but I might keep this... I prefer manually sending emails for now.) * support different release date and release branch date I originally modified EmailService (disabling the actual email sending by just commenting it out) but I reverted that change per discussion with Ádám Sághy. You won't see this in the squashed final commit so I'm mentioning it here for posterity. Ádám wrote: > Is there a reason to remove the email sending? I replied: > Great question. I did think about this for a bit. I should have been more transparent about my intent. Allow me to explain. > > For the 1.12.0 release process I used the groovy code to generate email templates, but I wanted to edit the emails before sending so I disabled this line, and intentionally left it so, figuring I'd be the one using and [hopefully minimally] maintaining it for now. > > The Fineract (release) plugin appears to be more or less unmaintained for about 2 1/2 years now (save the semiautomated dependency updates). Looking at the code and history, I assumed I was the only one that would be using it now and in the near future. It also struck me how most everything it does is primarily to work around antiquated Apache release process steps that are not necessarily what we want for Fineract. Personally I think the Fineract release plugin should be simply replaced by a better release process. > > I think I'll add a comment there, and of course I welcome your feedback. > > Anyway yeah, my intent here was simply to do the simplest, safest, and most useful change here so I could keep this release plugin limping along until we improve the release process itself. No disrespect to @vidakovic and @vorburger and whomever else poured love into this code over the years. Perhaps the options for releasing Apache code have improved since then? > > Today we can of course do better (e.g. just let GitHub help us release with far fewer clicks/steps). > > Also I am not proposing we change the release process today or even soon. Maybe in a quarter or two I'll propose changes, if/when there seems to be political will around that. Ádám replied: > hmm... i am not particularly mind if you are reworking the release process, but i think having a "send" step which was meant to sending a mail but now the actual sending got commented out is misleading, no? I replied: > Yep, you're right. I think I'll just back out this change because I agree with you it's bad to just leave the send() call commented out without any other changes. --- .../groovy/org/apache/fineract/gradle/FineractPlugin.groovy | 4 ++-- .../main/resources/email/release.step01.headsup.message.ftl | 6 +++--- .../src/docs/en/chapters/release/process-step01.adoc | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) 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 c7df3504f..c2bb039af 100644 --- a/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/fineract/gradle/FineractPlugin.groovy @@ -194,7 +194,7 @@ class FineractPlugin implements Plugin { String version = project.properties?['fineract.release.version'] String issue = project.properties?['fineract.release.issue'] - String date = project.properties?['fineract.release.date'] + String date = project.properties?['fineract.releaseBranch.date'] if(!version || !issue || !date) { TextIO textIO = TextIoFactory.getTextIO() @@ -225,7 +225,7 @@ class FineractPlugin implements Plugin { this.context?.project?['fineract.release.version'] = version this.context?.project?['fineract.release.issue'] = issue - this.context?.project?['fineract.release.date'] = date + this.context?.project?['fineract.releaseBranch.date'] = date if(step.email) { emailService.send( processEmailParams(step.email, this.context) ) diff --git a/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl b/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl index 83f804a5f..379f06d74 100644 --- a/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl +++ b/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl @@ -20,11 +20,11 @@ --> Hello everyone, -... based on our "How to Release Apache Fineract" process documented at https://cwiki.apache.org/confluence/x/DRwIB: +... based on our "How to Release Apache Fineract" process (https://cwiki.apache.org/confluence/x/DRwIB) as well as the "Releases" chapter in the docs (https://fineract.apache.org/docs/current/#_releases), -I will create a ${project['fineract.release.version']} branch off develop in our git repository at https://github.com/apache/fineract on ${project['fineract.release.date']}. +I will create a ${project['fineract.release.version']} branch off develop in our git repository at https://github.com/apache/fineract on ${project['fineract.releaseBranch.date']}. -The release tracking umbrella issue for tracking all activity in JIRA is FINERACT-${project['fineract.release.issue']!'0000'} (https://issues.apache.org/jira/browse/FINERACT-${project['fineract.release.issue']!'0000'}) for this Fineract ${project['fineract.release.version']}. +The release tracking umbrella issue for tracking all activity in JIRA is FINERACT-${project['fineract.release.issue']!'0000'} (https://issues.apache.org/jira/browse/FINERACT-${project['fineract.release.issue']!'0000'}). If you have any work in progress that you would like to see included in this release, please add "blocking" links to the release JIRA issue. diff --git a/fineract-doc/src/docs/en/chapters/release/process-step01.adoc b/fineract-doc/src/docs/en/chapters/release/process-step01.adoc index 49a520f2c..e4491c22b 100644 --- a/fineract-doc/src/docs/en/chapters/release/process-step01.adoc +++ b/fineract-doc/src/docs/en/chapters/release/process-step01.adoc @@ -2,7 +2,7 @@ == Description -The RM should, if one doesn't already exist, first create a new release umbrella issue in JIRA. This issue is dedicated to tracking (a summary of) any discussion related to the planned new release. An example of such an issue is FINERACT-873 - Release Apache Fineract v1.4.0 RESOLVED. +The RM should, if one doesn't already exist, first create a new release umbrella issue in JIRA. This issue is dedicated to tracking (a summary of) any discussion related to the planned new release. An example of such an issue is https://issues.apache.org/jira/browse/FINERACT-873[FINERACT-873]. The RM then creates a list of resolved issues & features through an initial check in JIRA for already resolved issues for the release, and then setup a timeline for release branch point. The time for the day the issue list is created to the release branch point must be at least two weeks in order to give the community a chance to prioritize and commit any last minute features and issues they would like to see in the upcoming release. @@ -22,5 +22,5 @@ include::{rootdir}/buildSrc/src/main/resources/email/release.step01.headsup.mess .Command [source,bash,subs="attributes+,+macros"] ---- -% ./gradlew fineractReleaseStep1 -Pfineract.release.issue=1234 -Pfineract.release.date="Monday, April 25, 2022" -Pfineract.release.version={revnumber} +% ./gradlew fineractReleaseStep1 -Pfineract.release.issue=1234 -Pfineract.releaseBranch.date="Monday, April 25, 2022" -Pfineract.release.version={revnumber} ----