Thank you for your interest in contributing to the Runpod Rust SDK! We appreciate your help in making this project better.
- Code of Conduct
- Getting Started
- Development Setup
- Making Changes
- Testing
- Code Style
- Submitting Changes
- Reporting Bugs
- Feature Requests
This project follows the Rust Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/runpod.git cd runpod - Add the upstream repository:
git remote add upstream https://github.com/ernestas-poskus/runpod.git
- Rust 1.89 or later
- Cargo (comes with Rust)
# Build the project
cargo build
# Build with all features
cargo build --all-features
# Run tests
cargo test --all-features
# Check formatting
cargo fmt -- --check
# Run clippy
cargo clippy --all-targets --all-features -- -D warnings-
Create a new branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes following our code style
-
Add tests for any new functionality
-
Ensure all tests pass:
cargo test --all-features -
Update documentation if needed
- Write unit tests for new functionality
- Ensure all tests pass before submitting
- Add integration tests for complex features
- Test with both default and all features enabled:
cargo test cargo test --all-features cargo test --no-default-features
This project follows the standard Rust style guidelines:
- Run
cargo fmtbefore committing - Ensure
cargo clippypasses with no warnings - Add documentation comments (
///) for public APIs - Keep functions focused and reasonably sized
- Use meaningful variable and function names
- Document all public APIs with doc comments
- Include examples in doc comments where appropriate
- Keep the README.md up to date with new features
-
Commit your changes with clear, descriptive commit messages:
git commit -m "Add feature: brief description" -
Push your changes to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub with:
- A clear title describing the change
- A detailed description of what changed and why
- Reference to any related issues
- Any breaking changes highlighted
- Keep PRs focused on a single feature or fix
- Update CHANGELOG.md with your changes
- Ensure CI passes (tests, formatting, clippy)
- Be responsive to review feedback
- Squash commits if requested
If you find a bug, please create an issue on GitHub with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Rust version and operating system
- Any relevant code snippets or error messages
**Describe the bug** A clear and concise description of the bug.
**To Reproduce** Steps to reproduce the behavior:
1. ...
2. ...
**Expected behavior** What you expected to happen.
**Actual behavior** What actually happened.
**Environment**
- Rust version: [e.g. 1.89.0]
- OS: [e.g. Ubuntu 22.04]
- SDK version: [e.g. 0.2.0]
**Additional context** Any other relevant information.We welcome feature requests! Please create an issue with:
- A clear description of the feature
- Use cases and benefits
- Any implementation ideas you have
- Whether you'd be willing to implement it
If you have questions about contributing, feel free to:
- Open a discussion on GitHub
- Ask in the issue tracker
By contributing, you agree that your contributions will be licensed under the MIT License.
Contributors will be recognized in the project's README and releases. Thank you for making this project better!