Question

According to semver, the version number is MAJOR.MINOR.PATCH, and patch is incremented when you make backwards-compatible bug fixes.

I'm working on making a new communications protocol, and I want the protocol to have a version associated with it (entities speaking this protocol may negotiate during the handshake the highest supported version of the protocol they will use in their conversation). Does the patch even make sense in this context? I understand that it makes sense for software products (e.g. fixed bug that caused app to crash, but no API changes), but a protocol is just a specification (technically no code associated with the protocol itself, only code is in the entities that speak the protocol).

Are there any situations where a protocol's patch number would be incremented? If not, should I only use a major and minor version?

Was it helpful?

Solution

If you look at existing protocols, they do seem to mostly use MAJOR.MINOR.

e.g. HTML/1.1, SSH 2.0, USB 3.1

Some only use MAJOR, presumably as they don't generally support backwards compatible changes or as the change in version number is so infrequent that it doesn't seem worth using two fields.

e.g. IPv4, POP3

So it sounds like PATCH doesn't make much sense for a protocol and you should be good using MAJOR.MINOR.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top