Hi everyone!

I created a new thread for Spring Boot 2 update in Fineract-Cn as it is a
large topic on its own.
I understand Rohit would be willing to work on this as in the fork of his
team they have already managed to update the versions to Spring Boot 2.2
and to Spring 5.

I try to help along the way and hopefully this thread will be a good
reference for the future how to get such big changes done without affecting
the current version until everything is completed and tested.

The issue is already there in Jira:
https://issues.apache.org/jira/browse/FINCN-172 (Apache projects don't use
Github issues). Rohit, please create a user to that system and assign the
issue to yourself.

I think the first goal would be to get fineract-cn-identity running on new
Spring Boot version 2.2 since Identity doesn't depend on any other fineract
project (it only depends on libraries). Once we have accomplished that then
getting rest of the services moved is mostly just a lot of copy-paste work.

For this we have to include in the spring boot update the list of Fineract
libraries Identity depends on. These are (taken from
fineract-cn-identity/shared.gradle):

        frameworkcrypto    : '0.1.0-BUILD-SNAPSHOT',
        frameworkanubis    : '0.1.0-BUILD-SNAPSHOT',
        frameworkapi       : '0.1.0-BUILD-SNAPSHOT',
        frameworktest      : '0.1.0-BUILD-SNAPSHOT',
        frameworklang      : '0.1.0-BUILD-SNAPSHOT',
        frameworkasync     : '0.1.0-BUILD-SNAPSHOT',
        frameworkcassandra : '0.1.0-BUILD-SNAPSHOT',
        frameworkcommand   : '0.1.0-BUILD-SNAPSHOT',

But if we just update those libraries then it would break everything that
is currently working. For this I created branch "spring_boot_2" for each of
the libraries and declared their version to be "spring_boot_2-SNAPSHOT".
For example:
https://github.com/apache/fineract-cn-lang/blob/spring_boot_2/build.gradle#L51

So if we push something to branch "spring_boot_2" in
apache/fineract-cn-lang then the artifact that is built and deployed by
travis-ch will have verison number "spring_boot_2-SNAPSHOT". And
0.1.0-BUILD-SNAPSHOT remains unaffected.

So I did that and now you see that the fineract-cn-identity in branch
"spring_boot_2" depends on these versions:
https://github.com/apache/fineract-cn-identity/blob/spring_boot_2/shared.gradle#L19

Rohit. As step #2 please make sure you get Idenity woring with Spring Boot
2 and create pull requests to all of the needed libraries Identity
depends + a pull request to Identity itself and please make your pull
requests point branch "spring_boot_2" (and not "develop"):

In order not to send your other changes, please frirst create clean
branches to all of your local forks (or even better - create new forks
under your personal github name for this).

I know creating all these pull requests is pain (and also they depend on
each other so some of the pull request builds won't pass at first - ignore
that). There is a cure for that but please bare with me on this one and
once this is luckily done we might find a way where you can push code
directly.

Kind regards
Juhan

Reply via email to