|
| 1 | +# Copyright 2017-2022 Ericsson AB and others. |
| 2 | +# For a full list of individual contributors, please see the commit history. |
| 3 | +# |
| 4 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | +# you may not use this file except in compliance with the License. |
| 6 | +# You may obtain a copy of the License at |
| 7 | +# |
| 8 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | +# |
| 10 | +# Unless required by applicable law or agreed to in writing, software |
| 11 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | +# See the License for the specific language governing permissions and |
| 14 | +# limitations under the License. |
| 15 | +--- |
| 16 | +$schema: http://json-schema.org/draft-04/schema# |
| 17 | +_abbrev: CLM |
| 18 | +_description: |- |
| 19 | + The EiffelConfidenceLevelModifiedEvent declares that an entity has achieved (or failed to achieve) a certain level of confidence, or in a broader sense to annotate it as being applicable or relevant to a certain case (e.g. fit for release to a certain customer segment or having passed certain criteria). This is particularly useful for promoting various engineering artifacts, such as product revisions, through the continuous integration and delivery pipeline. |
| 20 | +
|
| 21 | + Confidence levels may operate at high or low levels of abstraction - ranging from "smokeTestsOk" to "releasable" or "released" - and they may group other confidence levels of lower abstraction levels. They may also be general or very niched, e.g. "releasable" or "releasableToCustomerX". Confidence levels frequently figure in automated delivery interfaces within a tiered system context: lower level tiers issue an agreed confidence level signaling that a new version is ready for integration in a higher level tier. |
| 22 | +type: object |
| 23 | +properties: |
| 24 | + meta: |
| 25 | + $ref: ../EiffelMetaProperty/3.1.0.yml |
| 26 | + data: |
| 27 | + type: object |
| 28 | + properties: |
| 29 | + name: |
| 30 | + _description: The name of the confidence level. It is recommended |
| 31 | + for confidence level names to conform with camelCase formatting, |
| 32 | + in line with the format of key names of the Eiffel protocol |
| 33 | + as a whole. |
| 34 | + type: string |
| 35 | + value: |
| 36 | + _description: |- |
| 37 | + The value of the confidence level. |
| 38 | + SUCCESS signifies that the confidence level has been successfully achieved. |
| 39 | + FAILURE signifies that the confidence level could not be achieved. |
| 40 | + INCONCLUSIVE signifies that achievement of the confidence level could not be determined. |
| 41 | + type: string |
| 42 | + enum: |
| 43 | + - SUCCESS |
| 44 | + - FAILURE |
| 45 | + - INCONCLUSIVE |
| 46 | + issuer: |
| 47 | + _description: The individual or entity issuing the confidence |
| 48 | + level. |
| 49 | + type: object |
| 50 | + properties: |
| 51 | + name: |
| 52 | + _description: The name of the issuer. |
| 53 | + type: string |
| 54 | + email: |
| 55 | + _description: The e-mail address of the issuer. |
| 56 | + type: string |
| 57 | + id: |
| 58 | + _description: Any identity, alias or handle of the issuer, |
| 59 | + such as a corporate id or username. |
| 60 | + type: string |
| 61 | + group: |
| 62 | + _description: Any group, such as a development team, committee |
| 63 | + or test group, to which the issuer belongs. |
| 64 | + type: string |
| 65 | + additionalProperties: false |
| 66 | + customData: |
| 67 | + type: array |
| 68 | + items: |
| 69 | + $ref: ../EiffelCustomDataProperty/1.0.0.yml |
| 70 | + required: |
| 71 | + - name |
| 72 | + - value |
| 73 | + additionalProperties: false |
| 74 | + links: |
| 75 | + type: array |
| 76 | + items: |
| 77 | + $ref: ../EiffelEventLink/1.1.1.yml |
| 78 | +required: |
| 79 | + - meta |
| 80 | + - data |
| 81 | + - links |
| 82 | +additionalProperties: false |
| 83 | +_links: |
| 84 | + CAUSE: |
| 85 | + description: 'Identifies a cause of the event occurring. SHOULD |
| 86 | + not be used in conjunction with __CONTEXT__: individual events |
| 87 | + providing __CAUSE__ within a larger context gives rise to ambiguity. |
| 88 | + It is instead recommended to let the root event of the context |
| 89 | + declare __CAUSE__.' |
| 90 | + required: false |
| 91 | + multiple: true |
| 92 | + targets: |
| 93 | + any_type: true |
| 94 | + types: [] |
| 95 | + CONTEXT: |
| 96 | + description: Identifies the activity or test suite of which this |
| 97 | + event constitutes a part. |
| 98 | + required: false |
| 99 | + multiple: false |
| 100 | + targets: |
| 101 | + any_type: false |
| 102 | + types: |
| 103 | + - EiffelActivityTriggeredEvent |
| 104 | + - EiffelTestSuiteStartedEvent |
| 105 | + FLOW_CONTEXT: |
| 106 | + description: 'Identifies the flow context of the event: which is |
| 107 | + the continuous integration and delivery flow in which this occurred |
| 108 | + – e.g. which product, project, track or version this is applicable |
| 109 | + to.' |
| 110 | + required: false |
| 111 | + multiple: true |
| 112 | + targets: |
| 113 | + any_type: false |
| 114 | + types: |
| 115 | + - EiffelFlowContextDefinedEvent |
| 116 | + SUBJECT: |
| 117 | + description: Identifies a subject of the confidence level; in other |
| 118 | + words, what the confidence level applies to. |
| 119 | + required: true |
| 120 | + multiple: true |
| 121 | + targets: |
| 122 | + any_type: false |
| 123 | + types: |
| 124 | + - EiffelArtifactCreatedEvent |
| 125 | + - EiffelArtifactDeployedEvent |
| 126 | + - EiffelCompositionDefinedEvent |
| 127 | + - EiffelSourceChangeCreatedEvent |
| 128 | + - EiffelSourceChangeSubmittedEvent |
| 129 | + SUB_CONFIDENCE_LEVEL: |
| 130 | + description: 'Used in events summarizing multiple confidence levels. |
| 131 | + Example use case: the confidence level "allTestsOk" summarizes |
| 132 | + the confidence levels "unitTestsOk, "scenarioTestsOk" and "deploymentTestsOk", |
| 133 | + and consequently links to them via __SUB_CONFIDENCE_LEVEL__. |
| 134 | + This is intended for purely descriptive, rather than prescriptive, |
| 135 | + use.' |
| 136 | + required: false |
| 137 | + multiple: true |
| 138 | + targets: |
| 139 | + any_type: false |
| 140 | + types: |
| 141 | + - EiffelConfidenceLevelModifiedEvent |
| 142 | +_history: |
| 143 | + - version: 3.3.0 |
| 144 | + introduced_in: No edition set |
| 145 | + changes: Add EiffelArtifactDeployedEvent as legal target type for |
| 146 | + SUBJECT link (see |
| 147 | + [Issue 239](https://github.com/eiffel-community/eiffel/issues/239)). |
| 148 | + - version: 3.2.0 |
| 149 | + introduced_in: '[edition-arica](../../../tree/edition-arica)' |
| 150 | + changes: Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). |
| 151 | + - version: 3.1.0 |
| 152 | + introduced_in: '[edition-lyon](../../../tree/edition-lyon)' |
| 153 | + changes: Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). |
| 154 | + - version: 3.0.0 |
| 155 | + introduced_in: '[edition-agen](../../../tree/edition-agen)' |
| 156 | + changes: Improved information integrity protection (see [Issue |
| 157 | + 185](https://github.com/eiffel-community/eiffel/issues/185)). |
| 158 | + - version: 2.0.0 |
| 159 | + introduced_in: '[dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md)' |
| 160 | + changes: Introduced purl identifiers instead of GAVs (see [Issue |
| 161 | + 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 162 | + - version: 1.1.0 |
| 163 | + introduced_in: '[edition-toulouse](../../../tree/edition-toulouse)' |
| 164 | + changes: Multiple links of type FLOW_CONTEXT allowed. |
| 165 | + - version: 1.0.0 |
| 166 | + introduced_in: '[edition-bordeaux](../../../tree/edition-bordeaux)' |
| 167 | + changes: Initial version. |
| 168 | +_examples: |
| 169 | + - title: Simple example |
| 170 | + url: ../examples/events/EiffelConfidenceLevelModifiedEvent/simple.json |
0 commit comments