Contributing to MAVLink
We follow the Github flow development model.
Contributions are divided into several categories:
- Complicated changes that require significant review should be initiated using an RFC pull request in mavlink/rfcs. This is primarily intended for new microservice interface definitions, as these require discussion of both messages and message sequences (state machines) (examples: parameter or mission protocol). Depending on the scope of the change, it may also be required when modifying a microservice.
- Less complex changes should be submitted as a PRs to the mavlink/mavlink repository. This includes message additions/changes that do not affect a state machine.
- Changes to mavgen generator code should be submitted as PRs to the ArduPilot/Pymavlink repository.
The sections below explain how to contribute to each category and how to raise a pull request.
How to Contribute Complex Changes
- Open a pull request against the RFC repository containing a new RFC number https://github.com/mavlink/rfcs and use the template in the 0000 RFC.
- Reach out to the community on Slack and the mailing list to raise awareness
- Address concerns by pushing more commits to the pull request
How to Contribute Simple Changes
- Open a pull request against the specification repository: https://github.com/mavlink/mavlink
- Reach out to the community on Slack and the mailing list to raise awareness
- Address concerns by pushing more commits to the pull request
How to Open a Pull Request
- First fork and clone the project project.
Create a feature branch off master
git checkout -b mydescriptivebranchname
Always branch off master for new features.
Commit your changes with a descriptive commit message.
- Include context information, what was fixed, and an issue number (Github will link these then conveniently)
Example:
Change the attitude output spec documentation - Fixes a typo - Clarifies that units are radians Fixes issue #123
Test your changes (we may ask you for test results in your PR).
Push changes to your repo:
git push origin mydescriptivebranchname
Send a pull request to merge changes in the branch.
Dev Call
We have a regular dev call that is open to anyone who is interested in contributing to the project!