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

RES Protocol semantic versioning #113

Closed
jirenius opened this issue Sep 27, 2019 · 1 comment
Closed

RES Protocol semantic versioning #113

jirenius opened this issue Sep 27, 2019 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@jirenius
Copy link
Collaborator

jirenius commented Sep 27, 2019

Issue

As new additions are made to the RES protocol, it is needed that developers understand the impact these changes may have on their existing services.

This can be resolved by adhering to semantic version for the protocol. However, since a protocol does not need "bug patches" in the same sense as software, the meaning of each level will be slightly different.

Given a version number MAJOR.MINOR.PATCH (eg. v1.1.5):

MAJOR version

Incremented when the protocol is no longer backwards compatible. The current Resgate repository will always target the v1 protocol. In case of a new major version, a new "Resgate2" repository would be created, and should be considered a different project. Services written for v1 would not work for v2.

There are no plans for any MAJOR version changes.

MINOR version

Incremented when the protocol changes deprecates previously valid behavior. Resgate would still handle services written for previous version for a period of time (~1 year), but will log warnings in case legacy behavior is detected.

During the deprecation period, service developers need to upgrade their services. A document describing these changes, and how to upgrade a service, will be provided. An example is the RES Protocol v1.1 Update document.

There are no planned features that would require any MINOR version change.

PATCH version

Incremented when backward compatible features are added to the protocol. Services written for previous version will continue to work without modifications.

New patch versions may include features like:

  • New optional error codes
  • New resource types
  • New resource events
  • New optional event properties
  • New optional response properties

Notes

  • A single RES Protocol version will be used for both the Service and Client protocol, even if some version changes only affect one part of the protocol.
  • The current RES Protocol version should be stated at the top of the RES Protocol Specification document, for each new release.
  • Language updates, clarifications, or added examples, will not require a version change.
@jirenius jirenius added the enhancement New feature or request label Sep 27, 2019
@jirenius jirenius self-assigned this Sep 27, 2019
jirenius added a commit that referenced this issue Sep 30, 2019
…mantic-versioning

Feature/gh 113 res protocol semantic versioning
@jirenius
Copy link
Collaborator Author

Resolved in #119

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant