Skip to content

Comments

FINERACT-2081: add api verification workflow#5515

Merged
adamsaghy merged 1 commit intoapache:developfrom
openMF:FINERACT-2081/breaking-api-change-test
Feb 23, 2026
Merged

FINERACT-2081: add api verification workflow#5515
adamsaghy merged 1 commit intoapache:developfrom
openMF:FINERACT-2081/breaking-api-change-test

Conversation

@budaidev
Copy link
Contributor

Description

Describe the changes made and why they were made. (Ignore if these details are present on the associated Apache Fineract JIRA ticket.)

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
  • Create/update unit or integration tests for verifying the changes made.
  • Follow our coding conventions.
  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.

Your assigned reviewer(s) will follow our guidelines for code reviews.

@budaidev budaidev force-pushed the FINERACT-2081/breaking-api-change-test branch 6 times, most recently from 94e2b34 to 1292e45 Compare February 20, 2026 12:55
@adamsaghy adamsaghy force-pushed the FINERACT-2081/breaking-api-change-test branch from 1292e45 to 495cdad Compare February 20, 2026 13:14
@budaidev budaidev force-pushed the FINERACT-2081/breaking-api-change-test branch 4 times, most recently from 7df1764 to 97f1dd7 Compare February 20, 2026 15:51
@budaidev budaidev marked this pull request as ready for review February 20, 2026 17:03
@vidakovic
Copy link
Contributor

@budaidev how do we fix then when something in the current openapi descriptor when some entryreally doesn't make any sense? how's that then supposed to work? I understand that this plugin is supposed to halt everything if there is a diff between the baseline and the current descriptor... but this covers the whole thing... and there are some corners that are really in need of some touch ups. I agree applying this to the critical path endpoints... but let's say SMS campaign? thanks

@budaidev
Copy link
Contributor Author

@vidakovic that's an excellent question. The basic idea, that this check is not a strict must-have check, but more like an informative check. If we break a working API solution, we should be aware of it.
However there are still different options to tackle this problem, if we want to have a green pipeline:

  1. we could exclude certain pathes, for example:
swaggerBrake {
      excludedPaths = [
          '/v1/smscampaigns',
          '/v1/email',
          '/v1/twofactor',
      ]
  }
  1. We can mark unstable APIs as beta in swagger. This makes the script skip these endpoints.
  2. It is also possible to add a list of allowed breaking changes in the configuration, which is a possibility, however not the best for long term.

You can choose any of these solutions listed, or you can decide to just ignore this error as a whole. It's a good idea to include this topic to the documentation once it is ready.

with open(os.environ['GITHUB_STEP_SUMMARY'], 'a') as f:
f.write('## Breaking API Changes Detected\n\n')
f.write(body)
f.write('\n\n> **Note:** This check is informational only and does not block the PR.\n')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like the breaking part, curious to see how it shows comment as an example. Like temporarily pushing breaking change to trigger check?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment part ia tricky because it doesn't have permission in this PR, only after the merge. I tested the breaking change and the summary worked fine.
You can also make a commit to check and revert after you see the result, it won't break anything in the end.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understandable as it will show only after merge, but is there is any PR you created in your fork so that i can cross verify.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can check it on the fork directly (now the develop is out sync, so it shows error):
openMF#191

@Aman-Mittal
Copy link
Contributor

Aman-Mittal commented Feb 21, 2026 via email

@budaidev budaidev force-pushed the FINERACT-2081/breaking-api-change-test branch 5 times, most recently from 81245e5 to 4887c15 Compare February 23, 2026 12:24
Copy link
Contributor

@adamsaghy adamsaghy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@budaidev budaidev force-pushed the FINERACT-2081/breaking-api-change-test branch from 4887c15 to 1b6c378 Compare February 23, 2026 13:42
@adamsaghy adamsaghy merged commit 2047553 into apache:develop Feb 23, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants