Skip to content

Commit e8c04ee

Browse files
Decentralized meta and links object documentation (Issue #136)
As described in issue #136, because of the per-event versioning scheme it is untenable to keep link type documentation central and separate from event types. When link types are changed, this constitutes an event version change. Therefore, the link types of each event type must be documented each respective event type documentation. the-links-object.md has been preserved, but only contains general information. The repository has been searched for occurrences of the-links-object.md and has been updated accordingly. As described by Issue #136, the per-event versioning scheme requires that even common syntax be described on a per-event basis, lest the documentation and/or versioning break down. This commit moves the meta object documentation into the documentation of each respective event.
1 parent 15ca92e commit e8c04ee

25 files changed

+3085
-332
lines changed

eiffel-syntax-and-usage/event-structure.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ __Description:__ This object contains all fields specific to the event type –
3131
## links
3232
__Type:__ Object
3333
__Required:__ Yes
34-
__Description:__ This object contains all trace links to other Eiffel events. It is described in detail [here](./the-links-object.md).
34+
__Description:__ This object contains all types of links to other Eiffel events. Its usage and syntax is described [here](./the-links-object.md), while the full list of optional and required links is described in the documentation of each respective event type..
+3-169
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!---
2-
Copyright 2017 Ericsson AB.
2+
Copyright 2017-2018 Ericsson AB.
33
For a full list of individual contributors, please see the commit history.
44
55
Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,7 @@
1616
--->
1717

1818
# The Links Object
19-
The __links__ object is an array of trace links to other Eiffel events. These trace links by definition always reference backwards in time – it is only possible to reference an event that has already occured. Each trace link is a tuple consisting of a type and a UUID corresponding to the __meta.id__ of the target event, on String format.
19+
The __links__ object is an array of trace links to other Eiffel events. These trace links by definition always reference backwards in time – it is only possible to reference an event that has already occurred. Each trace link is a tuple consisting of a type and a UUID corresponding to the __meta.id__ of the target event, on String format.
2020

2121
Some link types allow multiple trace links, whereas others only allow one.
2222

@@ -27,170 +27,4 @@ Example syntax of a simple __links__ object:
2727
{"type": "COMPOSITION", "target": "43ee71d2-6d91-496a-b9cf-d121ff1d1bcf"}
2828
]
2929

