Replies: 3 comments 4 replies
-
@erkist maybe by having more concrete examples, we can simplify the discussion. For example, now in the CI PR we have the Tasks for the pipelines which can be considered in some way as generic events, I think that's a good compromise. If not we fall into the discussion of why is an Activity related to CI or CD? In my opinion, if we go too generic we are actually not defining much. So here are some questions that might help me to understand your point of view:
The event type is highlighting the activity that is being run, making explicit which kind of Activities the spec is interested in, by that reducing the mental overhead from adopters to understand what is a generic activity and when it needs to be used... my two cents.. |
Beta Was this translation helpful? Give feedback.
-
Thanks @erkist - this is a very good discussion to have. In my mind, generic events is what I call "orchestration" events, which are events at a higher level of abstraction, common to all kind of specific activities. To make an example, a system may have a concept of workflow, or pipeline, or series of activities of some kind (the terminology varies). This workflow may include one or more activities, in series, in parallel or a combination. You could have for instance the following sequence of events for a workflow that clones a repo and build binaries when a change is proposed:
|
Beta Was this translation helpful? Give feedback.
-
Working Group Decision:
For the JSON Payload binding we need to decide whether specific activities need to match the schema of the generic one - i.e. do we want to have a hierarchical structure between events. |
Beta Was this translation helpful? Give feedback.
-
There is a discussion in #8 that I believe warrants a larger discussion as it will have impact outside of that specific scenario (for instance when we get to Continuous Delivery activities later on).
Do we want concrete activity events (Build, Test Queued/Started/Finished etc.) or generic activity events (Activity Queued/Started/Finished etc.)? Or some combination of the two?
There appear to be plenty of existing schemas that have gone either of the above ways, for instance Fedora has concrete events https://pagure.io/fedora-ci/messages/blob/master/f/schemas wheras Eiffel has generic events https://github.com/eiffel-community/eiffel/blob/master/eiffel-vocabulary/EiffelActivityStartedEvent.md
Regardless of which way we choose, I believe we will still need to show what type of activity the event concerns, so maybe the fundamental differentiating factor is: Should it be the event type or some attribute value that states what kind of activity is being run?
Beta Was this translation helpful? Give feedback.
All reactions