From a7f76a159c46999fc7b6e4812daa69cc796d8b55 Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Wed, 22 Mar 2017 12:54:13 +0100 Subject: [PATCH 1/7] Trying out comment syntax. --- LICENSE | 2 +- README.md | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index e3f7d3fb..0091e1e6 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2016 Ericsson AB. + Copyright 2017 Ericsson AB. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index f07accac..b948ceee 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ + + # Eiffel The Eiffel framework enables technology agnostic enterprise scale continuous integration and delivery with maintained scalability, flexibility and traceability. Eiffel is based on the concept of decentralized real time messaging, both to drive the continuous integration and delivery system and to document it. From c25cfc9b7af2fdf6f09edce272df5de5bdabcc93 Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Wed, 22 Mar 2017 13:09:36 +0100 Subject: [PATCH 2/7] Added license notice to all .md and .py files. Notice was not added to .json and .gliffy files (which are also JSON files) as comments are not supported. Arguably that is less of a concern: the important thing is that documentation and code contains the license notice. --- customization/custom-data.md | 16 ++++++++++++++++ customization/custom-events.md | 16 ++++++++++++++++ .../compositions-and-validity-checking.md | 16 ++++++++++++++++ .../event-design-guidelines.md | 16 ++++++++++++++++ eiffel-syntax-and-usage/event-structure.md | 16 ++++++++++++++++ eiffel-syntax-and-usage/the-links-object.md | 16 ++++++++++++++++ eiffel-syntax-and-usage/the-meta-object.md | 16 ++++++++++++++++ eiffel-syntax-and-usage/versioning.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelActivityCanceledEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelActivityFinishedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelActivityStartedEvent.md | 16 ++++++++++++++++ .../EiffelActivityTriggeredEvent.md | 16 ++++++++++++++++ .../EiffelAnnouncementPublishedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelArtifactCreatedEvent.md | 16 ++++++++++++++++ .../EiffelArtifactPublishedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelArtifactReusedEvent.md | 16 ++++++++++++++++ .../EiffelCompositionDefinedEvent.md | 16 ++++++++++++++++ .../EiffelConfidenceLevelModifiedEvent.md | 16 ++++++++++++++++ .../EiffelEnvironmentDefinedEvent.md | 16 ++++++++++++++++ .../EiffelFlowContextDefinedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelIssueVerifiedEvent.md | 16 ++++++++++++++++ .../EiffelSourceChangeCreatedEvent.md | 16 ++++++++++++++++ .../EiffelSourceChangeSubmittedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelTestCaseFinishedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelTestCaseStartedEvent.md | 16 ++++++++++++++++ ...lTestExecutionRecipeCollectionCreatedEvent.md | 16 ++++++++++++++++ .../EiffelTestSuiteFinishedEvent.md | 16 ++++++++++++++++ eiffel-vocabulary/EiffelTestSuiteStartedEvent.md | 16 ++++++++++++++++ .../reference-data-sets/default/generator.py | 15 +++++++++++++++ examples/validate.py | 15 +++++++++++++++ .../event-aggregation-and-analysis.md | 16 ++++++++++++++++ implementations/event-dispatch.md | 16 ++++++++++++++++ implementations/event-persistence.md | 16 ++++++++++++++++ implementations/visualization.md | 16 ++++++++++++++++ introduction/introduction.md | 16 ++++++++++++++++ usage-examples/build-avoidance.md | 16 ++++++++++++++++ usage-examples/confidence-level-joining.md | 16 ++++++++++++++++ usage-examples/delivery-interface.md | 16 ++++++++++++++++ usage-examples/pipeline-monitoring.md | 16 ++++++++++++++++ usage-examples/reference-data-sets/default.md | 16 ++++++++++++++++ 40 files changed, 638 insertions(+) diff --git a/customization/custom-data.md b/customization/custom-data.md index abe7a1e1..22106485 100644 --- a/customization/custom-data.md +++ b/customization/custom-data.md @@ -1,3 +1,19 @@ + + # Custom Data Eiffel events are designed to be generalizable to a wide array of cases and applications. To that end they often contain a number of optional data members and links which may or may not be used, depending on the level of detail required and/or feasible in any given situation. The underlying principle is that _what_ one communicates is volitional, but not _how_ one communicates it. This is to minimize the need for local dialects and thereby provide the best possible conditions for a non-initiated event consumer to make sense of any given set of events. diff --git a/customization/custom-events.md b/customization/custom-events.md index 14d3d0d2..fbd81f2c 100644 --- a/customization/custom-events.md +++ b/customization/custom-events.md @@ -1,3 +1,19 @@ + + # Custom Events Eiffel offers a rich vocabulary designed to cover the vast majority of continuous integration and delivery use cases. Situations may arise where the defined events are not sufficient, however. In such circumstances, users are encouraged to spawn a discussion by [creating an Issue in the Eiffel repository](https://github.com/Ericsson/eiffel/issues) - perhaps the existing vocabulary can be used, or perhaps the new use case warrants changes to the Eiffel event definitions. diff --git a/eiffel-syntax-and-usage/compositions-and-validity-checking.md b/eiffel-syntax-and-usage/compositions-and-validity-checking.md index 92c8ef7f..8904c9e0 100644 --- a/eiffel-syntax-and-usage/compositions-and-validity-checking.md +++ b/eiffel-syntax-and-usage/compositions-and-validity-checking.md @@ -1,3 +1,19 @@ + + # Compositions and validity checking A central concept in Eiffel is that of _compositions_. A composition represents a set of source, artifact and documentation items defined by [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md) for some purpose, e.g. forming an execution environment, defining the contents of a delivery or instructing the integration of a system. Compositions may be very simple, consisting of a single item, or very large, containing any number of items in nested composition structures. diff --git a/eiffel-syntax-and-usage/event-design-guidelines.md b/eiffel-syntax-and-usage/event-design-guidelines.md index 5cd40b48..32b4f1c5 100644 --- a/eiffel-syntax-and-usage/event-design-guidelines.md +++ b/eiffel-syntax-and-usage/event-design-guidelines.md @@ -1,3 +1,19 @@ + + # Event Design Guidelines The design of Eiffel events is governed by the following guidelines: diff --git a/eiffel-syntax-and-usage/event-structure.md b/eiffel-syntax-and-usage/event-structure.md index e491a7a5..3741e4f4 100644 --- a/eiffel-syntax-and-usage/event-structure.md +++ b/eiffel-syntax-and-usage/event-structure.md @@ -1,3 +1,19 @@ + + # Event Structure Eiffel events are represented as JSON objects. These JSON objects contain three required members: __meta__, __data__ and __links__. diff --git a/eiffel-syntax-and-usage/the-links-object.md b/eiffel-syntax-and-usage/the-links-object.md index cc1df1bf..0b291a53 100644 --- a/eiffel-syntax-and-usage/the-links-object.md +++ b/eiffel-syntax-and-usage/the-links-object.md @@ -1,3 +1,19 @@ + + # The Links Object 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. diff --git a/eiffel-syntax-and-usage/the-meta-object.md b/eiffel-syntax-and-usage/the-meta-object.md index d406295b..c5f44cc6 100644 --- a/eiffel-syntax-and-usage/the-meta-object.md +++ b/eiffel-syntax-and-usage/the-meta-object.md @@ -1,3 +1,19 @@ + + # The Meta Object The __meta__ object contains meta-information describing the event: when it was created, where it came from, its type et cetera. The __meta__ object contains the same members regardless of __meta.type__[1](#footnote1), with the caveat that certain members are optional and the tendency to use them may vary with event type. diff --git a/eiffel-syntax-and-usage/versioning.md b/eiffel-syntax-and-usage/versioning.md index d1eede82..0be9d2b3 100644 --- a/eiffel-syntax-and-usage/versioning.md +++ b/eiffel-syntax-and-usage/versioning.md @@ -1,3 +1,19 @@ + + # Versioning In Eiffel, each individual event type is versioned independently. This version is declared by the __meta.version__ property (see [The Meta Object](./the-meta-object.md)) and follows the [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html) format. The documentation of each event type lists the complete version history of that type, including links to commits introducing older versions of the type. diff --git a/eiffel-vocabulary/EiffelActivityCanceledEvent.md b/eiffel-vocabulary/EiffelActivityCanceledEvent.md index cfeebdbb..b7ad59dd 100644 --- a/eiffel-vocabulary/EiffelActivityCanceledEvent.md +++ b/eiffel-vocabulary/EiffelActivityCanceledEvent.md @@ -1,3 +1,19 @@ + + # EiffelActivityCanceledEvent (ActC) The EiffelActivityCanceledEvent signals that a previously triggered activity execution has been canceled _before it has started_. This is typically used in queuing situations where a queued execution is dequeued. It is recommended that __CAUSE__ links be used to indicate the reason. diff --git a/eiffel-vocabulary/EiffelActivityFinishedEvent.md b/eiffel-vocabulary/EiffelActivityFinishedEvent.md index ea2a880b..b5ea738b 100644 --- a/eiffel-vocabulary/EiffelActivityFinishedEvent.md +++ b/eiffel-vocabulary/EiffelActivityFinishedEvent.md @@ -1,3 +1,19 @@ + + # EiffelActivityFinishedEvent (ActF) The EiffelActivityFinishedEvent declares that a previously started activity (declared by [EiffelActivityTriggeredEvent](./EiffelActivityTriggeredEvent.md) followed by [EiffelActivityStartedEvent](./EiffelActivityStartedEvent.md)) has finished. diff --git a/eiffel-vocabulary/EiffelActivityStartedEvent.md b/eiffel-vocabulary/EiffelActivityStartedEvent.md index 73d0f36b..d5c747fc 100644 --- a/eiffel-vocabulary/EiffelActivityStartedEvent.md +++ b/eiffel-vocabulary/EiffelActivityStartedEvent.md @@ -1,3 +1,19 @@ + + # EiffelActivityStartedEvent (ActS) The EiffelActivityStartedEvent declares that a previously triggered activity (declared by [EiffelActivityTriggeredEvent](./EiffelActivityTriggeredEvent.md)) has started. diff --git a/eiffel-vocabulary/EiffelActivityTriggeredEvent.md b/eiffel-vocabulary/EiffelActivityTriggeredEvent.md index ddcc16e4..1a08fae7 100644 --- a/eiffel-vocabulary/EiffelActivityTriggeredEvent.md +++ b/eiffel-vocabulary/EiffelActivityTriggeredEvent.md @@ -1,3 +1,19 @@ + + # EiffelActivityTriggeredEvent (ActT) 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)). diff --git a/eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md b/eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md index 599e8ddc..f896e3ee 100644 --- a/eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md +++ b/eiffel-vocabulary/EiffelAnnouncementPublishedEvent.md @@ -1,3 +1,19 @@ + + # EiffelAnnouncementPublishedEvent (AnnP) The EiffelAnnouncementPublishedEvent represents an announcement, technically regarding any topic but typically used to communicate any incidents or status updates regarding the continuous integration and delivery pipeline. This information can then be favorably displayed in visualization and dashboarding applications. diff --git a/eiffel-vocabulary/EiffelArtifactCreatedEvent.md b/eiffel-vocabulary/EiffelArtifactCreatedEvent.md index ac3d68d5..397e9560 100644 --- a/eiffel-vocabulary/EiffelArtifactCreatedEvent.md +++ b/eiffel-vocabulary/EiffelArtifactCreatedEvent.md @@ -1,3 +1,19 @@ + + # EiffelArtifactCreatedEvent (ArtC) The EiffelArtifactCreatedEvent declares that a software artifact has been created, what its coordinates are, what it contains and how it was created. diff --git a/eiffel-vocabulary/EiffelArtifactPublishedEvent.md b/eiffel-vocabulary/EiffelArtifactPublishedEvent.md index feef1ab7..2e8f580e 100644 --- a/eiffel-vocabulary/EiffelArtifactPublishedEvent.md +++ b/eiffel-vocabulary/EiffelArtifactPublishedEvent.md @@ -1,3 +1,19 @@ + + # EiffelArtifactPublishedEvent (ArtP) 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. diff --git a/eiffel-vocabulary/EiffelArtifactReusedEvent.md b/eiffel-vocabulary/EiffelArtifactReusedEvent.md index 3b21af8e..0018365b 100644 --- a/eiffel-vocabulary/EiffelArtifactReusedEvent.md +++ b/eiffel-vocabulary/EiffelArtifactReusedEvent.md @@ -1,3 +1,19 @@ + + # EiffelArtifactReusedEvent (ArtR) The EiffelArtifactReusedEvent declares that an identified [EiffelArtifactCreatedEvent](./EiffelArtifactCreatedEvent.md) has been _reused_ for an identified [EiffelCompositionDefinedEvent](./EiffelCompositionDefinedEvent.md). This means that it is logically equivalent to an artifact that would have been built from that composition, and can be used for build avoidance (see the [Build Avoidance Usage Example](../usage-examples/build-avoidance.md) for more information). diff --git a/eiffel-vocabulary/EiffelCompositionDefinedEvent.md b/eiffel-vocabulary/EiffelCompositionDefinedEvent.md index 24caf958..cdef0387 100644 --- a/eiffel-vocabulary/EiffelCompositionDefinedEvent.md +++ b/eiffel-vocabulary/EiffelCompositionDefinedEvent.md @@ -1,3 +1,19 @@ + + # EiffelCompositionDefinedEvent (CD) The EiffelCompositionDefinedEvent declares a composition of items (artifacts, sources and other compositions) has been defined, typically with the purpose of enabling further downstream artifacts to be generated. diff --git a/eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md b/eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md index 09797079..2da45b43 100644 --- a/eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md +++ b/eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md @@ -1,3 +1,19 @@ + + # EiffelConfidenceLevelModifiedEvent (CLM) 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. diff --git a/eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md b/eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md index 319e4967..a354b9fc 100644 --- a/eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md +++ b/eiffel-vocabulary/EiffelEnvironmentDefinedEvent.md @@ -1,3 +1,19 @@ + + # EiffelEnvironmentDefinedEvent (ED) The EiffelEnvironmentDefinedEvent declares an environment which may be referenced from other events in order to secure traceability to the conditions under which an artifact was created or a test was executed. Depending on the technology domain, the nature of an environment varies greatly however: it may be a virtual image, a complete mechatronic system of millions of independent parts, or anything in between. Consequently, a concise yet complete and generic syntax for describing any environment is futile. diff --git a/eiffel-vocabulary/EiffelFlowContextDefinedEvent.md b/eiffel-vocabulary/EiffelFlowContextDefinedEvent.md index fca31e1f..5f23bf8a 100644 --- a/eiffel-vocabulary/EiffelFlowContextDefinedEvent.md +++ b/eiffel-vocabulary/EiffelFlowContextDefinedEvent.md @@ -1,3 +1,19 @@ + + # EiffelFlowContextDefined (FCD) The EiffelFlowContextDefined describes the context of other events, answering questions such as "Which project is change part of?" or "Which track does artifact belong to?". In this way it offers a method of classifying and structuring one's continuous integration and delivery system and thereby facilitaring traceability and searchability. diff --git a/eiffel-vocabulary/EiffelIssueVerifiedEvent.md b/eiffel-vocabulary/EiffelIssueVerifiedEvent.md index a2fdc783..856cf576 100644 --- a/eiffel-vocabulary/EiffelIssueVerifiedEvent.md +++ b/eiffel-vocabulary/EiffelIssueVerifiedEvent.md @@ -1,3 +1,19 @@ + + # EiffelIssueVerifiedEvent (IV) The EiffelIssueVerifiedEvent declares that an issue, typically a requirement, has been verified by some means. It is different from [EiffelTestCaseFinishedEvent](./EiffelTestCaseFinishedEvent.md) in that multiple test case executions may serve as the basis for a single verification or, conversely, multiple issues may be verified based on a single test case execution. diff --git a/eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md b/eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md index 2e964d57..d301fa56 100644 --- a/eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md +++ b/eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md @@ -1,3 +1,19 @@ + + # EiffelSourceChangeCreatedEvent (SCC) The EiffelSourceChangeCreatedEvent declares that a change to sources has been made, but not yet submitted (see [EiffelSourceChangeSubmittedEvent](./EiffelSourceChangeSubmittedEvent.md)). This can be used to represent a change done on a private branch, undergoing review or made in a forked repository. Unlike EiffelSourceChangeSubmittedEvent, EiffelSourceChangeCreatedEvent _describes the change_ in terms of who authored it and which issues it addressed. diff --git a/eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md b/eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md index e262a119..a857eca2 100644 --- a/eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md +++ b/eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md @@ -1,3 +1,19 @@ + + # EiffelSourceChangeSubmittedEvent (SCS) The EiffelSourceChangeSubmittedEvent declares that a change has been integrated into to a shared source branch of interest (e.g. "master", "dev" or "mainline") as opposed to a private or local branch. Note that it does not describe what has changed, but instead uses the __CHANGE__ link type to reference [EiffelSourceChangeCreatedEvent](./EiffelSourceChangeCreatedEvent.md). diff --git a/eiffel-vocabulary/EiffelTestCaseFinishedEvent.md b/eiffel-vocabulary/EiffelTestCaseFinishedEvent.md index 3d482554..08dcf610 100644 --- a/eiffel-vocabulary/EiffelTestCaseFinishedEvent.md +++ b/eiffel-vocabulary/EiffelTestCaseFinishedEvent.md @@ -1,3 +1,19 @@ + + # EiffelTestCaseFinishedEvent (TCF) The EiffelTestCaseFinishedEvent declares that a previously started test case (declared by [EiffelTestCaseStartedEvent](./EiffelTestCaseStartedEvent.md)) has finished and reports the outcome. diff --git a/eiffel-vocabulary/EiffelTestCaseStartedEvent.md b/eiffel-vocabulary/EiffelTestCaseStartedEvent.md index fdaeb747..1be3e160 100644 --- a/eiffel-vocabulary/EiffelTestCaseStartedEvent.md +++ b/eiffel-vocabulary/EiffelTestCaseStartedEvent.md @@ -1,3 +1,19 @@ + + # EiffelTestCaseStartedEvent (TCS) The EiffelTestCaseStartedEvent declares that the execution of a test case has commenced. 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. diff --git a/eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md b/eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md index 369e4754..73668e90 100644 --- a/eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md +++ b/eiffel-vocabulary/EiffelTestExecutionRecipeCollectionCreatedEvent.md @@ -1,3 +1,19 @@ + + # EiffelTestExecutionRecipeCollectionCreatedEvent (TERCC) The EiffelTestExecutionRecipeCollectionCreatedEvent declares that a collection of test execution recipes has been created. In order to clarify what that means, several concepts need to be explained. diff --git a/eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md b/eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md index 51e214e0..64efa7ff 100644 --- a/eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md +++ b/eiffel-vocabulary/EiffelTestSuiteFinishedEvent.md @@ -1,3 +1,19 @@ + + # EiffelTestSuiteFinishedEvent (TSF) The EiffelTestSuiteFinishedEvent declares that a previously started test suite (declared by [EiffelTestSuiteStartedEvent](./EiffelTestSuiteStartedEvent.md)) has finished and reports the outcome. diff --git a/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md b/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md index 68e5daa4..91800786 100644 --- a/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md +++ b/eiffel-vocabulary/EiffelTestSuiteStartedEvent.md @@ -1,3 +1,19 @@ + + # EiffelTestSuiteStartedEvent (TSS) 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. diff --git a/examples/reference-data-sets/default/generator.py b/examples/reference-data-sets/default/generator.py index 34baaa88..72a337aa 100644 --- a/examples/reference-data-sets/default/generator.py +++ b/examples/reference-data-sets/default/generator.py @@ -1,4 +1,19 @@ #!/usr/bin/env python + +# Copyright 2017 Ericsson AB. +# +# 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. + import json import uuid import time diff --git a/examples/validate.py b/examples/validate.py index 4727fe19..ce1679c7 100644 --- a/examples/validate.py +++ b/examples/validate.py @@ -1,4 +1,19 @@ #!/usr/bin/env python + +# Copyright 2017 Ericsson AB. +# +# 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. + import sys import json import os diff --git a/implementations/event-aggregation-and-analysis.md b/implementations/event-aggregation-and-analysis.md index 6be811da..777e9645 100644 --- a/implementations/event-aggregation-and-analysis.md +++ b/implementations/event-aggregation-and-analysis.md @@ -1,3 +1,19 @@ + + # Event Aggregation and Analysis Implementations ## Eiffel Compcheck diff --git a/implementations/event-dispatch.md b/implementations/event-dispatch.md index ae95d9b4..57680463 100644 --- a/implementations/event-dispatch.md +++ b/implementations/event-dispatch.md @@ -8,4 +8,20 @@ Eiffel RemRem is a project undertaken to establish a communication layer between * Ability to introduce message validation It is available on GitHub: https://github.com/Ericsson/eiffel-remrem + + diff --git a/implementations/event-persistence.md b/implementations/event-persistence.md index be215800..79deacb3 100644 --- a/implementations/event-persistence.md +++ b/implementations/event-persistence.md @@ -1,3 +1,19 @@ + + # Event Persistence Implementations To be added... \ No newline at end of file diff --git a/implementations/visualization.md b/implementations/visualization.md index a596b1dd..3887f6d3 100644 --- a/implementations/visualization.md +++ b/implementations/visualization.md @@ -1,3 +1,19 @@ + + # Visualization Implementations To be added... \ No newline at end of file diff --git a/introduction/introduction.md b/introduction/introduction.md index 0016bffb..6220c17c 100644 --- a/introduction/introduction.md +++ b/introduction/introduction.md @@ -1,3 +1,19 @@ + + # Introduction This page provides an introduction to Eiffel: what is it, why is it and who is it for? diff --git a/usage-examples/build-avoidance.md b/usage-examples/build-avoidance.md index 67505296..9023cfa5 100644 --- a/usage-examples/build-avoidance.md +++ b/usage-examples/build-avoidance.md @@ -1,3 +1,19 @@ + + # Build Avoidance Example This example discusses how build avoidance mechanisms can be implemented using Eiffel events. diff --git a/usage-examples/confidence-level-joining.md b/usage-examples/confidence-level-joining.md index 51cb63b2..d7cbb1bd 100644 --- a/usage-examples/confidence-level-joining.md +++ b/usage-examples/confidence-level-joining.md @@ -1,3 +1,19 @@ + + # Confidence Level Joining Example This example illustrates how [EiffelConfidenceLevelModifiedEvent](../eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md) can be used to capture and summarize a larger body of lower level results, such as test suite verdicts, effectively _joining_ multiple flows in the continuous integration and delivery system. diff --git a/usage-examples/delivery-interface.md b/usage-examples/delivery-interface.md index 40bb74c1..70d040bf 100644 --- a/usage-examples/delivery-interface.md +++ b/usage-examples/delivery-interface.md @@ -1,3 +1,19 @@ + + # Delivery Interface Example Eiffel messaging can favorably be used to implement software delivery interfaces between products and organizations. This is typically achieved by a system placing requirements on the events its constituent parts must use to communicate that they offer a new candidate for integration, and then driving that integration by reacting to those events. The Eiffel vocabulary offers considerable freedom in the level of detail of such interfaces - as always, an important principle is freedom in _what_ you communicate, but not in _how_ you communicate it. Consequently what is presented here is an example of the event usage a system may require from its constituent parts in order to ensure a satisfactory level of traceability; actual implementations may require more or less, but the essential building blocks are the same. diff --git a/usage-examples/pipeline-monitoring.md b/usage-examples/pipeline-monitoring.md index 035ae2bc..e4d6b11e 100644 --- a/usage-examples/pipeline-monitoring.md +++ b/usage-examples/pipeline-monitoring.md @@ -1,3 +1,19 @@ + + # Pipeline Monitoring Example This example discusses ways in which the continuous integration and delivery pipeline can be monitored using Eiffel events. diff --git a/usage-examples/reference-data-sets/default.md b/usage-examples/reference-data-sets/default.md index b10efd0e..baaaaf87 100644 --- a/usage-examples/reference-data-sets/default.md +++ b/usage-examples/reference-data-sets/default.md @@ -1,3 +1,19 @@ + + # Default Reference Data Set This is a description of the "Default" reference data set found [here](../../examples/reference-data-sets/default/events.zip). From 5cf4694b39ab436b5eeb196f3764768da82aa89b Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Tue, 4 Apr 2017 09:16:53 +0200 Subject: [PATCH 3/7] Added full list of contributors line to license notice. --- README.md | 1 + customization/custom-data.md | 1 + customization/custom-events.md | 1 + .../compositions-and-validity-checking.md | 1 + .../event-design-guidelines.md | 1 + eiffel-syntax-and-usage/event-structure.md | 1 + eiffel-syntax-and-usage/the-links-object.md | 1 + eiffel-syntax-and-usage/the-meta-object.md | 1 + eiffel-syntax-and-usage/versioning.md | 1 + .../EiffelActivityCanceledEvent.md | 1 + .../EiffelActivityFinishedEvent.md | 1 + eiffel-vocabulary/EiffelActivityStartedEvent.md | 1 + .../EiffelActivityTriggeredEvent.md | 1 + .../EiffelAnnouncementPublishedEvent.md | 1 + eiffel-vocabulary/EiffelArtifactCreatedEvent.md | 1 + .../EiffelArtifactPublishedEvent.md | 1 + eiffel-vocabulary/EiffelArtifactReusedEvent.md | 1 + .../EiffelCompositionDefinedEvent.md | 1 + .../EiffelConfidenceLevelModifiedEvent.md | 1 + .../EiffelEnvironmentDefinedEvent.md | 1 + .../EiffelFlowContextDefinedEvent.md | 1 + eiffel-vocabulary/EiffelIssueVerifiedEvent.md | 1 + .../EiffelSourceChangeCreatedEvent.md | 1 + .../EiffelSourceChangeSubmittedEvent.md | 1 + .../EiffelTestCaseFinishedEvent.md | 1 + eiffel-vocabulary/EiffelTestCaseStartedEvent.md | 1 + ...TestExecutionRecipeCollectionCreatedEvent.md | 1 + .../EiffelTestSuiteFinishedEvent.md | 1 + .../EiffelTestSuiteStartedEvent.md | 1 + .../event-aggregation-and-analysis.md | 1 + implementations/event-dispatch.md | 17 +++++++++++++++++ implementations/event-persistence.md | 1 + implementations/visualization.md | 1 + introduction/introduction.md | 1 + usage-examples/build-avoidance.md | 1 + usage-examples/confidence-level-joining.md | 1 + usage-examples/delivery-interface.md | 1 + usage-examples/pipeline-monitoring.md | 1 + usage-examples/reference-data-sets/default.md | 1 + 39 files changed, 55 insertions(+) diff --git a/README.md b/README.md index b948ceee..89f086e6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ + # Event Dispatch Implementations ## Eiffel RemRem diff --git a/implementations/event-persistence.md b/implementations/event-persistence.md index 79deacb3..9517751f 100644 --- a/implementations/event-persistence.md +++ b/implementations/event-persistence.md @@ -1,5 +1,6 @@ + # How to Contribute Contributions can be made by anyone using the standard [GitHub Fork and Pull model](https://help.github.com/articles/about-pull-requests). When making a pull request, keep a few things in mind. diff --git a/introduction/how-to-propose-changes.md b/introduction/how-to-propose-changes.md index e0cd4879..ab7b12a4 100644 --- a/introduction/how-to-propose-changes.md +++ b/introduction/how-to-propose-changes.md @@ -1,3 +1,20 @@ + + # How to Propose Changes Anyone is welcome to propose changes to the Eiffel protocol by creating a new [Issue](https://github.com/Ericsson/eiffel/issues) ticket in GitHub. These requests may concern anything contained in the repo: changes to documentation, changes to definitions, requests for additional information, additional event types, requests for additional examples et cetera. From c8aacc7f9267dc2d035984cd037aba5b81e97c9e Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Tue, 4 Apr 2017 09:39:27 +0200 Subject: [PATCH 5/7] Updated contribution instructions to include license notice. --- introduction/how-to-contribute.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/introduction/how-to-contribute.md b/introduction/how-to-contribute.md index d3376d1a..3372ca3b 100644 --- a/introduction/how-to-contribute.md +++ b/introduction/how-to-contribute.md @@ -31,4 +31,25 @@ Pull requests can be merged by members of the [Eiffel team](https://github.com/o 1. Anyone can participate in reviews, not only Eiffel team members. 1. A Pull Request should be approved by at least two Eiffel team members (including the one doing the merging). For this to function well, the above point on participation is critical. 1. Do not feel any pressure to merge Pull Requests. Unless you feel confident about what you are doing, don't press that big green button. Instead, ask a more senior member to make the decision. -1. When squashing and merging, ensure that the description reflects the change. Detailing every individual commit in the Pull Request is unnecessary, as they are squashed anyway. Instead, describe the change as a single thing. That description should always include an Issue reference, and should focus on WHY the change was made, to provide the reader with context. See [this excellent guide](https://chris.beams.io/posts/git-commit) on writing good commit messages. \ No newline at end of file +1. When squashing and merging, ensure that the description reflects the change. Detailing every individual commit in the Pull Request is unnecessary, as they are squashed anyway. Instead, describe the change as a single thing. That description should always include an Issue reference, and should focus on WHY the change was made, to provide the reader with context. See [this excellent guide](https://chris.beams.io/posts/git-commit) on writing good commit messages. + +## License Management +To be accepted into the repository, contributions must be licensed under the Apache License 2.0. Consequently, a license notice shall be included in suitable comment syntax where applicable. This license notice shall state the copyright holder(s) and point to the commit history for a full list of individual contributors, on the following format: + +> Copyright +> For a full list of individual contributors, please see the commit history. + +The copyright holder is either the individual contributor if they act on their own behalf, or any organization on whose behalf they contribute. When multiple copyright holders have contributed to the same file, the copyright notice shall be appended "and others". The copyright year(s) shall reflect the year(s) of contribution(s) and be updated accordingly when new contributions are made to the file. To exemplify, the copyright notice of an original contribution made by Jane Doe acting on behalf of Ericsson AB may read: + +> Copyright 2017 Ericsson AB. +> For a full list of individual contributors, please see the commit history. + +When John Doe, acting on his own behalf, makes a subsequent addition to the same file, the notice will be updated accordingly: + +> Copyright 2017 Ericsson AB and others. +> For a full list of individual contributors, please see the commit history. + +When John Doe makes a subsequent contribution the following year, the notice will again be updated: + +> Copyright 2017-2018 Ericsson AB and others. +> For a full list of individual contributors, please see the commit history. \ No newline at end of file From d1b183f1c233e8365181517e8cc9e732f3b4a80b Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Tue, 4 Apr 2017 09:41:19 +0200 Subject: [PATCH 6/7] Updated license notice of .py files. --- examples/reference-data-sets/default/generator.py | 1 + examples/validate.py | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/reference-data-sets/default/generator.py b/examples/reference-data-sets/default/generator.py index 72a337aa..7220b82e 100644 --- a/examples/reference-data-sets/default/generator.py +++ b/examples/reference-data-sets/default/generator.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # Copyright 2017 Ericsson AB. +# 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. diff --git a/examples/validate.py b/examples/validate.py index ce1679c7..b3cb0a54 100644 --- a/examples/validate.py +++ b/examples/validate.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # Copyright 2017 Ericsson AB. +# 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. From 84d0e5be46829effb42a0105da7e72b4cdb803fa Mon Sep 17 00:00:00 2001 From: Daniel Stahl Date: Tue, 11 Apr 2017 08:49:19 +0200 Subject: [PATCH 7/7] Added license notice to security.md. --- eiffel-syntax-and-usage/security.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eiffel-syntax-and-usage/security.md b/eiffel-syntax-and-usage/security.md index 488b976c..37671325 100644 --- a/eiffel-syntax-and-usage/security.md +++ b/eiffel-syntax-and-usage/security.md @@ -1,3 +1,20 @@ + + # Security Let us begin by establishing that the Eiffel protocol by itself can be considered neither _secure_ nor _insecure_, any more than English is secure or French is insecure. Security is not a property of the language or the protocol as such, but of how it is communicated and managed. That being said, security is a highly relevant concern, and where feasible Eiffel supports it. It is important to understand that security is a broad concept, however, and that feasibility varies depending on the type of security in question. In literature, the three key concepts of security (sometimes referred to as the CIA triad) are confidentiality, integrity and availability. We will discuss each of these in turn.