30-
## Legal Link Types
31-
### CAUSE
32-
__Required in:__ None
33-
__Optional in:__ Any
34-
__Legal targets:__ Any
35-
__Multiple allowed:__ Yes
36-
__Description:__ Identifies a cause of the event occurring. SHOULD not be used in conjunction with __CONTEXT__: individual events providing __CAUSE__ within a larger context gives rise to ambiguity. It is instead recommended to let the root event of the context declare __CAUSE__.
37-
38-
### CONTEXT
39-
__Required in:__ None
40-
__Optional in:__ Any
41-
__Legal targets:__ [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md),
42-
[EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md)
43-
__Multiple allowed:__ No
44-
__Description:__ Identifies the activity or test suite of which the event constitutes a part. SHOULD not be used in conjunction with __CAUSE__, see above. Note that multiple layers may be modeled using __CONTEXT__, e.g. an activity being part of another activity.
45-
46-
### FLOW_CONTEXT
47-
__Required in:__ None
48-
__Optional in:__ Any
49-
__Legal targets:__ [EiffelFlowContextDefinedEvent](../eiffel-vocabulary/EiffelFlowContextDefinedEvent.md)
50-
__Multiple allowed:__ No
51-
__Description:__ Identifies the flow context of the event: which is the continuous integration and delivery flow in which this occurred – e.g. which product, project, track or version this is applicable to.
52-
53-
### ACTIVITY_EXECUTION
54-
__Required in:__ [EiffelActivityCanceledEvent](../eiffel-vocabulary/EiffelActivityCanceledEvent.md),
55-
[EiffelActivityStartedEvent](../eiffel-vocabulary/EiffelActivityStartedEvent.md),
56-
[EiffelActivityFinishedEvent](../eiffel-vocabulary/EiffelActivityFinishedEvent.md)
57-
__Optional in:__ None
58-
__Legal targets:__ [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md)
59-
__Multiple allowed:__ No
60-
__Description:__ Declares the activity execution the event relates to. In other words, [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md) acts as a handle for the activity execution. This differs from __CONTEXT__. In __ACTIVITY_EXECUTION__ the source carries information pertaining to the target (i.e. the activity started, finished or was canceled). In __CONTEXT__, on the other hand, the source constitutes a subset of the target (e.g. this test case was executed as part of that activity or test suite).
61-
62-
### PREVIOUS_ACTIVITY_EXECUTION
63-
__Required in:__ None
64-
__Optional in:__ [EiffelActivityStartedEvent](../eiffel-vocabulary/EiffelActivityStartedEvent.md)
65-
__Legal targets:__ [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md)
66-
__Multiple allowed:__ No
67-
__Description:__ Identifies the latest previous execution of the activity.
68-
69-
### PREVIOUS_VERSION
70-
__Required in:__ None
71-
__Optional in:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md),
72-
[EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md),
73-
[EiffelEnvironmentDefinedEvent](../eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md),
74-
[EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md),
75-
[EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
76-
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md),
77-
[EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md),
78-
[EiffelEnvironmentDefinedEvent](../eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md),
79-
[EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md),
80-
[EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
81-
__Multiple allowed:__ Yes
82-
__Description:__ Identifies a latest previous version (there may be more than one in case of merges) of the engineering artifact the event represents, e.g. the previous version of the artifact, the previous version of the composition etc. The target event type SHALL be the same as the source event type.
83-
84-
### COMPOSITION
85-
__Required in:__ [EiffelArtifactReusedEvent](../eiffel-vocabulary/EiffelArtifactReusedEvent.md)
86-
__Optional in:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md)
87-
__Legal targets:__ [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md)
88-
__Multiple allowed:__ No
89-
__Description:__ Identifies the composition from which an artifact declared by [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md) was built, or the composition for which an already existing artifact is declared reused by [EiffelArtifactReusedEvent](../eiffel-vocabulary/EiffelArtifactReusedEvent.md).
90-
91-
### ENVIRONMENT
92-
__Required in:__ None
93-
__Optional in:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md),
94-
[EiffelTestCaseStartedEvent](../eiffel-vocabulary/EiffelTestCaseStartedEvent.md),
95-
[EiffelIssueVerifiedEvent](../eiffel-vocabulary/EiffelIssueVerifiedEvent.md)
96-
__Legal targets:__ [EiffelEnvironmentDefinedEvent](../eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md)
97-
__Multiple allowed:__ No
98-
__Description:__ Identifies the environment in which an event occurred, e.g. in which environment an artifact was built or an issue was verified.
99-
100-
### ARTIFACT
101-
__Required in:__ [EiffelArtifactPublishedEvent](../eiffel-vocabulary/EiffelArtifactPublishedEvent.md)
102-
__Optional in:__ None
103-
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md)
104-
__Multiple allowed:__ No
105-
__Description:__ Identifies the artifact that was published.
106-
107-
### SUBJECT
108-
__Required in:__ [EiffelConfidenceLevelModifiedEvent](../eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md)
109-
__Optional in:__ None
110-
__Legal targets:__ [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md),
111-
[EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md),
112-
[EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md),
113-
[EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
114-
__Multiple allowed:__ Yes
115-
__Description:__ Identifies a subject of the confidence level.
116-
117-
### ELEMENT
118-
__Required in:__ None
119-
__Optional in:__ [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md)
120-
__Legal targets:__ [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md),
121-
[EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md),
122-
[EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md)
123-
__Multiple allowed:__ Yes
124-
__Description:__ Identifies an element and/or sub-composition of the composition. The latter is particularly useful for documenting large and potentially decentralized compositions, and may be used to reduce the need to repeat large compositions in which only small parts are subject to frequent change.
125-
126-
### BASE
127-
__Required in:__ None
128-
__Optional in:__ [EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md)
129-
__Legal targets:__ [EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
130-
__Multiple allowed:__ No
131-
__Description:__ Identifies the base revision of the proposed change.
132-
133-
### CHANGE
134-
__Required in:__ None
135-
__Optional in:__ [EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
136-
__Legal targets:__ [EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md)
137-
__Multiple allowed:__ No
138-
__Description:__ Identifies the change that was submitted.
139-
140-
### TEST_SUITE_EXECUTION
141-
__Required in:__ [EiffelTestSuiteFinishedEvent](../eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md)
142-
__Optional in:__ None
143-
__Legal targets:__ [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md)
144-
__Multiple allowed:__ No
145-
__Description:__ Identifies the relevant test suite execution. In other words, [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md) acts as a handle for a particular test suite execution.
146-
147-
### TEST_CASE_EXECUTION
148-
__Required in:__ [EiffelTestCaseStartedEvent](../eiffel-vocabulary/EiffelTestCaseStartedEvent.md), [EiffelTestCaseFinishedEvent](../eiffel-vocabulary/EiffelTestCaseFinishedEvent.md), [EiffelTestCaseCanceledEvent](../eiffel-vocabulary/EiffelTestCaseCanceledEvent.md)
149-
__Optional in:__ None
150-
__Legal targets:__ [EiffelTestCaseTriggeredEvent](../eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md)
151-
__Multiple allowed:__ No
152-
__Description:__ Identifies the relevant test case execution. In other words, [EiffelTestCaseTriggeredEvent](../eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md) acts as a handle for a particular test case execution. This differs from __CONTEXT__. In __TEST_CASE_EXECUTION__ the source carries information pertaining to the target (i.e. the test case execution started, finished or was canceled). In __CONTEXT__, on the other hand, the source constitutes a subset of the target (e.g. this test case was executed as part of that activity or test suite).
153-
154-
### IUT
155-
__Required in:__ [EiffelTestCaseTriggeredEvent](../eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md),
156-
[EiffelIssueVerifiedEvent](../eiffel-vocabulary/EiffelIssueVerifiedEvent.md)
157-
__Optional in:__ None
158-
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md),
159-
[EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md)
160-
__Multiple allowed:__ No
161-
__Description:__ Identifies the Item Under Test: what is about to be tested and/or has been verified to address an issue, respectively.
162-
163-
### TERC
164-
__Required in:__ None
165-
__Optional in:__ [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md)
166-
__Legal targets:__ [EiffelTestExecutionRecipeCollectionCreatedEvent](../eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md)
167-
__Multiple allowed:__ No
168-
__Description:__ When declared in an [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md), this link signifies that the test suite groups all test case executions resulting from the [EiffelTestExecutionRecipeCollectionCreatedEvent](../eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md).
169-
170-
### MODIFIED_ANNOUNCEMENT
171-
__Required in:__ None
172-
__Optional in:__ [EiffelAnnouncementPublishedEvent](../eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md)
173-
__Legal targets:__ [EiffelAnnouncementPublishedEvent](../eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md)
174-
__Multiple allowed:__ No
175-
__Description:__ Identifies an announcement of which this event represents an update or modification, if any. Example usage is to declare the end to a previously announced situation.
176-
177-
### SUB_CONFIDENCE_LEVEL
178-
__Required in:__ None
179-
__Optional in:__ [EiffelConfidenceLevelModifiedEvent](../eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md)
180-
__Legal targets:__ [EiffelConfidenceLevelModifiedEvent](../eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md)
181-
__Multiple allowed:__ Yes
182-
__Description:__ Used in events summarizing multiple confidence levels. Example use case: the confidence level "allTestsOk" summarizes the confidence levels "unitTestsOk, "scenarioTestsOk" and "deploymentTestsOk", and consequently links to them via __SUB_CONFIDENCE_LEVEL__. This is intended for purely descriptive, rather than prescriptive, use.
183-
184-
### REUSED_ARTIFACT
185-
__Required in:__ [EiffelArtifactReusedEvent](../eiffel-vocabulary/EiffelArtifactReusedEvent.md)
186-
__Optional in:__ None
187-
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md)
188-
__Multiple allowed:__ No
189-
__Description:__ This link identifies the [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md) that is reused; in other words, the artifact that is not rebuilt for a given composition.
190-
191-
### VERIFICATION_BASIS
192-
__Required in:__ None
193-
__Optional in:__ [EiffelIssueVerifiedEvent](../eiffel-vocabulary/EiffelIssueVerifiedEvent.md)
194-
__Legal targets:__ [EiffelTestCaseFinishedEvent](../eiffel-vocabulary/EiffelTestCaseFinishedEvent.md), [EiffelTestSuiteFinishedEvent](../eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md)
195-
__Multiple allowed:__ Yes
196-
__Description:__ Used to declare the basis on which the verification statement(s) of [EiffelIssueVerifiedEvent](../eiffel-vocabulary/EiffelIssueVerifiedEvent.md) have been issued.
30+
The full list of optional and required links is described in the documentation of each respective event type.

0 commit comments

Comments
 (0)