Skip to content

Commit

Permalink
Add {mediaType,tags} to data.{liveLogs,persistentLogs}
Browse files Browse the repository at this point in the history
These new members for log location objects allows event producers to
describe the log locations in a more structured manner by including
tags and the media type of the log payload. These members can e.g.
be used to distinguish between different representations of the same
log (say, HTML and plain text) or identify logs from a particular tool.

The schemas don't contain a regular expression for the media type member
and accept any string. This could be seen as a drawback, but media types
are pretty complicated beasts so instead of risking a regexp bug that
blocks legitimate media types we're lax about these strings, similar to
how ArtC's data.identity doesn't try to include a regular expression for
matching all package URLs.
  • Loading branch information
magnusbaeck committed Aug 1, 2021
1 parent 2d86b28 commit fe37e08
Show file tree
Hide file tree
Showing 18 changed files with 1,425 additions and 24 deletions.
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelActivityFinishedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,21 @@ __Type:__ Object[]
__Required:__ No
__Description:__ An array of persistent log files generated during execution.

#### data.persistentLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.persistentLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.persistentLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.persistentLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -211,6 +221,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 3.1.0 | Current version | Add `data.persistentLogs.{mediaType,tags}`. |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection | (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelActivityFinishedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 1.1.0 | [edition-toulouse](../../../tree/edition-toulouse) | Multiple links of type FLOW_CONTEXT allowed. |
Expand Down
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelActivityStartedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,21 @@ __Type:__ Object[]
__Required:__ No
__Description:__ An array of live log files available during execution. These shall not be presumed to be stored persistently; in other words, once the activity has finished there is no guarantee that these links are valid. Persistently stored logs shall be (re-)declared by [EiffelActivityFinishedEvent](./EiffelActivityFinishedEvent.md).

#### data.liveLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.liveLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.liveLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.liveLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -200,6 +210,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 4.1.0 | Current version | Add `data.liveLogs.{mediaType,tags}`. |
| 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)) |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelActivityStartedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
Expand Down
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelTestCaseFinishedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,21 @@ __Type:__ Object[]
__Required:__ No
__Description:__ An array of persistent log files generated during execution.

#### data.persistentLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.persistentLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.persistentLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.persistentLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -238,6 +248,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 3.1.0 | Current version | Add `data.persistentLogs.{mediaType,tags}`. |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection | (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelTestCaseFinishedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 1.1.0 | [edition-toulouse](../../../tree/edition-toulouse) | Multiple links of type FLOW_CONTEXT allowed. |
Expand Down
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelTestCaseStartedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,21 @@ __Type:__ Object[]
__Required:__ No
__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 case execution has finished there is no guarantee that these links are valid. Persistently stored logs shall be (re-)declared by [EiffelTestCaseFinishedEvent](./EiffelTestCaseFinishedEvent.md).

#### data.liveLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.liveLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.liveLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.liveLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -201,6 +211,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 3.1.0 | Current version | Add `data.liveLogs.{mediaType,tags}`. |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection | (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelTestCaseStartedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 1.1.0 | [edition-toulouse](../../../tree/edition-toulouse) | Multiple links of type FLOW_CONTEXT allowed. |
Expand Down
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,21 @@ __Type:__ Object[]
__Required:__ No
__Description:__ An array of persistent log files generated during execution.

#### data.persistentLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.persistentLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.persistentLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.persistentLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -221,6 +231,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 3.1.0 | Current version | Add `data.persistentLogs.{mediaType,tags}`. |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection | (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 1.1.0 | [edition-toulouse](../../../tree/edition-toulouse) | Multiple links of type FLOW_CONTEXT allowed. |
Expand Down
11 changes: 11 additions & 0 deletions eiffel-vocabulary/EiffelTestSuiteStartedEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,21 @@ __Type:__ Object[]
__Required:__ No
__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).

#### data.liveLogs.mediaType
__Type:__ String
__Required:__ No
__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.

#### data.liveLogs.name
__Type:__ String
__Required:__ Yes
__Description:__ The name of the log file.

#### data.liveLogs.tags
__Type:__ String[]
__Required:__ No
__Description:__ Arbitrary tags and keywords that describe this log.

