Thank you for your interest in contributing to EdgeCloudSim! We welcome contributions from the community and are pleased to have you join us.
- Code of Conduct
- How Can I Contribute?
- Reporting Bugs
- Suggesting Enhancements
- Development Setup
- Pull Request Process
This project and everyone participating in it is governed by our commitment to creating a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
- 🐛 Bug fixes: Help us identify and fix issues
- ✨ New features: Add functionality that benefits the community
- 📚 Documentation: Improve existing docs or add new ones
- 🧪 Testing: Add test cases or improve test coverage
- 🔧 Code quality: Refactoring, performance improvements
EdgeCloudSim is actively developed and tested across many scenarios, but there may still be edge cases and bugs waiting to be discovered.
We use GitHub Issues to track bugs. Before creating a new issue:
- Search existing issues to avoid duplicates
- Check the latest version to see if the issue persists
- Gather system information (OS, Java version, EdgeCloudSim version)
When creating a bug report, please include:
**Description**
A clear and concise description of what the bug is.
**Environment**
- OS: [e.g. Ubuntu 20.04, Windows 10]
- Java Version: [e.g. OpenJDK 11]
- EdgeCloudSim Version: [e.g. v4.0]
**Steps to Reproduce**
1. Go to '...'
2. Click on '....'
3. Run command '....'
4. See error
**Expected Behavior**
A clear description of what you expected to happen.
**Actual Behavior**
A clear description of what actually happened.
**Additional Context**
- Error logs/stack traces
- Configuration files (if relevant)
- Screenshots (if applicable)We welcome feature requests! Please:
- Check existing issues for similar requests
- Describe the problem your feature would solve
- Explain your proposed solution in detail
- Consider the scope - will this benefit many users?
- Java 8 or higher
- Eclipse IDE (recommended) or any Java IDE
- Git
-
Fork and Clone
git clone https://github.com/YOUR_USERNAME/EdgeCloudSim.git cd EdgeCloudSim -
Add Upstream Remote
git remote add upstream https://github.com/CagataySonmez/EdgeCloudSim.git
-
Import into IDE
- Open Eclipse/IntelliJ
- Import as existing Java project
- Ensure all dependencies in
lib/folder are included
-
Verify Setup
- Run a sample application to ensure everything works
- Check that all imports resolve correctly
- Create a feature branch from
development - Make your changes with clear commits
- Test thoroughly before submitting
- Submit a pull request to
developmentbranch - Respond to review feedback if needed
git checkout development
git pull upstream development
git push origin developmentUse descriptive branch names with prefixes:
feature/for new featuresbugfix/for bug fixesdocs/for documentationtest/for testing improvements
git checkout -b feature/new-mobility-model
git push -u origin feature/new-mobility-modelCommit Guidelines:
- Write clear, descriptive commit messages
- Use present tense ("Add feature" not "Added feature")
- Reference issues when applicable (
Fixes #123) - Keep commits atomic (one logical change per commit)
git commit -m "feat: implement random waypoint mobility model
- Add RandomWaypointMobility class
- Update MobilityModule to support new model
- Add configuration parameters for waypoint generation
Fixes #45"Before submitting:
- Code compiles without errors
- All existing tests pass
- New functionality has been tested
- Documentation updated if needed
Target Branch: Always select development as the base branch
PR Checklist:
- Branch is up-to-date with
development - All tests pass
- Code follows project conventions
- Documentation updated
- Clear description of changes
PR Template:
## Description
Brief description of changes made.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Other (please describe)
## Testing
Describe how you tested your changes.
## Related Issues
Closes #(issue number)- Automated Checks: Your PR will be automatically checked
- Code Review: Maintainers will review your changes
- Feedback: Address any requested changes
- Approval: Once approved, your PR will be merged
- ❌ Direct pushes to
masterare not allowed - ❌ Pull requests to
masterwill be rejected - ✅ All changes must go through
developmentbranch - ✅ Code review is required before merging
If you have questions about contributing:
- Check existing Issues
- Create a Discussion
- Contact the maintainers
Thank you for contributing to EdgeCloudSim! 🚀