Skip to content

Conversation

@aschemmel-tech
Copy link
Contributor

@aschemmel-tech aschemmel-tech commented Feb 20, 2025

Ref: closes #321

see also the problem formulation in #567

@github-actions
Copy link

The created documentation from the pull request is available at: docu-html

Comment on lines 83 to 84
It is not the goal to merge this status, but to select the scope of the inspection
and use the github mechanisms for review comments and fixes of the work product.
Copy link
Member

Choose a reason for hiding this comment

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

Why not make a PR with inspected = true?

Copy link
Contributor

Choose a reason for hiding this comment

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

Then you will have to change the requirement and the "hash" will be changed again

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As Jochen stated, we considered this but ultimately did not follow the idea any more (one reason is above).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I now committed a solution with the status valid and valid(inspected) for requirement and architecture inspection, as this I think is the more natural procedure.

In this review the same checklist as for the inspection should be considered, but need not to be filled out.

The last step is initiated by the safety manager, security manager or quality manager:
He asks the main work product author to set the work product's status to "review" and start a Pull-Request (PR).
Copy link
Member

Choose a reason for hiding this comment

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

The requirement flow is draft -> valid -> review -> valid?

Copy link
Contributor

Choose a reason for hiding this comment

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

No an additional attibute will be set, but I documented this in the requirement process. Actually I wanted to align this with the operational community

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The "review state" will never be merged (this should be prevented by our checks). It is just a means to indicate which requirements shall be inspected (i.e. the scope of the inspection).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

removed this from proposal

Comment on lines 71 to 72
We expect that the work products need to mature during implementation and testing,
therefore we use a two-step approach for the review and inspection of work products.
Copy link
Member

Choose a reason for hiding this comment

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

So in the first stage we set requirements to valid, although we know they are wrong and will be reworked?

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we need to bring it in context of our branching strategy? Then it will get more clear

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is unrealistic to expect that requirements are written as part of a feature request and expect those will be stable until release of the SW. We do not "know" those are "wrong" as we created those to the best of our knowledge. If we already do a formal inspection at this point, it will most certainly be a waste of time.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we had a look at "best practice" solutions and agreed that for requirements and architecture a two step approach makes sense with a distribution of checks into a first microscopic/incremental review and a later macroscopic/overarching/full inspection. For implementation inspection we would not differentiate.

GitHub will automatically ask for a review by the defined one or more "CODEOWNER" of the work product.
It is not the goal to merge this status, but to select the scope of the inspection
and use the github mechanisms for review comments and fixes of the work product.
The author additionally creates an Inspection Document by using the foreseen template.
Copy link
Member

Choose a reason for hiding this comment

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

We've abandoned inspection documents a while ago. Do we really need them in SCORE?

Copy link
Contributor

Choose a reason for hiding this comment

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

Our initial idea was to comment it into the PR, but this can be altered afterwards ...

Copy link
Member

Choose a reason for hiding this comment

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

Let's have a look at that. I would rather invest into some solution than go for anything manual.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Our safety auditors will not accept an inspection where the result not documented. Any approach which ensures this, I am open to discuss.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Current proposal is to add the checklist to the pull request (e.g. the comments field) in an automated manner.

and use the github mechanisms for review comments and fixes of the work product.
The author additionally creates an Inspection Document by using the foreseen template.
In this document the inspection result will be documented for each checklist item
(pass/fail - with link to a ticket for the corrections, or by citing the checklist item in the github comment).
Copy link
Member

Choose a reason for hiding this comment

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

unclear

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will try to show an example to help.

The author additionally creates an Inspection Document by using the foreseen template.
In this document the inspection result will be documented for each checklist item
(pass/fail - with link to a ticket for the corrections, or by citing the checklist item in the github comment).
The CODEOWNER(s)=reviewers will fill out the checklist document and add their findings on the work product in the PR.
Copy link
Member

Choose a reason for hiding this comment

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

So they have to do the work twice? Sorry, I'm still not sure why normal PR-findings are insufficient.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is no intention to do double work, but it should be shown also that checklist items were checked as "passed" (which I usually do not expect to see in a PR review).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

modified text to make clearer

#. Create requirement
#. (Informal) Pull-Request Review
#. Merge valid requirement to main
#. During development and verification steps the requirement is reworked and again put to PR Review
Copy link
Member

Choose a reason for hiding this comment

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

Maybe what you aim at is something like Draft -> Submitted -> Valid?

Copy link
Member

Choose a reason for hiding this comment

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

Or Draft -> Valid -> Reopened -> Valid?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I do not like "draft", as this sounds to me like it is still worked on by the author and not already reviewed.

can be based for example for the requiremnts on their "Implemented by", "Verified by" and "Requirement Covered" attribute.
For example when requesting a new feature by filling out the :need:`GD_TEMP__Feat_Request_Template`
you are asked to also specify the feature's requirements
- it is not expected that the maturity of the requirements is already enough at this time to make a good inspection.
Copy link
Member

