-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added all events slated for Drop 1 and updated README with links. #3
Changes from 4 commits
5106884
17b85f0
0a6c7f8
aac7396
6e8b8c0
05e8dd6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# EiffelActivityFinishedEvent | ||
The EiffelActivityFinishedEvent declares that a previously queued activity (declared by [EiffelActivityQueuedEvent](./EiffelActivityQueuedEvent.md)) has finished. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This indicates that one could skip the started event which is not wanted behavior since we have the dequeued event for that case. Suggest to remove "previously queued" or change to "previously started". |
||
|
||
## Data Members | ||
### data.outcome | ||
__Type:__ Object | ||
__Required:__ Yes | ||
__Description:__ The outcome of the activity. | ||
|
||
#### data.outcome.verdict | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Legal values:__ SUCCESS, ???, ????, ABORTED, TIMEOUT, INCONCLUSIVE | ||
__Description:__ A terse standardized verdict of the activity, designed to be machine readable. | ||
SUCCESS signifies that the activity was concluded and the outcome matched expectations. | ||
??? signifies that the activity was concluded, but the outcome did not match expectations. To exemplify, a compilation job was successfully invoked, but compilation failed. | ||
???? signifies that the activity could not be successfully executed. To exemplify, a compilation could not be invoked, e.g. due to misconfiguration or environment issues. | ||
ABORTED signifies that the activity was aborted before it could be concluded. | ||
TIMEOUT signifies that the activity did not conclude within the allowed time frame. | ||
INCONCLUSIVE signifies that the outcome of the activity could not be determined. | ||
|
||
#### data.outcome.description | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ A verbose description of the activity outcome, designed to provide human readers with further information. | ||
|
||
### data.persistentLogs | ||
__Type:__ Object[] | ||
__Required:__ No | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have an inconsistency here on required... top object no, child object yes. Maybe intentional? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Intentional. The intent is: the object is optional, but if it's present, then the child may or may not be required. So it's a conditional Required if, you will. I thought about it when typing it, realizing it might not be quite obvious :) Any suggestions? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As I pointed on schemas... JsonSchema's ability to process this I am validating right now... logic is clear and not-insensible as I pointed in my comments over there... it is just a matter of confirming if we can implement this in some meaningful way. |
||
__Description:__ An array of persistent log files generated during execution. | ||
|
||
#### data.persistentLogs.name | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The name of the log file. | ||
|
||
#### data.persistentLogs.uri | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The URI at which the log can be retrieved. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,8 +22,13 @@ __Description:__ The circumstances triggering the activity. | |
#### data.trigger.type | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Legal values:__ MANUAL, EIFFEL_EVENT, REBUILD, SOURCE_CHANGE, TIMER, OTHER | ||
__Description:__ The type of trigger. | ||
__Legal values:__ MANUAL, EIFFEL_EVENT, SOURCE_CHANGE, TIMER, OTHER | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A question here; what about the activities that are queued due to multiple different types of triggers? (This could happen if a job is not allowed to run concurrently and put into queue and mergeable queue is used - sorry for thinking in Jenkins terms.) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Arguably something of a corner case, but a fair point. I don't see any reason to not make trigger an array. |
||
__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 in __links.causes__. | ||
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. | ||
|
||
#### data.trigger.description | ||
__Type:__ String | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# EiffelActivityStartedEvent | ||
The EiffelActivityStartedEvent declares that a previously queued activity (declared by [EiffelActivityQueuedEvent](./EiffelActivityQueuedEvent.md)) has started. | ||
|
||
## Data Members | ||
### data.executionUri | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ Any URI at which further information about the execution may be found; a typical use case is to link a CI server job execution page. | ||
|
||
### data.liveLogs | ||
__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.name | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The name of the log file. | ||
|
||
#### data.liveLogs.uri | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The URI at which the log can be retrieved. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# EiffelArtifactCreatedEvent | ||
The EiffelArtifactCreatedEvent declares that a software artifact has been created, what its coordinates are, what it contains and how it was created. | ||
|
||
## Data Members | ||
### data.gav | ||
__Type:__ Object | ||
__Required:__ Yes | ||
__Description:__ The [GAV](https://maven.apache.org/guides/mini/guide-naming-conventions.html) of the created artifact. | ||
|
||
#### data.gav.groupId | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The groupId of the created artifact. | ||
|
||
#### data.gav.artifactId | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The artifactId of the created artifact. | ||
|
||
#### data.gav.version | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The version of the created artifact. | ||
|
||
### data.fileInformation | ||
__Type:__ Object[] | ||
__Required:__ No | ||
__Description:__ A list of the artifact file contents, following the standard established by [Apache Maven](https://maven.apache.org/pom.html). | ||
|
||
#### data.fileInformation.classifier | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The classifier of the file within the artifact. If none, an empty string shall be used. | ||
|
||
#### data.fileInformation.extension | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The extension of the file within the artifact. If none, an empty string shall be used. | ||
|
||
### data.buildCommand | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ The command used to build the artifact within the identified environment. Used for reproducability purposes. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# EiffelArtifactPublishedEvent | ||
The EiffelArtifactPublishedEvent declares that a software artifact (declared by [EiffelArtifactCreatedEvent](./EiffelArtifactCreatedEvent.md)) has been published and is consequently available for retrieval at one or more locations. | ||
|
||
## Data Members | ||
### data.locations | ||
__Type:__ Object[] | ||
__Required:__ Yes | ||
__Description:__ A list of locations at which the artifact may be retrieved. | ||
|
||
#### data.locations.type | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Legal values:__ ARTIFACTORY, NEXUS, PLAIN, OTHER | ||
__Description:__ The type of location. May be used by (automated) readers to understand the method of retrieval, particularly with regards to authentication. | ||
ARTIFACTORY signifies an [Artifactory](https://www.jfrog.com/artifactory/) | ||
NEXUS signifies a [Nexus](http://www.sonatype.org/nexus/) | ||
PLAIN signifies a plain HTTP GET request. | ||
OTHER signifies other methods of retrieval. Note that using this type likely requires some foreknowledge on part of the reader in order to fetch the artifact. | ||
|
||
#### data.locations.uri | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The URI at which the artifact can be retrieved. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# EiffelConfidenceLevelModifiedEvent | ||
The EiffelConfidenceLevelModifiedEvent declares that an entity has achieved (or failed to achieve) a certain level of confidence, or in a broader sense to tag it. This is particularly useful for promoting various engineering artifacts, such as product revisions, through the continuous integration and delivery pipelin. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The last part of the first sentence "or in a broader sense to tag it" could be improved. Also a typo at the end of the paragraph: pipelin -> pipeline |
||
|
||
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 "reseabableToCustomerX". 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. | ||
|
||
## Data Members | ||
### data.name | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Description:__ The name of the confidence level. It is recommended for confidence level names to conform with camelCase formatting, in line with the format of key names of the Eiffel protocol as a whole. | ||
|
||
### data.value | ||
__Type:__ String | ||
__Required:__ Yes | ||
__Legal values:__ SUCCESS, FAILURE, INCONCLUSIVE | ||
__Description:__ The value of the confidence level. | ||
SUCCESS signifies that the confidence level has been successfully achieved. | ||
FAILURE signifies that the confidence level could not be achieved. | ||
INCONCLUSIVE signifies that achievement of the confidence level could not be determined. | ||
|
||
### data.issuer | ||
__Type:__ Object | ||
__Required:__ No | ||
__Description:__ The individual or entity issuing the confidence level. | ||
|
||
#### data.issuer.name | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ The name of the issuer. | ||
|
||
#### data.issuer.email | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ The e-mail address of the issuer. | ||
|
||
#### data.issuer.id | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ Any identity, alias or handle of the issuer, such as a corporate id or username. | ||
|
||
#### data.issuer.group | ||
__Type:__ String | ||
__Required:__ No | ||
__Description:__ Any group, such as a development team, committee or test group, to which the issuer belongs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EiffelActivityFinished -> EiffelActivityFinishedEvent
EiffelActivityFinished.md -> EiffelActivityFinishedEvent.md