Thanks for your interest in contributing to ros2_medkit_clients! This guide explains how to report issues, suggest features, and contribute code.
- Ensure the bug was not already reported by searching Issues
- If you can't find an existing issue, open a new one and select the Bug report template
- Fill in all sections of the template:
- Steps to reproduce - numbered steps to recreate the issue
- Expected behavior - what you expected to happen
- Actual behavior - what actually happened, including error messages or stack traces
- Environment - ros2_medkit_clients version, spec version, OS
- Additional information - logs, snippets, or screenshots if helpful
- Check if the feature has already been suggested in Issues
- If not, open a new issue and select the Feature request / General issue template
- Fill in all sections:
- Proposal - describe the change or feature you'd like to see
- Motivation - why is this important? Who does it benefit?
- Alternatives considered - other options or implementations you considered
- Additional context - any other context or screenshots
- Fork the repository and clone your fork locally
- Create a branch from
mainwith a descriptive name:feature/short-descriptionfor new featuresfix/short-descriptionfor bug fixesdocs/short-descriptionfor documentation changes
- Make your changes following the project's coding standards
- Test your changes locally (see Build and Test section below)
- Commit your changes with clear, descriptive commit messages
- Push your branch to your fork
- Open a Pull Request against the
mainbranch of this repository
- Use clear and descriptive commit messages
- Start with a verb in imperative mood (e.g., "Add", "Fix", "Update", "Remove")
- Keep the first line under 72 characters
- Add a blank line followed by a more detailed explanation if needed
Examples:
Add Python client generation support
Fix incorrect response schema in fault endpoints
Update documentation for spec validation workflow
Before opening or updating a Pull Request, you must:
-
Validate the OpenAPI spec:
npx @stoplight/spectral-cli@6.14.2 lint spec/openapi.yaml
-
Generate clients to confirm the spec produces valid output:
./scripts/generate.sh
-
If you have modified the gateway and need to export a fresh spec:
./scripts/export-spec.sh
Note: this requires a running gateway instance.
-
Ensure the spec validates without errors and generated clients compile cleanly.
Before submitting your PR, ensure:
- Code follows the repository's style and conventions
- Spec validates without errors
- Generated clients build successfully
- New tests are added for new functionality
- Existing tests are updated if behavior changes
- Documentation is updated where applicable
- PR description clearly explains what changed and why
- Related issue is referenced (e.g., "Fixes #123")
- The project maintainers will review pull requests as time permits
- Address review feedback promptly
- Keep discussions professional and constructive
- Be patient - maintainers may need time to review
- Purely cosmetic changes that don't add functionality (whitespace, formatting without other changes)
- Large refactors without prior discussion - open an issue first
- Breaking changes without coordination with maintainers
- Code that doesn't pass validation or breaks existing functionality
- For questions about using ros2_medkit_clients, open a Discussion or an Issue with the question label
- For questions about contributing, feel free to ask in your PR or Issue
- For security vulnerabilities, see
SECURITY.md
By contributing to ros2_medkit_clients, you agree to abide by our Code of Conduct. Please be respectful and considerate in all interactions.
By contributing to ros2_medkit_clients, you agree that your contributions will be licensed under the Apache License 2.0.
Thank you for improving ros2_medkit_clients! We value contributions of all sizes - from typo fixes to major features.