diff --git a/definitions/EiffelActivityTriggeredEvent/4.3.0.yml b/definitions/EiffelActivityTriggeredEvent/4.3.0.yml new file mode 100644 index 00000000..8602bc6e --- /dev/null +++ b/definitions/EiffelActivityTriggeredEvent/4.3.0.yml @@ -0,0 +1,185 @@ +# Copyright 2017-2023 Ericsson AB and others. +# For a full list of individual contributors, please see the commit history. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +$schema: http://json-schema.org/draft-04/schema# +_abbrev: ActT +_description: |- + The EiffelActivityTriggeredEvent declares that a certain activity - typically a build, test or analysis activity - has been triggered by some factor. Note that this is crucially different from the activity execution having _started_ (as declared by [EiffelActivityStartedEvent](./EiffelActivityStartedEvent.md)). + + In a situation where execution follows immediately upon triggering these two events should be sent together. Where that is not the case (e.g. due to queuing) the time delta between EiffelActivityTriggeredEvent and EiffelActivityStartedEvent constitutes the queue time. +type: object +properties: + meta: + $ref: ../EiffelMetaProperty/3.1.0.yml + data: + type: object + properties: + name: + _description: The name of the activity. Uniqueness is not required + or checked, but is useful. + type: string + categories: + _description: Any categorization of the activity. This can + be used to group multiple similar activities for analysis + and visualization purposes. Example usage is to label the + similar but unique build activities of all the components + of system X as "System X Component Build" (whereas the name + would be e.g. "System X Component Y Build"). + type: array + items: + type: string + triggers: + _description: The circumstances triggering the activity. + type: array + items: + type: object + properties: + type: + _description: |- + The type of trigger. + MANUAL signifies that the activity was manually triggered. + EIFFEL_EVENT signifies that the activity was triggered by one or more Eiffel events. These events should be represented via __CAUSE__ links. + SOURCE_CHANGE signifies that the activity was triggered as a consequence of a detected source change __not__ represented by Eiffel events. + TIMER signifies that the activity was triggered by a timer. + OTHER signifies any other triggering cause. + type: string + enum: + - MANUAL + - EIFFEL_EVENT + - SOURCE_CHANGE + - TIMER + - OTHER + description: + _description: A description of the trigger. + type: string + required: + - type + additionalProperties: false + executionType: + _description: The type of execution (often related to, but + ultimately separate from, __data.triggers.type__). + type: string + enum: + - MANUAL + - SEMI_AUTOMATED + - AUTOMATED + - OTHER + customData: + type: array + items: + $ref: ../EiffelCustomDataProperty/1.0.0.yml + required: + - name + additionalProperties: false + links: + type: array + items: + $ref: ../EiffelEventLink/1.1.1.yml +required: + - meta + - data + - links +additionalProperties: false +_links: + CAUSE: + 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__.' + required: false + multiple: true + targets: + any_type: true + types: [] + CONTEXT: + description: 'Identifies the + [activity](../eiffel-syntax-and-usage/glossary.md#activity) + or test suite of which this event constitutes a part.' + required: false + multiple: false + targets: + any_type: false + types: + - EiffelActivityTriggeredEvent + - EiffelTestSuiteStartedEvent + FLOW_CONTEXT: + 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.' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelFlowContextDefinedEvent + ORIGINAL_TRIGGER: + description: 'Used when the current activity is a new attempt at + completing a previous activity, typically because the previous one + failed. Although this activity may have been manually triggered and + thus lacks a cause that can be described with Eiffel, this link can + be used to convey the second-order cause.' + required: false + multiple: false + targets: + any_type: false + types: + - EiffelActivityTriggeredEvent + PRECURSOR: + description: 'Used to declare temporal relationships between + [activities](../eiffel-syntax-and-usage/glossary.md#activity) in a + [pipeline](../eiffel-syntax-and-usage/glossary.md#pipeline), i.e. what + other activity/activities preceded this activity. This link type applies + primarily to non event-triggered activities. For more information on + the usage of this link type please see + [Activity Linking](../eiffel-syntax-and-usage/activity-linking.md).' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelActivityTriggeredEvent +_history: + - version: 4.3.0 + changes: Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). + - version: 4.2.0 + introduced_in: edition-arica + changes: Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). + - version: 4.1.0 + introduced_in: edition-lyon + changes: Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). + - version: 4.0.0 + introduced_in: edition-agen-1 + changes: Bug fix in schema file (see [Issue 205](https://github.com/eiffel-community/eiffel/issues/205)) + - version: 3.0.0 + introduced_in: edition-agen + changes: Improved information integrity protection (see [Issue + 185](https://github.com/eiffel-community/eiffel/issues/185)) + - version: 2.0.0 + introduced_in: edition-agen + changes: Introduced purl identifiers instead of GAVs (see [Issue + 182](https://github.com/eiffel-community/eiffel/issues/182)) + - version: 1.1.0 + introduced_in: edition-toulouse + changes: Multiple links of type FLOW_CONTEXT allowed. + - version: 1.0.0 + introduced_in: edition-bordeaux + changes: Initial version. +_examples: + - title: Simple example + url: ../examples/events/EiffelActivityTriggeredEvent/simple.json + - title: Example containing custom data + url: ../examples/events/EiffelActivityTriggeredEvent/simple-customdata.json diff --git a/definitions/EiffelTestCaseTriggeredEvent/3.5.0.yml b/definitions/EiffelTestCaseTriggeredEvent/3.5.0.yml new file mode 100644 index 00000000..0a8d05d2 --- /dev/null +++ b/definitions/EiffelTestCaseTriggeredEvent/3.5.0.yml @@ -0,0 +1,234 @@ +# Copyright 2017-2023 Ericsson AB and others. +# For a full list of individual contributors, please see the commit history. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +$schema: http://json-schema.org/draft-04/schema# +_abbrev: TCT +_description: |- + The EiffelTestCaseTriggeredEvent declares that the execution of a test case has been triggered, but not yet started. This can either be declared stand-alone or as part of an activity or test suite, using either a __CAUSE__ or a __CONTEXT__ link type, respectively. + + This event is used to communicate intent, and thereby serves a similar purpose to that of [EiffelActivityTriggeredEvent](./EiffelActivityTriggeredEvent.md). A triggered test case execution is expected to either be started (represented by [EiffelTestCaseStartedEvent](./EiffelTestCaseStartedEvent.md)) or canceled (represented by [EiffelTestCaseCanceledEvent](./EiffelTestCaseCanceledEvent.md)). Consequently, any delay between triggering and execution can be assumed to imply queuing time (e.g. waiting for available test resources) and monitored as such. +type: object +properties: + meta: + $ref: ../EiffelMetaProperty/3.1.0.yml + data: + type: object + properties: + testCase: + _description: Identification of the test case to be executed. + type: object + properties: + tracker: + _description: The name of the test case tracker - typically + a test management system. + type: string + id: + _description: The unique identity of the test case to be + executed. + type: string + version: + _description: The unique version of the identified test + case to be executed. Where this property is not used + it is assumed that test cases are not version controlled. + type: string + uri: + _description: A location where a description of the test + case can be retrieved. To the extent that multiple versions + of the same test case co-exist, this property SHALL identify + the exact version to be executed. + type: string + required: + - id + additionalProperties: false + recipeId: + _description: If triggering this test case execution was the + result of an Execution Recipe, as defined by an [EiffelTestExecutionRecipeCollectionCreatedEvent](./EiffelTestExecutionRecipeCollectionCreatedEvent.md), + this UUID SHALL match the relevant __data.batches.recipes.id__ + in that event. + type: string + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ + triggers: + _description: The circumstances triggering the test case execution. + type: array + items: + type: object + properties: + type: + _description: |- + The type of trigger. + MANUAL signifies that the test case execution was manually triggered. + EIFFEL_EVENT signifies that the test case execution was triggered by one or more Eiffel events. These events should be represented via __CAUSE__ links. + SOURCE_CHANGE signifies that the test case execution was triggered as a consequence of a detected source change __not__ represented by Eiffel events. + TIMER signifies that the test case execution was triggered by a timer. + OTHER signifies any other triggering cause. + type: string + enum: + - MANUAL + - EIFFEL_EVENT + - SOURCE_CHANGE + - TIMER + - OTHER + description: + _description: A description of the trigger. + type: string + required: + - type + additionalProperties: false + executionType: + _description: The type of execution (often related to, but + ultimately separate from, __data.triggers.type__). + type: string + enum: + - MANUAL + - SEMI_AUTOMATED + - AUTOMATED + - OTHER + parameters: + _description: A list of parameters to be passed to the test + case execution. + type: array + items: + type: object + properties: + name: + _description: The name of the parameter. + type: string + value: + _description: The value of the parameter. + type: string + required: + - name + - value + additionalProperties: false + customData: + type: array + items: + $ref: ../EiffelCustomDataProperty/1.0.0.yml + required: + - testCase + additionalProperties: false + links: + type: array + items: + $ref: ../EiffelEventLink/1.1.1.yml +required: + - meta + - data + - links +additionalProperties: false +_links: + CAUSE: + 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__.' + required: false + multiple: true + targets: + any_type: true + types: [] + CONTEXT: + description: Identifies the activity or test suite of which this + event constitutes a part. + required: false + multiple: false + targets: + any_type: false + types: + - EiffelActivityTriggeredEvent + - EiffelTestSuiteStartedEvent + FLOW_CONTEXT: + 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.' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelFlowContextDefinedEvent + IUT: + description: Identifies the Item Under Test; in other words, the + entity that is about to be tested. + required: true + multiple: false + targets: + any_type: false + types: + - EiffelArtifactCreatedEvent + - EiffelArtifactDeployedEvent + - EiffelCompositionDefinedEvent + - EiffelSourceChangeCreatedEvent + - EiffelSourceChangeSubmittedEvent + ORIGINAL_TRIGGER: + description: 'Used when the current test case execution is a new attempt + at completing a previous test case execution, typically because the + previous one failed. Although this activity may have been manually + triggered and thus lacks a cause that can be described with Eiffel, + this link can be used to convey the second-order cause.' + required: false + multiple: false + targets: + any_type: false + types: + - EiffelTestCaseTriggeredEvent + PRECURSOR: + description: 'Used to declare temporal relationships between + [activities](../eiffel-syntax-and-usage/glossary.md#activity) in a + [pipeline](../eiffel-syntax-and-usage/glossary.md#pipeline), i.e. what + other activity/activities preceded this activity. This link type applies + primarily to non event-triggered activities. For more information on + the usage of this link type please see + [Activity Linking](../eiffel-syntax-and-usage/activity-linking.md).' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelTestCaseTriggeredEvent +_history: + - version: 3.5.0 + changes: Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). + - version: 3.4.0 + changes: Add artifact deployed event as legal IUT target (see [Issue 239](https://github.com/eiffel-community/eiffel/issues/239)). + - version: 3.3.0 + changes: Add SCS and SCC as legal target for IUT in TCT (see [Issue 317](https://github.com/eiffel-community/eiffel/issues/317)). + - version: 3.2.0 + introduced_in: edition-arica + changes: Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). + - version: 3.1.0 + introduced_in: edition-lyon + changes: Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). + - version: 3.0.0 + introduced_in: edition-agen + changes: Improved information integrity protection (see [Issue + 185](https://github.com/eiffel-community/eiffel/issues/185)). + - version: 2.0.0 + introduced_in: edition-agen + changes: Introduced purl identifiers instead of GAVs (see [Issue + 182](https://github.com/eiffel-community/eiffel/issues/182)) + - version: 1.1.0 + introduced_in: edition-toulouse + changes: Multiple links of type FLOW_CONTEXT allowed. + - version: 1.0.0 + introduced_in: edition-bordeaux + changes: Initial version. +_examples: + - title: Simple example + url: ../examples/events/EiffelTestCaseTriggeredEvent/simple.json + - title: Simple example using pre-3.0.0 meta.security object + url: ../examples/events/EiffelTestCaseTriggeredEvent/simple-2.0.0.json diff --git a/definitions/EiffelTestSuiteStartedEvent/3.4.0.yml b/definitions/EiffelTestSuiteStartedEvent/3.4.0.yml new file mode 100644 index 00000000..dce19261 --- /dev/null +++ b/definitions/EiffelTestSuiteStartedEvent/3.4.0.yml @@ -0,0 +1,212 @@ +# Copyright 2017-2023 Ericsson AB and others. +# For a full list of individual contributors, please see the commit history. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +$schema: http://json-schema.org/draft-04/schema# +_abbrev: TSS +_description: |- + The EiffelTestSuiteStartedEvent declares that the execution of a test suite has started. This can either be declared stand-alone or as part of an activity or other test suite, using either a __CAUSE__ or a __CONTEXT__ link type, respectively. + + In Eiffel, a test suite is nothing more or less than a collection of test case executions (see [EiffelTestCaseStartedEvent](./EiffelTestCaseStartedEvent.md)) and/or other test suite executions. The executed test suite may be an ad-hoc transient grouping of test cases that were executed at a particular time or place or for a particular purpose or a persistent entity tracked in a test management system - Eiffel makes no distinction or assumptions either way. +type: object +properties: + meta: + $ref: ../EiffelMetaProperty/3.1.0.yml + data: + type: object + properties: + name: + _description: The name of the test suite. Uniqueness is not + required or checked, but is useful. + type: string + categories: + _description: The category or categories of the test suite. + This can be used to group multiple similar test suites for + analysis and visualization purposes. Example usage is to + categorize test suites required before release as "Pre-release + tests". + type: array + items: + type: string + types: + _description: The type or types of testing performed by the + test suite, as [defined by ISO 29119](http://www.softwaretestingstandard.org). + type: array + items: + type: string + enum: + - ACCESSIBILITY + - BACKUP_RECOVERY + - COMPATIBILITY + - CONVERSION + - DISASTER_RECOVERY + - FUNCTIONAL + - INSTALLABILITY + - INTEROPERABILITY + - LOCALIZATION + - MAINTAINABILITY + - PERFORMANCE + - PORTABILITY + - PROCEDURE + - RELIABILITY + - SECURITY + - STABILITY + - USABILITY + liveLogs: + _description: An array of live log files available during execution. + These shall not be presumed to be stored persistently; in + other words, once the test suite has finished there is no + guarantee that these links are valid. Persistently stored + logs shall be (re-)declared by [EiffelTestSuiteFinishedEvent](./EiffelTestSuiteFinishedEvent.md). + type: array + items: + type: object + properties: + mediaType: + _description: The [media type](https://en.wikipedia.org/wiki/Media_type) + of the URI's payload. Can be used to differentiate + between various representations of the same log, e.g. + text/html for human consumption and text/plain or application/json + for the machine-readable form. + type: string + name: + _description: The name of the log file. + type: string + tags: + _description: Arbitrary tags and keywords that describe + this log. + type: array + items: + type: string + uri: + _description: The URI at which the log can be retrieved. + type: string + required: + - name + - uri + additionalProperties: false + customData: + type: array + items: + $ref: ../EiffelCustomDataProperty/1.0.0.yml + required: + - name + additionalProperties: false + links: + type: array + items: + $ref: ../EiffelEventLink/1.1.1.yml +required: + - meta + - data + - links +additionalProperties: false +_links: + CAUSE: + 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__.' + required: false + multiple: true + targets: + any_type: true + types: [] + CONTEXT: + description: Identifies the activity or test suite of which this + event constitutes a part. + required: false + multiple: false + targets: + any_type: false + types: + - EiffelActivityTriggeredEvent + - EiffelTestSuiteStartedEvent + FLOW_CONTEXT: + 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.' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelFlowContextDefinedEvent + ORIGINAL_TRIGGER: + description: 'Used when the current test suite execution is a new attempt + at completing a previous test suite execution, typically because the + previous one failed. Although this activity may have been manually triggered + and thus lacks a cause that can be described with Eiffel, this link can + be used to convey the second-order cause.' + required: false + multiple: false + targets: + any_type: false + types: + - EiffelTestSuiteStartedEvent + PRECURSOR: + description: 'Used to declare temporal relationships between + [activities](../eiffel-syntax-and-usage/glossary.md#activity) in a + [pipeline](../eiffel-syntax-and-usage/glossary.md#pipeline), i.e. what + other activity/activities preceded this activity. This link type applies + primarily to non event-triggered activities. For more information on + the usage of this link type please see + [Activity Linking](../eiffel-syntax-and-usage/activity-linking.md).' + required: false + multiple: true + targets: + any_type: false + types: + - EiffelTestSuiteStartedEvent + TERC: + description: This link signifies that the test suite represented + by this event groups all test case executions resulting from + the [EiffelTestExecutionRecipeCollectionCreatedEvent](../eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md). + required: false + multiple: false + targets: + any_type: false + types: + - EiffelTestExecutionRecipeCollectionCreatedEvent +_history: + - version: 3.4.0 + changes: Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). + - version: 3.3.0 + introduced_in: edition-arica + changes: Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). + - version: 3.2.0 + introduced_in: edition-lyon + changes: Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). + - version: 3.1.0 + introduced_in: edition-lyon + changes: Add `data.liveLogs.{mediaType,tags}`. + - version: 3.0.0 + introduced_in: edition-agen + changes: Improved information integrity protection (see [Issue + 185](https://github.com/eiffel-community/eiffel/issues/185)). + - version: 2.0.0 + introduced_in: edition-agen + changes: Introduced purl identifiers instead of GAVs (see [Issue + 182](https://github.com/eiffel-community/eiffel/issues/182)) + - version: 1.1.0 + introduced_in: edition-toulouse + changes: Multiple links of type FLOW_CONTEXT allowed. + - version: 1.0.0 + introduced_in: edition-bordeaux + changes: Initial version. +_examples: + - title: Simple example + url: ../examples/events/EiffelTestSuiteStartedEvent/simple.json diff --git a/eiffel-syntax-and-usage/activity-linking.md b/eiffel-syntax-and-usage/activity-linking.md index c3e9eee6..df81c6ed 100644 --- a/eiffel-syntax-and-usage/activity-linking.md +++ b/eiffel-syntax-and-usage/activity-linking.md @@ -1,5 +1,5 @@ @@ -70,6 +70,12 @@ __Legal targets:__ [EiffelFlowContextDefinedEvent](../eiffel-vocabulary/EiffelFl __Multiple allowed:__ Yes __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. +### ORIGINAL_TRIGGER +__Required:__ No +__Legal targets:__ [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md) +__Multiple allowed:__ No +__Description:__ Used when the current activity is a new attempt at completing a previous activity, typically because the previous one failed. Although this activity may have been manually triggered and thus lacks a cause that can be described with Eiffel, this link can be used to convey the second-order cause. + ### PRECURSOR __Required:__ No __Legal targets:__ [EiffelActivityTriggeredEvent](../eiffel-vocabulary/EiffelActivityTriggeredEvent.md) @@ -210,6 +216,7 @@ __Description:__ A URI pointing at a location from where the schema used when cr | Version | Introduced in | Changes | | ------- | ------------- | ------- | +| 4.3.0 | Not yet released in an edition | Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). | | 4.2.0 | [edition-arica](../../../tree/edition-arica) | Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). | | 4.1.0 | [edition-lyon](../../../tree/edition-lyon) | Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). | | 4.0.0 | [edition-agen-1](../../../tree/edition-agen-1) | Bug fix in schema file (see [Issue 205](https://github.com/eiffel-community/eiffel/issues/205)) | diff --git a/eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md b/eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md index 66fc3209..f1ca0fe5 100644 --- a/eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md +++ b/eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md @@ -1,5 +1,5 @@ @@ -111,6 +111,12 @@ __Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtif __Multiple allowed:__ No __Description:__ Identifies the Item Under Test; in other words, the entity that is about to be tested. +### ORIGINAL_TRIGGER +__Required:__ No +__Legal targets:__ [EiffelTestCaseTriggeredEvent](../eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md) +__Multiple allowed:__ No +__Description:__ Used when the current test case execution is a new attempt at completing a previous test case execution, typically because the previous one failed. Although this activity may have been manually triggered and thus lacks a cause that can be described with Eiffel, this link can be used to convey the second-order cause. + ### PRECURSOR __Required:__ No __Legal targets:__ [EiffelTestCaseTriggeredEvent](../eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md) @@ -251,6 +257,7 @@ __Description:__ A URI pointing at a location from where the schema used when cr | Version | Introduced in | Changes | | ------- | ------------- | ------- | +| 3.5.0 | Not yet released in an edition | Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). | | 3.4.0 | Not yet released in an edition | Add artifact deployed event as legal IUT target (see [Issue 239](https://github.com/eiffel-community/eiffel/issues/239)). | | 3.3.0 | Not yet released in an edition | Add SCS and SCC as legal target for IUT in TCT (see [Issue 317](https://github.com/eiffel-community/eiffel/issues/317)). | | 3.2.0 | [edition-arica](../../../tree/edition-arica) | Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). | diff --git a/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md b/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md index ff4b2c36..8b29eeef 100644 --- a/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md +++ b/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md @@ -1,5 +1,5 @@ @@ -74,6 +74,12 @@ __Legal targets:__ [EiffelFlowContextDefinedEvent](../eiffel-vocabulary/EiffelFl __Multiple allowed:__ Yes __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. +### ORIGINAL_TRIGGER +__Required:__ No +__Legal targets:__ [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md) +__Multiple allowed:__ No +__Description:__ Used when the current test suite execution is a new attempt at completing a previous test suite execution, typically because the previous one failed. Although this activity may have been manually triggered and thus lacks a cause that can be described with Eiffel, this link can be used to convey the second-order cause. + ### PRECURSOR __Required:__ No __Legal targets:__ [EiffelTestSuiteStartedEvent](../eiffel-vocabulary/EiffelTestSuiteStartedEvent.md) @@ -220,6 +226,7 @@ __Description:__ A URI pointing at a location from where the schema used when cr | Version | Introduced in | Changes | | ------- | ------------- | ------- | +| 3.4.0 | Not yet released in an edition | Add ORIGINAL_TRIGGER link (see [Issue 246](https://github.com/eiffel-community/eiffel/issues/246)). | | 3.3.0 | [edition-arica](../../../tree/edition-arica) | Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). | | 3.2.0 | [edition-lyon](../../../tree/edition-lyon) | Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). | | 3.1.0 | [edition-lyon](../../../tree/edition-lyon) | Add `data.liveLogs.{mediaType,tags}`. | diff --git a/schemas/EiffelActivityTriggeredEvent/4.3.0.json b/schemas/EiffelActivityTriggeredEvent/4.3.0.json new file mode 100644 index 00000000..73d631cf --- /dev/null +++ b/schemas/EiffelActivityTriggeredEvent/4.3.0.json @@ -0,0 +1,231 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "type": { + "type": "string", + "enum": [ + "EiffelActivityTriggeredEvent" + ] + }, + "version": { + "type": "string", + "enum": [ + "4.3.0" + ], + "default": "4.3.0" + }, + "time": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "source": { + "type": "object", + "properties": { + "domainId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "name": { + "type": "string" + }, + "serializer": { + "type": "string", + "pattern": "^pkg:" + }, + "uri": { + "type": "string" + } + }, + "additionalProperties": false + }, + "security": { + "type": "object", + "properties": { + "authorIdentity": { + "type": "string" + }, + "integrityProtection": { + "type": "object", + "properties": { + "signature": { + "type": "string" + }, + "alg": { + "type": "string", + "enum": [ + "HS256", + "HS384", + "HS512", + "RS256", + "RS384", + "RS512", + "ES256", + "ES384", + "ES512", + "PS256", + "PS384", + "PS512" + ] + }, + "publicKey": { + "type": "string" + } + }, + "required": [ + "signature", + "alg" + ], + "additionalProperties": false + }, + "sequenceProtection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sequenceName": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "sequenceName", + "position" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "authorIdentity" + ] + }, + "schemaUri": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "version", + "time" + ], + "additionalProperties": false + }, + "data": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "triggers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "MANUAL", + "EIFFEL_EVENT", + "SOURCE_CHANGE", + "TIMER", + "OTHER" + ] + }, + "description": { + "type": "string" + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + }, + "executionType": { + "type": "string", + "enum": [ + "MANUAL", + "SEMI_AUTOMATED", + "AUTOMATED", + "OTHER" + ] + }, + "customData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": {} + }, + "required": [ + "key", + "value" + ], + "additionalProperties": false + } + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "domainId": { + "type": "string" + } + }, + "required": [ + "type", + "target" + ], + "additionalProperties": false + } + } + }, + "required": [ + "meta", + "data", + "links" + ], + "additionalProperties": false +} diff --git a/schemas/EiffelTestCaseTriggeredEvent/3.5.0.json b/schemas/EiffelTestCaseTriggeredEvent/3.5.0.json new file mode 100644 index 00000000..b6171e37 --- /dev/null +++ b/schemas/EiffelTestCaseTriggeredEvent/3.5.0.json @@ -0,0 +1,266 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "type": { + "type": "string", + "enum": [ + "EiffelTestCaseTriggeredEvent" + ] + }, + "version": { + "type": "string", + "enum": [ + "3.5.0" + ], + "default": "3.5.0" + }, + "time": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "source": { + "type": "object", + "properties": { + "domainId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "name": { + "type": "string" + }, + "serializer": { + "type": "string", + "pattern": "^pkg:" + }, + "uri": { + "type": "string" + } + }, + "additionalProperties": false + }, + "security": { + "type": "object", + "properties": { + "authorIdentity": { + "type": "string" + }, + "integrityProtection": { + "type": "object", + "properties": { + "signature": { + "type": "string" + }, + "alg": { + "type": "string", + "enum": [ + "HS256", + "HS384", + "HS512", + "RS256", + "RS384", + "RS512", + "ES256", + "ES384", + "ES512", + "PS256", + "PS384", + "PS512" + ] + }, + "publicKey": { + "type": "string" + } + }, + "required": [ + "signature", + "alg" + ], + "additionalProperties": false + }, + "sequenceProtection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sequenceName": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "sequenceName", + "position" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "authorIdentity" + ] + }, + "schemaUri": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "version", + "time" + ], + "additionalProperties": false + }, + "data": { + "type": "object", + "properties": { + "testCase": { + "type": "object", + "properties": { + "tracker": { + "type": "string" + }, + "id": { + "type": "string" + }, + "version": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "required": [ + "id" + ], + "additionalProperties": false + }, + "recipeId": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "triggers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "MANUAL", + "EIFFEL_EVENT", + "SOURCE_CHANGE", + "TIMER", + "OTHER" + ] + }, + "description": { + "type": "string" + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + }, + "executionType": { + "type": "string", + "enum": [ + "MANUAL", + "SEMI_AUTOMATED", + "AUTOMATED", + "OTHER" + ] + }, + "parameters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "additionalProperties": false + } + }, + "customData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": {} + }, + "required": [ + "key", + "value" + ], + "additionalProperties": false + } + } + }, + "required": [ + "testCase" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "domainId": { + "type": "string" + } + }, + "required": [ + "type", + "target" + ], + "additionalProperties": false + } + } + }, + "required": [ + "meta", + "data", + "links" + ], + "additionalProperties": false +} diff --git a/schemas/EiffelTestSuiteStartedEvent/3.4.0.json b/schemas/EiffelTestSuiteStartedEvent/3.4.0.json new file mode 100644 index 00000000..5d212600 --- /dev/null +++ b/schemas/EiffelTestSuiteStartedEvent/3.4.0.json @@ -0,0 +1,250 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "type": { + "type": "string", + "enum": [ + "EiffelTestSuiteStartedEvent" + ] + }, + "version": { + "type": "string", + "enum": [ + "3.4.0" + ], + "default": "3.4.0" + }, + "time": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "source": { + "type": "object", + "properties": { + "domainId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "name": { + "type": "string" + }, + "serializer": { + "type": "string", + "pattern": "^pkg:" + }, + "uri": { + "type": "string" + } + }, + "additionalProperties": false + }, + "security": { + "type": "object", + "properties": { + "authorIdentity": { + "type": "string" + }, + "integrityProtection": { + "type": "object", + "properties": { + "signature": { + "type": "string" + }, + "alg": { + "type": "string", + "enum": [ + "HS256", + "HS384", + "HS512", + "RS256", + "RS384", + "RS512", + "ES256", + "ES384", + "ES512", + "PS256", + "PS384", + "PS512" + ] + }, + "publicKey": { + "type": "string" + } + }, + "required": [ + "signature", + "alg" + ], + "additionalProperties": false + }, + "sequenceProtection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sequenceName": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "sequenceName", + "position" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "authorIdentity" + ] + }, + "schemaUri": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "version", + "time" + ], + "additionalProperties": false + }, + "data": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "types": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ACCESSIBILITY", + "BACKUP_RECOVERY", + "COMPATIBILITY", + "CONVERSION", + "DISASTER_RECOVERY", + "FUNCTIONAL", + "INSTALLABILITY", + "INTEROPERABILITY", + "LOCALIZATION", + "MAINTAINABILITY", + "PERFORMANCE", + "PORTABILITY", + "PROCEDURE", + "RELIABILITY", + "SECURITY", + "STABILITY", + "USABILITY" + ] + } + }, + "liveLogs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "uri": { + "type": "string" + } + }, + "required": [ + "name", + "uri" + ], + "additionalProperties": false + } + }, + "customData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": {} + }, + "required": [ + "key", + "value" + ], + "additionalProperties": false + } + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" + }, + "domainId": { + "type": "string" + } + }, + "required": [ + "type", + "target" + ], + "additionalProperties": false + } + } + }, + "required": [ + "meta", + "data", + "links" + ], + "additionalProperties": false +}