#### data.liveLogs.uri
__Type:__ String
__Required:__ Yes
Expand Down Expand Up @@ -207,6 +217,7 @@ __Description:__ The number of the event within the named sequence.
## Version History
| Version | Introduced in | Changes |
| --------- | ------------------------------------------------------ | --------------------------------------- |
| 3.1.0 | Current version | Add `data.liveLogs.{mediaType,tags}`. |
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection | (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)) |
| 2.0.0 | [dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md) | Introduced purl identifiers instead of GAVs (see [Issue 182](https://github.com/eiffel-community/eiffel/issues/182)) |
| 1.1.0 | [edition-toulouse](../../../tree/edition-toulouse) | Multiple links of type FLOW_CONTEXT allowed. |
Expand Down
17 changes: 12 additions & 5 deletions examples/events/EiffelActivityFinishedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"meta": {
"type": "EiffelActivityFinishedEvent",
"version": "3.0.0",
"version": "3.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
Expand All @@ -12,12 +12,19 @@
},
"persistentLogs": [
{
"name": "firstLog",
"uri": "http://myHost.com/firstLog"
"name": "firstLog (HTML)",
"mediaType": "text/html",
"uri": "http://myHost.com/firstLog.html"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
"name": "firstLog (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "http://myHost.com/firstLog.log"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
}
]
},
Expand Down
13 changes: 10 additions & 3 deletions examples/events/EiffelActivityStartedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
{
"meta": {
"type": "EiffelActivityStartedEvent",
"version": "3.0.0",
"version": "4.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
"data": {
"executionUri": "https://my.jenkins.host/myJob/43",
"liveLogs": [
{
"name": "My build log",
"uri": "file:///tmp/logs/data.log"
"name": "My build log (HTML)",
"mediaType": "text/html",
"uri": "file:///tmp/logs/data.html"
},
{
"name": "My build log (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "file:///tmp/logs/data.log"
}
]
},
Expand Down
17 changes: 12 additions & 5 deletions examples/events/EiffelTestCaseFinishedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"meta": {
"type": "EiffelTestCaseFinishedEvent",
"version": "3.0.0",
"version": "3.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
Expand All @@ -27,12 +27,19 @@
},
"persistentLogs": [
{
"name": "firstLog",
"uri": "http://myHost.com/firstLog"
"name": "firstLog (HTML)",
"mediaType": "text/html",
"uri": "http://myHost.com/firstLog.html"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
"name": "firstLog (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "http://myHost.com/firstLog.log"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
}
]
},
Expand Down
13 changes: 10 additions & 3 deletions examples/events/EiffelTestCaseStartedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
{
"meta": {
"type": "EiffelTestCaseStartedEvent",
"version": "3.0.0",
"version": "3.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
"data": {
"executor": "My Test Framework",
"liveLogs": [
{
"name": "My test log",
"uri": "file:///tmp/logs/data.log"
"name": "My text log (HTML)",
"mediaType": "text/html",
"uri": "file:///tmp/logs/data.html"
},
{
"name": "My test log (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "file:///tmp/logs/data.log"
}
]
},
Expand Down
17 changes: 12 additions & 5 deletions examples/events/EiffelTestSuiteFinishedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"meta": {
"type": "EiffelTestSuiteFinishedEvent",
"version": "3.0.0",
"version": "3.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
Expand All @@ -13,12 +13,19 @@
},
"persistentLogs": [
{
"name": "firstLog",
"uri": "http://myHost.com/firstLog"
"name": "firstLog (HTML)",
"mediaType": "text/html",
"uri": "http://myHost.com/firstLog.html"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
"name": "firstLog (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "http://myHost.com/firstLog.log"
},
{
"name": "otherLog",
"uri": "isbn:0-486-27557-4"
}
]
},
Expand Down
13 changes: 10 additions & 3 deletions examples/events/EiffelTestSuiteStartedEvent/simple.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"meta": {
"type": "EiffelTestSuiteStartedEvent",
"version": "3.0.0",
"version": "3.1.0",
"time": 1234567890,
"id": "aaaaaaaa-bbbb-5ccc-8ddd-eeeeeeeeeee0"
},
Expand All @@ -16,8 +16,15 @@
],
"liveLogs": [
{
"name": "My test log",
"uri": "file:///tmp/logs/data.log"
"name": "My text log (HTML)",
"mediaType": "text/html",
"uri": "file:///tmp/logs/data.html"
},
{
"name": "My test log (plain text)",
"mediaType": "text/plain",
"tags": ["plain"],
"uri": "file:///tmp/logs/data.log"
}
]
},
Expand Down

0 comments on commit fe37e08

Please sign in to comment.