Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 2.72 KB

versioning.md

File metadata and controls

34 lines (27 loc) · 2.72 KB

Versioning

In Eiffel, each individual event type is versioned independently. This version is declared by the meta.version property (see The Meta Object) and follows the Semantic Versioning 2.0.0 format. The documentation of each event type lists the complete version history of that type, including links to commits introducing older versions of the type.

The independent versioning of event types, as opposed to a protocol-wide versioning scheme, was chosen for the greater flexibility and extensibility it affords. There are consequences, however, which are important to understand:

  • Consumers must always be ready to receive event types which they are unable to parse: the event producer may be ahead of the consumer on one event type, but not another. Similarly, new and/or custom event types must be expected and handled.
  • Backwards incompatible changes may not be introduced to the meta.type and meta.version properties, as these together form the key which allows the consumer to unlock the remainder of the event.

That being said, to facilitate compatibility and consistency, the Eiffel protocol as described in this repository is released in named and internally coherent editions. Each of these editions is represented as a GitHub release. A history of Eiffel editions is available below.

Edition Tag Changes
Arica Reserved for future use.
Lyon Reserved for future use.
Paris Reserved for future use.
Agen Reserved for future use.
Toulouse edition-toulouse Stepped major version of TERCC. Updated FLOW_CONTEXT link type, resulting in new minor version of all event types.
Bordeaux edition-bordeaux Initial edition.