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

  1. Fork the repository on GitHub

  2. Clone your fork:

git clone https://github.com/YOUR_USERNAME/Mini-Arm.git
cd Mini-Arm
  1. Create a virtual environment:

python -m venv venv
source venv/bin/activate  # Linux/Mac
# or: venv\Scripts\activate  # Windows
  1. Install in development mode:

pip install -e ".[dev]"
  1. 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

  1. Commit your changes:

git add .
git commit -m "Add feature: description"
  1. Push to your fork:

git push origin feature/my-new-feature
  1. Open a Pull Request on GitHub

  2. 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:

  1. Adding STL/STEP files to assets/community/

  2. Documenting in docs/source/hardware/community.rst

  3. Opening a PR

Code of Conduct

  • Be respectful and inclusive

  • Welcome newcomers

  • Focus on constructive feedback

  • No harassment or discrimination

Questions?

Thank you for contributing! 🤖