-
Notifications
You must be signed in to change notification settings - Fork 61
Modeling Source Change Verdicts #415
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
Modeling Source Change Verdicts #415
Conversation
|
|
||
| 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. |
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.
| 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. | |
| 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 source change reviews. |
| __Required:__ No | ||
| __Legal targets:__ [EiffelConfidenceLevelModifiedEvent](../eiffel-vocabulary/EiffelConfidenceLevelModifiedEvent.md) | ||
| __Multiple allowed:__ Yes | ||
| __Description:__ Identifies which other CLM events this event supersedes. For example, in a scenario where CLM events signal reviews, this link indicates which earlies reviews became outdated due to this review. |
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.
| __Description:__ Identifies which other CLM events this event supersedes. For example, in a scenario where CLM events signal reviews, this link indicates which earlies reviews became outdated due to this review. | |
| __Description:__ Identifies which other CLM events this event supersedes. For example, in a scenario where CLM events signal source change reviews, this link indicates which earlies reviews became outdated due to this review. |
|
|
||
| _Source change approval_ is the process of signaling when a source change has been reviewed and approved according to project requirements. This document describes how to represent source change approval states using [EiffelConfidenceLevelModifiedEvent][CLM] events, providing a standardized way to communicate approval status using the Eiffel protocol. | ||
|
|
||
| Source change approval is a critical gate in software development workflows, determining when changes are ready for integration. By modeling approval as confidence levels, teams can create flexible approval workflows that integrate naturally with existing Eiffel-based CI/CD pipelines. |
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.
| Source change approval is a critical gate in software development workflows, determining when changes are ready for integration. By modeling approval as confidence levels, teams can create flexible approval workflows that integrate naturally with existing Eiffel-based CI/CD pipelines. | |
| Source change approvals can be used as a trigger to execute certain test pipelines. Those pipelines could either consume serious amounts of hardware/network resources and thus should not run unless the source change is deemed interesting enough, or they could run in sensitive environments and should therefore not be executed unless the reviewer(s) say it's safe to run. By modeling approval as confidence levels, teams can create flexible approval workflows that integrate naturally with existing Eiffel-based CI/CD pipelines. | |
| } | ||
| ``` | ||
|
|
||
| **Supported values:** |
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.
The schema does not limit what values are possible to use, so I don't think we should say 'Supported values'
| **Supported values:** | |
| **Proposed values:** | |
| - `PENDING`: Review process initiated but not complete | ||
| - `APPROVED`: All required approvals received | ||
| - `REJECTED`: Change rejected during review | ||
| - `INSUFFICIENT_REVIEWS`: Not enough reviews to meet requirements |
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.
In what scenario should PENDING be used and not INSUFFICIENT_REVIEWS or vice versa? To me, they are mostly the same. I propose to remove the last value.
| ```json | ||
| { | ||
| "data": { | ||
| "name": "review-approval", |
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.
The CLM docs recommend camelCase on the name
| "name": "review-approval", | |
| "name": "reviewApproval", | |
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.
The PR proposes several new values for the data object, so the schema needs to add the value enum. It currently only supports "SUCCESS", "FAILURE", "INCONCLUSIVE".
This would mean that the new values would be legal also for 'non-source-change-approval' CLMs... Is that what we want?
|
Due to the amount of rewrite needed in this PR I will close it and will open a new to lessen the amount of confusion |
Applicable Issues
Fixes #236
Description of the Change
Diff of the definition file:
Diff of the JSON:
Alternate Designs
One could have skipped the PRECUSOR 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 [email protected]