Skip to content

Conversation

@magnusbaeck
Copy link
Member

Applicable Issues

Fixes #46

Description of the Change

Nowadays, the protocol supports experimental (pre-1.0.0) event versions, with EiffelArtifactDeployedEvent being the first event of that kind. The point of those versions is to allow experimentation and non backwards compatible changes without major version bumps.

For this SDK, this means that all pre-1.0.0 versions need to get their own struct types since there could be arbitrary changes between, say, 0.1.0 and 0.2.0, and the only way to guarantee that we can support all such versions is to use distinct types for all of them.

Since we're updating the protocol submodule gitlink in this commit (to get hold of EiffelArtifactDeployedEvent) we're also getting a few other changes, effectively making us cover nearly the whole intended scope of the Orizaba edition.

Alternate Designs

This design was the only reasonable option I could come up with.

Benefits

The SDK can represent all existing event versions.

Possible Drawbacks

Lots of types if there are many experimental event versions.

Sign-off

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

Signed-off-by: Magnus Bäck <[email protected]>

Nowadays, the protocol supports experimental (pre-1.0.0) versions,
with EiffelArtifactDeployedEvent being the first event of that kind.
The point of those versions is to allow experimentation and non
backwards compatible changes without major version bumps.

For this SDK, this means that all pre-1.0.0 versions need to get
their own struct types since there could be arbitrary changes between,
say, 0.1.0 and 0.2.0, and the only way to guarantee that we can
support all such versions is to use distinct types for all of them.

Since we're updating the protocol submodule gitlink in this commit
(to get hold of EiffelArtifactDeployedEvent) we're also getting a few
other changes, effectively making us cover nearly the whole intended
scope of the Orizaba edition.
@magnusbaeck magnusbaeck requested a review from a team as a code owner June 26, 2023 15:17
@magnusbaeck magnusbaeck merged commit e96256a into eiffel-community:master Jul 10, 2023
@magnusbaeck magnusbaeck deleted the exp branch July 10, 2023 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for experimental event types

3 participants