Skip to content

Modeling source change verdicts#417

Open
m-linner-ericsson wants to merge 3 commits intoeiffel-community:masterfrom
m-linner-ericsson:modeling_source_change_verdicts
Open

Modeling source change verdicts#417
m-linner-ericsson wants to merge 3 commits intoeiffel-community:masterfrom
m-linner-ericsson:modeling_source_change_verdicts

Conversation

@m-linner-ericsson
Copy link
Member

@m-linner-ericsson m-linner-ericsson commented Dec 11, 2025

Applicable Issues

Fixes #236

Description of the Change

  • Adding PREDECESSOR link to show how an event supersedes another
  • Adding description of how Confidence Level Modified Event can be used to show Source Change approvals
$ diff -u definitions/EiffelConfidenceLevelModifiedEvent/4.0.1.yml definitions/EiffelConfidenceLevelModifiedEvent/4.1.0.yml
--- definitions/EiffelConfidenceLevelModifiedEvent/4.0.1.yml    2025-10-29 13:59:22.149261157 +0100
+++ definitions/EiffelConfidenceLevelModifiedEvent/4.1.0.yml    2025-11-13 14:59:10.184592838 +0100
@@ -15,12 +15,14 @@
 ---
 $schema: https://json-schema.org/draft/2020-12/schema#
 _name: EiffelConfidenceLevelModifiedEvent
-_version: 4.0.1
+_version: 4.1.0
 _abbrev: CLM
 _description: |-
   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.

   Confidence levels may operate at high or low levels of abstraction - ranging from "smokeTestsOk" to "releasable" or "released" - and they may group other confidence levels of lower abstraction levels. They may also be general or very niched, e.g. "releasable" or "releasableToCustomerX". Confidence levels frequently figure in automated delivery interfaces within a tiered system context: lower level tiers issue an agreed confidence level signaling that a new version is ready for integration in a higher level tier.
+
+  See [Source Change Approval Using Confidence Levels](../eiffel-syntax-and-usage/clm-source-change-approved.md) for guidance on how to use the CLM event for reviews.
 type: object
 properties:
   meta:
@@ -133,6 +135,16 @@
       any_type: false
       types:
         - EiffelFlowContextDefinedEvent
+  PREDECESSOR:
+    description: 'Identifies previous confidence level events that this event supersedes. This
+      link indicates which earlier CLM events have been outdated or replaced by the
+      current confidence level assessment.'
+    required: false
+    multiple: true
+    targets:
+      any_type: false
+      types:
+        - EiffelConfidenceLevelModifiedEvent
   SUBJECT:
     description: Identifies a subject of the confidence level; in other
       words, what the confidence level applies to.
@@ -160,6 +172,8 @@
       types:
         - EiffelConfidenceLevelModifiedEvent
 _history:
+  - version: 4.1.0
+    changes: Add PREDECESSOR link (see [Issue 236](https://github.com/eiffel-community/eiffel/issues/236)).
   - version: 4.0.1
     changes: Detail the expected representation of public key and signature in meta.security  (see [Issue 375](https://github.com/eiffel-community/eiffel/issues/375)).
   - version: 4.0.0

$ diff -u schemas/EiffelConfidenceLevelModifiedEvent/4.0.1.json schemas/EiffelConfidenceLevelModifiedEvent/4.1.0.json
--- schemas/EiffelConfidenceLevelModifiedEvent/4.0.1.json       2025-12-11 10:38:15.237834468 +0100
+++ schemas/EiffelConfidenceLevelModifiedEvent/4.1.0.json       2025-12-11 10:38:15.327834468 +0100
@@ -18,9 +18,9 @@
         "version": {
           "type": "string",
           "enum": [
-            "4.0.1"
+            "4.1.0"
           ],
-          "default": "4.0.1"
+          "default": "4.1.0"
         },
         "time": {
           "type": "integer"

Alternate Designs

One could have skipped the PREDECESSOR but it was deemed good to have it.

Possible Drawbacks

None that I can think of

Sign-off

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

Signed-off-by: Mattias Linnér mattias.linner@ericsson.com

@m-linner-ericsson m-linner-ericsson requested a review from a team as a code owner December 11, 2025 10:01
@m-linner-ericsson m-linner-ericsson self-assigned this Dec 11, 2025
Copy link
Member

@e-backmark-ericsson e-backmark-ericsson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of my comments are really critical, but I'd prefer that you at least consider them before merging.


1. A developer pushes code for review (`SCC 1`).
1. The first reviewer gives a `+1` as they think it looks good which generates a `codeReviewed`:`SUCCESS` (`CLM 1`).
1. The second reviewer spots a serious mistake and gives a `-2` which generates a `readyToMerge`:`FAILURE` (`CLM 2`).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. The second reviewer spots a serious mistake and gives a `-2` which generates a `readyToMerge`:`FAILURE` (`CLM 2`).
1. The second reviewer spots a serious mistake and gives a `-2` which generates a `codeReviewed`:`FAILURE` (`CLM 2`).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add EiffelSourceChangeApprovedEvent

2 participants