|
| 1 | +# Contributing to selfpatch_demos |
| 2 | + |
| 3 | +Thanks for your interest in contributing to selfpatch_demos! This guide explains how to report issues, suggest demos, and contribute code. |
| 4 | + |
| 5 | +## How to Report Issues |
| 6 | + |
| 7 | +### Did you find a bug in a demo? |
| 8 | + |
| 9 | +- **Ensure the bug was not already reported** by searching [Issues](https://github.com/selfpatch/selfpatch_demos/issues) |
| 10 | +- If you can't find an existing issue, [open a new one](https://github.com/selfpatch/selfpatch_demos/issues/new) |
| 11 | +- Include: |
| 12 | + - **Which demo** you were running |
| 13 | + - **Steps to reproduce** - numbered steps to recreate the issue |
| 14 | + - **Expected behavior** - what you expected to happen |
| 15 | + - **Actual behavior** - what actually happened, including error messages |
| 16 | + - **Environment** - ROS 2 distro, OS, ros2_medkit version |
| 17 | + |
| 18 | +### Do you want to suggest a new demo or improvement? |
| 19 | + |
| 20 | +- Check if the idea has already been suggested in [Issues](https://github.com/selfpatch/selfpatch_demos/issues) |
| 21 | +- If not, open a new issue describing: |
| 22 | + - **Demo concept** - what would the demo show? |
| 23 | + - **Motivation** - why is this demo valuable? |
| 24 | + - **Prerequisites** - what ROS 2 packages or hardware would be needed? |
| 25 | + |
| 26 | +## How to Contribute Code |
| 27 | + |
| 28 | +### Development Workflow |
| 29 | + |
| 30 | +1. **Fork the repository** and clone your fork locally |
| 31 | +2. **Create a branch** from `main` with a descriptive name: |
| 32 | + - `demo/short-description` for new demos |
| 33 | + - `fix/short-description` for bug fixes |
| 34 | + - `docs/short-description` for documentation changes |
| 35 | +3. **Make your changes** following the project's structure |
| 36 | +4. **Test your changes** locally |
| 37 | +5. **Commit your changes** with clear, descriptive commit messages |
| 38 | +6. **Push your branch** to your fork |
| 39 | +7. **Open a Pull Request** against the `main` branch |
| 40 | + |
| 41 | +### Commit Messages |
| 42 | + |
| 43 | +- Use clear and descriptive commit messages |
| 44 | +- Start with a verb in imperative mood (e.g., "Add", "Fix", "Update", "Remove") |
| 45 | +- Keep the first line under 72 characters |
| 46 | + |
| 47 | +Examples: |
| 48 | +``` |
| 49 | +Add TurtleBot3 navigation demo |
| 50 | +
|
| 51 | +Fix launch file path in turtlebot3_integration |
| 52 | +
|
| 53 | +Update README with new prerequisites |
| 54 | +``` |
| 55 | + |
| 56 | +### Demo Structure |
| 57 | + |
| 58 | +When adding a new demo, follow this structure: |
| 59 | + |
| 60 | +``` |
| 61 | +demos/your_demo_name/ |
| 62 | +├── README.md # Setup instructions and demo description |
| 63 | +├── launch/ # ROS 2 launch files |
| 64 | +├── config/ # Configuration files |
| 65 | +└── src/ # Any custom nodes or scripts (if needed) |
| 66 | +``` |
| 67 | + |
| 68 | +### Pull Request Checklist |
| 69 | + |
| 70 | +Before submitting your PR, ensure: |
| 71 | + |
| 72 | +- [ ] Demo works with the latest ros2_medkit |
| 73 | +- [ ] README clearly explains prerequisites and how to run |
| 74 | +- [ ] All dependencies are documented |
| 75 | +- [ ] Code follows ROS 2 conventions |
| 76 | +- [ ] PR description explains what the demo shows |
| 77 | + |
| 78 | +## Code of Conduct |
| 79 | + |
| 80 | +By contributing to selfpatch_demos, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md). |
| 81 | + |
| 82 | +## License |
| 83 | + |
| 84 | +By contributing to selfpatch_demos, you agree that your contributions will be licensed under the Apache License 2.0. |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +Thank you for helping grow the selfpatch_demos collection! 🤖 |
0 commit comments