-
Notifications
You must be signed in to change notification settings - Fork 2
7. Contributing guidelines
Vincenzo Reina edited this page Apr 21, 2025
·
4 revisions
Thank you for considering contributing to ServerPulse! This guide explains how to contribute to the project effectively.
-
Requirements
- Java 21 or newer
- Git
- Docker and Docker Compose
- IDE (IntelliJ IDEA recommended)
-
Setup Project
# Clone repository git clone https://github.com/renvins/serverpulse.git cd serverpulse # Build project ./gradlew shadowJar
serverpulse/
├── api/ # API module
│ └── src/
│ └── main/java/ # API interfaces and models
├── plugin/ # Core plugin module
│ └── src/
│ └── main/java/ # Plugin implementation
└── infra/ # Docker infrastructure
├── grafana/ # Grafana configuration
└── influxdb/ # InfluxDB configuration
-
master
- Main development branch -
feature/*
- New features -
fix/*
- Bug fixes -
docs/*
- Documentation updates
Example:
# Create feature branch
git checkout -b feature/new-metric-type
# Create fix branch
git checkout -b fix/connection-issue
-
Commits
- Use clear commit messages
- One feature/fix per commit
- Follow conventional commits:
feat: add new metric type fix: resolve connection timeout docs: update installation guide
-
Code Quality
- Write unit tests for new features
- Maintain code coverage
- Use appropriate logging levels
-
Before Submitting
- Update documentation
- Run code quality checks
- Test locally
-
Submit PR
- Create pull request to
master
- Fill out PR template
- Add relevant labels
- Link related issues
- Create pull request to
-
PR Template
## Description Brief description of changes ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Documentation - [ ] Other ## Testing Describe testing done ## Related Issues Fixes #123
-
Build Plugin
./gradlew shadowJar
-
Start Test Environment
cd infra docker compose up -d
-
Debug Plugin
- Use remote debugging
- Enable debug logs in config
When adding features, update:
- API documentation
- Wiki pages
- README.md if needed
- Configuration examples
- Use async operations where appropriate
- Minimize database operations
- Consider memory usage
- Test with large datasets
Include:
- ServerPulse version
- Server version
- Error messages
- Steps to reproduce
- Expected vs actual behavior
Include:
- Clear use case
- Expected behavior
- Implementation suggestions
- Example configurations
- Be respectful and inclusive
- Help others when possible
- Follow discussion threads