Contributing to SpringFlow¶
Thank you for your interest in contributing to SpringFlow!
Development Setup¶
Prerequisites¶
- Java 17 or higher
- Maven 3.8+ (or use included Maven wrapper)
- Git
Getting Started¶
- Fork the repository
-
Clone your fork:
-
Build the project:
-
Run tests:
Project Structure¶
springflow/
├── springflow-annotations/ # Core annotations
├── springflow-core/ # Framework implementation
├── springflow-starter/ # Spring Boot auto-configuration
└── springflow-demo/ # Demo application
Development Workflow¶
-
Create a feature branch from
main: -
Make your changes following the coding standards
-
Write/update tests for your changes
-
Run the full test suite:
-
Commit your changes:
-
Push to your fork and create a Pull Request
Commit Message Convention¶
We follow conventional commits:
feat(module): add new featurefix(module): fix bugdocs: update documentationtest: add testsrefactor: refactor codechore: update dependencies
Coding Standards¶
- Java 17+ features are encouraged
- Follow Spring Boot conventions
- Use Lombok for boilerplate reduction
- Write Javadoc for all public APIs
- Maintain test coverage > 80%
- Use SLF4J for logging
Testing¶
- Unit tests: Test individual components in isolation
- Integration tests: Test component interactions
- Use
@SpringBootTestfor full application context tests - Use H2 in-memory database for testing
Code Quality¶
Before submitting a PR, ensure:
- [ ] Code compiles without warnings
- [ ] All tests pass
- [ ] Code coverage is maintained or improved
- [ ] No SonarQube critical issues
- [ ] Javadoc is complete and accurate
Documentation¶
- Update README.md if adding user-facing features
- Update module-specific READMEs as needed
- Add examples to the demo application
- Update API reference documentation
Pull Request Process¶
- Update the CHANGELOG.md with your changes
- Ensure CI/CD pipeline passes
- Request review from maintainers
- Address review feedback
- Squash commits if requested
- Wait for approval and merge
Getting Help¶
- Create an issue for bugs or feature requests
- Join discussions in GitHub Discussions
- Check existing documentation in
/docs
Code of Conduct¶
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Help others learn and grow
License¶
By contributing to SpringFlow, you agree that your contributions will be licensed under the project's license.