Thank you for your interest in contributing! This guide will get you set up and pointed to the right resources.
| Requirement | Version |
|---|---|
| Java (JDK) | 21 |
| Maven | 3.6+ (or use the included ./mvnw wrapper) |
| Docker | Required for integration tests (Testcontainers) |
| Apache Fineract | 1.15.0-SNAPSHOT (develop branch) |
git clone https://github.com/openMF/selfservice-plugin.git
cd selfservice-plugin
./mvnw clean package -Dmaven.test.skip=trueIf you're building a project that depends on this plugin:
Repository: https://mifos.jfrog.io/artifactory/libs-snapshot-local/
Maven:
<dependency>
<groupId>community.mifos</groupId>
<artifactId>selfservice-plugin</artifactId>
<version>1.15.0-SNAPSHOT</version>
</dependency>Gradle:
implementation 'community.mifos:selfservice-plugin:1.15.0-SNAPSHOT'The project has a multi-tier test pyramid (unit → integration) with JaCoCo coverage enforcement.
For the full guide — including how to run tests, add new integration tests, naming conventions, and CI structure — see TESTING.md.
Quick start:
# Unit tests only (~60s, no Docker)
./mvnw clean test
# Full pipeline including integration tests (Docker required)
./mvnw clean verifyThe project uses Google Java Format enforced by the Spotless Maven plugin. Non-conforming code will fail the build.
# Auto-fix formatting before committing
./mvnw spotless:applyFor more on coding standards, common patterns, and API design conventions, see AGENTS.md.
- Fork the repository and create a feature branch from
develop. - Write tests — new features must include test coverage. See TESTING.md for conventions.
- Follow the code style — run
./mvnw spotless:applybefore committing. - Open a Pull Request against
developwith a clear description of your changes.
You can also contribute by:
- Reviewing PRs from other contributors
- Helping triage and respond to issues
- Improving documentation
Active contributors are promoted to committer status on this project.
We recommend that you Watch and Star this project on GitHub to stay up to date.