Thank you for your interest in contributing to Repo2Run! We welcome contributions from the community to help make this project better.
By participating in this project, you agree to abide by our code of conduct principles:
- Be respectful and inclusive
- Exercise consideration and empathy in your speech and actions
- Focus on what is best for the community
- Show courtesy and respect towards other community members
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/repo2run.git cd repo2run
- Install development dependencies:
pip install -r requirements.txt
- Ensure you have Docker installed and running
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bugfix-name
-
Make your changes following our coding conventions:
- Use clear, descriptive variable and function names
- Write docstrings for new functions and classes
- Add comments for complex logic
- Follow PEP 8 style guidelines for Python code
- Keep functions focused and single-purpose
- Add appropriate error handling
-
Test your changes:
- Ensure all existing tests pass
- Add new tests for new functionality
- Verify Docker-based builds work correctly
-
Commit your changes with clear, descriptive commit messages:
git commit -m "Description of your changes"
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request:
- Provide a clear title and description
- Reference any related issues
- Include screenshots or examples if applicable
- List any breaking changes
- Your PR will be reviewed by maintainers
- Address any requested changes or feedback
- Once approved, your PR will be merged
- Celebrate your contribution! 🎉
- Place new agent implementations in
build_agent/agents/
- Add utility functions to
build_agent/utils/
- Docker-related changes go in
build_agent/docker/
- Main functionality should be in appropriate modules
- Write unit tests for new functionality
- Include integration tests for Docker-related features
- Test edge cases and error conditions
- Ensure tests are deterministic
- Update README.md for significant changes
- Add docstrings to new classes and functions
- Include example usage where appropriate
- Document any new dependencies
- Handle errors gracefully with meaningful messages
- Log important operations and state changes
- Consider backward compatibility
- Follow security best practices
- Open an issue for bugs or feature requests
- Ask questions in pull requests
- Check existing issues and documentation
By contributing to Repo2Run, you agree that your contributions will be licensed under the Apache-2.0 License.