Aman-Mittal opened a new issue, #186:
URL: https://github.com/apache/fineract-consumer-facing/issues/186
`AGENTS.md` ("Backend conventions") defines how the BFF is laid out:
- each feature has `command/` and `query/` sides, with no cross-side types;
- Spring Modulith boundaries;
- services are interfaces with `*Impl` classes, and controllers are
dispatchers;
- the query side is read-only, with `@Immutable` query entities;
- naming suffixes;
- no `@Repository` on Spring Data interfaces;
- exceptions extend `AbstractConsumerException`;
- test tiers.
Today only Spring Modulith's `verify()` and a no-cross-side-imports rule
check any of this; the rest is left to review.
**Proposal:** add ArchUnit rules for every convention that can be checked
from bytecode without false positives.
- **Rules with no current violations** fail the build outright.
- **Rules with existing violations are frozen:** the current violations are
recorded in a committed violation store
(`consumer/src/test/resources/archunit_store`).
- A new violation fails the build.
- A fixed violation is removed from the store on the next test run.
- So the store can only shrink, the same way as the frontend's
`eslint-suppressions.json` (#172).
- **No production code changes.**
This is done when the violation store is empty. The frozen rules and their
violations are tracked as sub-issues.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]