Thanks again Ádám Sághy, Victor, and James for supporting this process!
We're making great progress. Thanks for your patience and persistence as we
refine the release (and release candidate verification) process. Feedback
welcome.

I'd still love to have a couple more people check our work so far. I'll try
to make this easy by summarizing the steps involved.

Overview

Here's a recap of the rough steps to verify the rc (release candidate):

   1. download the rc artifacts and verify their integrity
   2. run a build using only the source tarball and the recommended JDK
   3. start up a Fineract server using the war in the binary tarball

I'll give examples of these steps below. These are meant to be run
interactively, that is: Copy+pasted or manually typed in on your own
machine. The steps assume Bash shell on Linux (and a few common GNU
utilities: sha512sum, gpg, cat, tar...) but are hopefully clear enough to
use as general guidance on other systems as well. If you're able to use
Bash on macOS or Windows these commands should work the same.

Step 1

version=1.11.0
svn checkout https://dist.apache.org/repos/dist/dev/fineract/$version/cd
$version
sha512sum -c "apache-fineract-$version-src.tar.gz.sha512"
gpg --verify "apache-fineract-$version-src.tar.gz.asc"
sha512sum -c "apache-fineract-$version-binary.tar.gz.sha512"
gpg --verify "apache-fineract-$version-binary.tar.gz.asc"

Look for "Good signature from..." messages from gpg, and ignore a warning
like "This key is not certified...". See below for details.

Step 2

tar -xzf "apache-fineract-$version-src.tar.gz"cd "apache-fineract-$version-src"
./gradlew build -x test -x doc
cd ..

That should succeed and you should find binary and source tarballs in
fineract-war/build/distributions/ . See below for details.

Step 3

Before running this you must start a database server and ensure the
fineract_default and fineract_tenant databases exist. Then:

cat << 'EndOfRcenv' >> rcenv
FINERACT_SERVER_SSL_ENABLED=false
FINERACT_SERVER_PORT=8080
BACKEND_PROTOCOL=http
BACKEND_PORT=$FINERACT_SERVER_PORT
EndOfRcenv
tar -xzf "apache-fineract-$version-binary.tar.gz"cd
"apache-fineract-binary-$version"
docker run --rm -it -v "$(pwd):/usr/local/tomcat/webapps" --net=host
--env-file=rcenv tomcat:jre17cd ..

At that point http://localhost:8080/fineract-provider/actuator/health
should work and you should be able to make API calls against
http://localhost:8080/fineract-provider/api/v1 .

Notes

For the above I used:

   - Ubuntu 22.04 LTS 64-bit desktop
   - svn 1.14.1
   - openjdk Java 17.0.14
   - Gradle 8.10.2
   - Docker 26.1.3
   - Bash 5.1.16
   - GNU coreutils 8.32

The computer I'm using for all this has Intel silicon, 16 cores, 64GB RAM.

re: Step 1 - see my other message about scary GnuPG signature warnings
<https://lists.apache.org/thread/50d7j67m0f77pfc0r1bxr0mr1wjhg2zb>.

re: Step 2 - I think this is a bare minimum example build from source. The
-x test and -x doc args should really make you upset... they just aren't
that easy to run. Ideally you'd build docs and run every possible test and
check, but running everything has complex dependencies, caches, and takes
many hours <https://github.com/apache/fineract/actions>. It is rarely done
in practice offline / local / on developer machines. But please, go ahead
and run the test and doc tasks, and more! Grab a cup of coffee and run
everything you can. We should all hammer on a release candidate as much as
we can to see if it breaks and fix it if so. All that of course improves
our final release. I hope I don't sound patronizing here -- I don't mean to
be. I'm learning/practicing, and I'm going into detail since I haven't
found nor been made aware of an official release build/test process.
Feedback welcome, as always. Anyway, yes, do as much checking as you're
willing and able to. Ádám Sághy shared a bunch more ideas for build/test
steps to run
<https://lists.apache.org/thread/q4xvombgzk99lpow23bdpvd7n0dx49lt>.

re: Step 3 - I'm not sure if all those env vars are necessary.

Reply via email to