Choose a reason for hiding this comment

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

This really sounds like those requirements should be "best guess" or "submitted", and not be named "valid"

Copy link
Member

@AlexanderLanin AlexanderLanin Feb 21, 2025

Choose a reason for hiding this comment

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

I looked into our projects. They use: state = enum<draft, assumed, agreed, obsolete>

The flows are e.g. (first state -> next state):

  • draft -> assumed -> agreed (full flow that as rare as possible)
  • draft -> agreed (when an old draft is finally agreed by all parties)
  • assumed -> agreed (when an assumption had to be made, and now finally all parties agree)
  • agreed (when a new requirement is immediately reviewed by all parties)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This may be ok for requirements where you maybe also have external development, but the process tries to also cover inspections of other work products (architecture, code). But I take the hint and we will talk about the states names in the process community.

also a review checklist is provided for guidance, but no formal inspection is required. The same is true for Safety Analysis and DFA.
The independence of testing respectively of test case review is covered by the use of GitHub also for the review of test cases.
Which means that at least the test case definition or the test case review is performed by
another person as the author of the verified work product.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to create a process req for it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

But that is already covered by our current configuration, as the review always has to be done by another person.

Copy link
Contributor Author

@aschemmel-tech aschemmel-tech Mar 11, 2025

Choose a reason for hiding this comment

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

but now also added several process requirements for the concept - also based on #567

@aschemmel-tech aschemmel-tech force-pushed the aschemmel-tech-patch-3 branch from 00753ed to c9ff682 Compare March 11, 2025 11:02
@github-actions
Copy link

License Check Results

🚀 The license check preparation job ran successfully.

Status: ⚠️ Needs Review

Click to expand output
2025/03/11 11:02:43 Downloading https://releases.bazel.build/7.4.0/release/bazel-7.4.0-linux-x86_64...
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading: docs
Loading: 0 packages loaded
    currently loading: docs
Loading: 0 packages loaded
    currently loading: docs
Analyzing: target //docs:license.check.python (1 packages loaded)
Analyzing: target //docs:license.check.python (1 packages loaded, 0 targets configured)
Analyzing: target //docs:license.check.python (1 packages loaded, 0 targets configured)

Analyzing: target //docs:license.check.python (90 packages loaded, 10 targets configured)

Analyzing: target //docs:license.check.python (93 packages loaded, 10 targets configured)

Analyzing: target //docs:license.check.python (97 packages loaded, 10 targets configured)

Analyzing: target //docs:license.check.python (130 packages loaded, 818 targets configured)

Analyzing: target //docs:license.check.python (131 packages loaded, 826 targets configured)

Analyzing: target //docs:license.check.python (144 packages loaded, 2461 targets configured)

Analyzing: target //docs:license.check.python (144 packages loaded, 2465 targets configured)

Analyzing: target //docs:license.check.python (145 packages loaded, 2589 targets configured)

Analyzing: target //docs:license.check.python (148 packages loaded, 4611 targets configured)

INFO: Analyzed target //docs:license.check.python (149 packages loaded, 4736 targets configured).
[11 / 13] [Prepa] JavaToolchainCompileBootClasspath external/rules_java~/toolchains/platformclasspath.jar
[12 / 13] Building docs/license.check.python.jar (); 0s multiplex-worker
INFO: Found 1 target...
Target //docs:license.check.python up-to-date:
  bazel-bin/docs/license.check.python
  bazel-bin/docs/license.check.python.jar
INFO: Elapsed time: 23.171s, Critical Path: 2.75s
INFO: 13 processes: 9 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 13 total actions
INFO: Running command line: bazel-bin/docs/license.check.python docs/formatted.txt -review -project automotive.score -repo https://github.com/eclipse-score/score -token otyhZ4eaRYK1tKLNNF-Y
[main] INFO Querying Eclipse Foundation for license data for 69 items.
[main] INFO Found 45 items.
[main] INFO Querying ClearlyDefined for license data for 42 items.
[main] ERROR Error response from ClearlyDefined 429

@aschemmel-tech aschemmel-tech marked this pull request as ready for review March 11, 2025 13:15
@aschemmel-tech aschemmel-tech mentioned this pull request Mar 11, 2025
52 tasks
@hoe-jo hoe-jo self-requested a review March 12, 2025 13:38
Copy link
Contributor

@hoe-jo hoe-jo left a comment

Choose a reason for hiding this comment

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

ok for an initial proposal

@aschemmel-tech aschemmel-tech merged commit 9d774e7 into main Mar 12, 2025
10 checks passed
@aschemmel-tech aschemmel-tech deleted the aschemmel-tech-patch-3 branch March 12, 2025 13:39
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.

Improvement: Document general Concept: Inspection process

4 participants