This issue is tracking formalizing the approach to backwards compatibility and versioning.
This includes:
- Defining what is a 'breaking' changing:
- Essentially which versions will still work with each other without changes
- Setting the expectations for implementers as to the stability of the spec and when and how breaking changes will be allowed
- Something like:
- Draft / Implementors Draft: Expect breaking changes until final
- Major Version: Allows breaking changes, but prefers not to
- Minor Version: Must not introduce breaking changes in existing features, but may introduce new features
Additionally we should define how we intend to introduce new features and versions in-protocol:
This includes:
- High level versioning scheme
- Negotiated support for extensions / capabilities
- How to address unknown extensions / capabilities
This issue is tracking formalizing the approach to backwards compatibility and versioning.
This includes:
Additionally we should define how we intend to introduce new features and versions in-protocol:
This includes: