Krishna  - well done!!

Our GSOC students keep going!

Removing 16k lines of code is excellent refactoring.  The early compile
time error seems like a huge gain for developer productivity.

Thank you for all of your hard work on this and compliments to your mentors
who did a fantastic job too.

- James
Ps I hope we can get GitHub to reinstate your account.

Sent from Gmail Mobile

On Wed, Nov 4, 2026 at 8:36 PM KRISHNA MEWARA <[email protected]>
wrote:

> Hi everyone,
>
> I have some really happy news to share. With #6797 [1] merged on November
> 3, the Feign migration is complete and our codebase is now free of REST
> Assured!
>
> This started as my GSoC project and it ended up taking a lot longer than
> one summer, so it feels great to finally write this mail.
>
> *What changed*
>
> - All of our integration tests now talk to the server through the
> generated Feign client.
> - REST Assured is gone from integration-tests, oauth2-tests and
> twofactor-tests, and the Retrofit SDK is off the test classpath too.
> - The final PR alone touched 206 files and removed about 16,000 lines.
>
> *Why it's better*
>
> - We catch mistakes much earlier. If an API field changes, the build now
> breaks at compile time, so you find out right away instead of later in a 1
> to 2 hour CI run.
> - Tests are simpler to write. You call typed methods now, so there's no
> more copying JSON around and hoping the fields are still right.
> - Our Swagger spec stays honest. The tests use the generated client, so
> when a field is missing from the spec, we notice it and fix it at the
> source.
> - Tests can run faster too. When I benchmarked the same 10 tests before
> and after, they went from about 13.4 seconds to 7.9 seconds, around 41%
> faster, and HTTP calls dropped from 76 to 56. That's because they no longer
> log in and hit a health check before every test. It's a small benchmark and
> I haven't measured the full suite, but it's a nice sign.
>
> *Writing new tests*
>
> If you're adding a new integration test, please start with the Feign
> Integration Tests chapter [2]. It covers how to lay out a test class, call
> the API, assert failures, and fix a generated model at the source. It also
> lists the conventions that kept coming up in reviews.
>
> *The new build check*
>
> We now have a Checkstyle rule called FeignNoRestAssured that rejects any
> io.restassured import. It runs as part of checkstyleTest on every pull
> request, and a violation fails the build. With the dependency gone, that
> import won't compile anyway. So if you have an open PR that still uses REST
> Assured, you'll need to move it to Feign when you rebase. You can run the
> check locally with:
>
> ./gradlew :integration-tests:checkstyleTest :oauth2-tests:checkstyleTest
> :twofactor-tests:checkstyleTest
>
> *The journey*
>
> If you're curious about how we got here, have a look at FINERACT-2609 [3].
> I kept updating it all through the migration. The last stretch is in
> FINERACT-2967 [4].
>
> *Thank you*
>
> A huge thank you to Adam Saghy, Attila Budai and Aman Mittal for helping
> me see this through. Adam, you reviewed so much of this work and carried
> the final PR over the line. Attila, you've been a great mentor from day
> one. Aman, thank you for your review and approval on the final PR. I
> learned a lot from all of you, and I'm continuing to learn more as I work.
>
> *One small note*
>
> My GitHub account (@DeathGun44) is temporarily suspended and I'm working
> on getting it back. That's why my PRs and comments aren't visible right
> now, and why Adam opened #6797 with my commits. My commits on develop are
> all safe. In the meantime, I've moved my profile to GitLab, and I've listed
> my contributions there with a link to each commit:
>
> Profile: https://gitlab.com/DeathGun44
> Contributions:
> https://gitlab.com/DeathGun44/DeathGun44/-/blob/main/CONTRIBUTIONS.md
>
> Thanks everyone!
>
> Krishna Mewara
> *Apache Fineract*
>
> [1] https://github.com/apache/fineract/pull/6797
> [2]
> https://github.com/apache/fineract/blob/develop/fineract-doc/src/docs/en/chapters/testing/integration-feign.adoc
> [3] https://issues.apache.org/jira/browse/FINERACT-2609
> [4] https://issues.apache.org/jira/browse/FINERACT-2967
>

Reply via email to