Contributing & License
License
QUANTAF is distributed under the MIT License, which permits:
- ✅ Commercial Use: Use in production and commercial systems
- ✅ Modification: Modify and adapt the framework
- ✅ Distribution: Redistribute with or without modifications
- ✅ Private Use: Use privately without publishing
See LICENSE file for full details.
Contributing
We welcome contributions from the community!
Getting Started
# Fork and clone
git clone https://github.com/YOUR-USERNAME/QUANTAF.git
cd QUANTAF
# Create a feature branch
git checkout -b feature/amazing-feature
# Build and test
./gradlew build
./gradlew test
Coding Standards
- Follow Google Java Style Guide
- Classes:
PascalCase(e.g.,FixStubRegistry,TradeLedger) - Methods:
camelCase(e.g.,generatePrice(),reconcileAll()) - Constants:
UPPER_SNAKE_CASE(e.g.,FINANCIAL_PRECISION) - Test methods: descriptive with underscores (e.g.,
generatePrice_shouldReturnPositiveValue)
Testing Requirements
All contributions must include tests:
// Unit test example
@Test
public void generatePrice_shouldReturnPositiveValue() {
MarketMaker mm = new MarketMaker();
BigDecimal price = mm.generatePrice(150.0, 5.0);
assertThat(price).isPositive();
}
Pull Request Process
- Ensure all tests pass:
./gradlew test - Update documentation if needed
- Commit with conventional commits:
feat(protocol): add Kafka broker implementation
fix(core): handle timezone in settlement dates
docs(api): add configuration examples - Push and create a Pull Request
Branch Strategy
main: Production-ready codedevelop: Integration branchfeature/*: Individual featuresbugfix/*: Bug fixes
Reporting Security Issues
⚠️ Do not file security issues publicly. Contact maintainers via GitHub.
Code of Conduct
Be respectful and inclusive. Welcome all backgrounds and experience levels.
Getting Help
- Questions: Use GitHub Discussions
- Bugs: File an issue on GitHub
- Ideas: Create a feature request
Thank you for contributing! 🎉