Thank you for your interest in contributing to Mustang! We welcome contributions in all forms — bug reports, feature requests, documentation improvements, and code changes.
By participating in this project, you agree to abide by our Code of Conduct.
Before opening a bug report, please:
- Search existing issues to avoid duplicates.
- Use the latest released version if possible.
When filing a bug, include:
- A clear description of the problem and expected behaviour.
- The version of Mustang you are using.
- A minimal reproducible example (code snippet or unit test).
- Stack traces or error logs, if relevant.
Open a GitHub issue with the label enhancement. Describe:
- The problem you are trying to solve.
- The proposed solution and any alternatives you considered.
- Java 17+ (OpenJDK or Temurin recommended)
- Maven 3.9+
- Git
git clone https://github.com/PhonePe/mustang.git
cd mustang
mvn clean verifyThis compiles all modules (mustang-models, mustang-core, mustang-dw-bundle) and runs the full test suite.
mvn testTo run tests for a specific module:
mvn test -pl mustang-core- This project uses standard Java conventions with Lombok for boilerplate reduction.
- Indentation: tabs (see
lombok.configand.editorconfig). - Line length: 120 characters maximum.
- All public types and methods should have Javadoc.
- Fork the repository and create your branch from
main. - Write tests for any new functionality or bug fixes.
- Ensure all tests pass:
mvn clean verify - Update documentation — update the relevant docs in
docs/andREADME.mdif you change behaviour. - Open a Pull Request against
mainwith:- A clear title and description.
- References to any related issues (
Fixes #123).
- All CI checks must pass.
- At least one approval from a CODEOWNER.
- No unresolved review comments.
Releases are performed by maintainers:
- Bump the version in all
pom.xmlfiles. - Tag the release on
main. - The
maven-central-publish.ymlworkflow deploys to Maven Central.
Open a GitHub Discussion or file an issue.