Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify the MAVLink release process #1149

Open
hamishwillee opened this issue May 29, 2019 · 8 comments
Open

Clarify the MAVLink release process #1149

hamishwillee opened this issue May 29, 2019 · 8 comments
Assignees
Labels

Comments

@hamishwillee
Copy link
Collaborator

The "release story" for MAVLink is confusing for users because there are multiple things that can change

  • source code for generators (in mavlink/mavlink and ArduPilot/pymavlink repos), and these have different release cycle and numbering from each other and from messgaes
  • built libraries - e.g. for C and Pymavlink
  • MAVLink version - 1 and 2
  • MAVLink subversion - from messages.

Action is to define a process and/or clear story on how releases happen and how they sync (or not) with each other.

Kicked off from - #1141

@BazookaJoe1900
Copy link
Contributor

@hamishwillee, For PX4 firmware,
How about generating the code during compilation time? not using the c_library.
anyway the "real" source is the XML+generator. both can be on the source of the PX4 (as submodules).

@hamishwillee
Copy link
Collaborator Author

@BazookaJoe1900 Re #1149 (comment) thanks, but that is out of scope for this discussion (it is PX4 specific and MAVLink is flight stack agnostic) - and I do not believe it solves the problem.

Ultimately the release process discussion fits around "what specific services, messages and versions of services and messages are supported by a particular communication partner. It is likely that even a release process will not necessarily solve this, but it may be part of the story.

@jarednm
Copy link

jarednm commented Apr 7, 2020

Along these lines, the Mavlink docs state:

The current MAVLink version is 2.3. The minor version numbers (after the dot) range from 1-255

But I cannot find anywhere that states:

  • How version 2.3 is different from 2.2 or even 2.0.
  • When and how minor releases are issued.

@hamishwillee
Copy link
Collaborator Author

@jarednm There is no formal release process and no documentation on the differences between the minor releases (yes, there should be).

We are pretty careful about compatibility. Most releases only make compatible changes (e.g. add extension fields). If we can't do that then we add new messages and deprecate the old ones - so the generated libraries still work.

There are several reasons for this. Firstly with only 8 bits for the version, if we made regular breaking changes we would already have run out of options. Secondly, we have lots of systems that rarely update firmware.

In addition, the problem is not just "what is supported in the file", but "what is supported by the system implementing it". If we solve this problem then the version of the file is less important.

We're working on a number of other techniques for this, including being able to query for what version of a service (e.g. parameter protocol) is supported and queries on what mission items etc are supported.

We will also periodically still be updating that minor release number, for example we hope to do a big cleanup of messages that have never been implemented. I expect we will do a reasonable job of documenting that change.

@stale
Copy link

stale bot commented Jun 6, 2020

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@stale stale bot added the stale label Jun 6, 2020
@hamishwillee
Copy link
Collaborator Author

Would like to clarify how releases kind of work (or dont) at some point

@stale stale bot removed the stale label Jun 9, 2020
@stale
Copy link

stale bot commented Aug 8, 2020

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@stale stale bot added the stale label Aug 8, 2020
@stale
Copy link

stale bot commented Oct 10, 2020

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@stale stale bot added the stale label Oct 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants