Contributing¶
Thank you for your interest in contributing to Mini-Arm!
Ways to Contribute¶
🐛 Report bugs - Open an issue on GitHub
💡 Suggest features - Start a discussion
📖 Improve documentation - Fix typos, add examples
🔧 Submit code - Bug fixes, new features
🎨 Share your builds - Post photos, videos, modifications
Development Setup¶
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/YOUR_USERNAME/Mini-Arm.git
cd Mini-Arm
Create a virtual environment:
python -m venv venv
source venv/bin/activate # Linux/Mac
# or: venv\Scripts\activate # Windows
Install in development mode:
pip install -e ".[dev]"
Create a branch for your changes:
git checkout -b feature/my-new-feature
Code Style¶
We use:
Black for code formatting
isort for import sorting
flake8 for linting
mypy for type checking
Run all checks:
black .
isort .
flake8
mypy mini_arm
Or use pre-commit:
pip install pre-commit
pre-commit install
Testing¶
Run tests:
pytest tests/
Run with coverage:
pytest --cov=mini_arm tests/
Submitting Changes¶
Commit your changes:
git add .
git commit -m "Add feature: description"
Push to your fork:
git push origin feature/my-new-feature
Open a Pull Request on GitHub
Wait for review and address feedback
PR Guidelines¶
Keep PRs focused on a single change
Include tests for new functionality
Update documentation as needed
Follow existing code style
Write clear commit messages
Documentation¶
Build docs locally:
cd docs
pip install -r requirements.txt
make html
View at docs/build/html/index.html
Hardware Contributions¶
If you’ve designed:
Modified parts (stronger, lighter, etc.)
New end-effectors
Mounting solutions
Sensor integrations
Share by:
Adding STL/STEP files to
assets/community/Documenting in
docs/source/hardware/community.rstOpening a PR
Code of Conduct¶
Be respectful and inclusive
Welcome newcomers
Focus on constructive feedback
No harassment or discrimination
Questions?¶
GitHub Discussions: Mini-Arm Discussions
Open an issue for bugs/features
Thank you for contributing! 🤖