Conversation
|
The created documentation from the pull request is available at: docu-html |
4be00d8 to
bb5b695
Compare
dfd3c08 to
891860c
Compare
…ments report Pins score_docs_as_code to a26274882b0ff41187e502c7bcdd26bbf5858232, which adds the "Stakeholder Requirements" chapter to the platform verification report template (eclipse-score/docs-as-code#875). main pins score_docs_as_code to the released version 8.3.0, but that release does not yet contain the stakeholder requirements chapter (the pinned commit is two commits ahead of v8.3.0). Until a release containing it exists, this overrides to the git commit via git_override instead of single_version_override. Regenerated bazel_common/score_modules_tooling.MODULE.bazel accordingly and updated MODULE.bazel.lock via `bazel mod tidy` to drop the score_docs_as_code 8.3.0 registry entries that no longer apply under the git_override.
Stakeholder requirements are platform-level and should be verified by platform-level tests, not by the feature integration tests (which verify individual `feat_req`). The `//showcases` demo applications are exactly such platform-level scenarios, so reference them as platform integration tests instead of rewriting them: * Add `platform_integration_tests/` with a `py_itf_test` that drives each showcase on the deployed target image (Docker on linux-x86_64) through the showcase entrypoint `/showcases/bin/cli` and asserts it runs to completion. * Annotate each test with `@add_test_properties(partially_verifies=[...])` pointing at the stakeholder requirement the showcase demonstrates (communication, logging, execution model, health management, vehicle time). `py_itf_test` does not register `attribute_plugin` (unlike `score_py_pytest`), so it is wired up in the BUILD file. * Run `//platform_integration_tests:pit` in the `test_and_docs` workflow, before the documentation build, so the source code linker picks up the testlinks from `bazel-testlogs` and the platform verification report shows the coverage.
891860c to
4442ada
Compare
PiotrKorkus
left a comment
There was a problem hiding this comment.
Blocking till DaC commit will be merged - eclipse-score/docs-as-code#875
| "score_docs_as_code": { | ||
| "repo": "https://github.com/eclipse-score/docs-as-code.git", | ||
| "version": "8.3.0" | ||
| "hash": "a26274882b0ff41187e502c7bcdd26bbf5858232" |
There was a problem hiding this comment.
lets keep unmerged commits away from ref_int.
|
please keep DAC on official releases only |
| "manual", | ||
| ], | ||
| deps = [ | ||
| "@score_tooling//python_basics/score_pytest:attribute_plugin", |
There was a problem hiding this comment.
it should use ITF attrbute plugin https://github.com/eclipse-score/itf/blob/main/test/integration/test_attribute_plugin.py
| _CLI = "/showcases/bin/cli" | ||
|
|
||
|
|
||
| def _run_showcases(target, *names: str) -> None: |
There was a problem hiding this comment.
make it a helper function in separate file
| test_type="interface-test", | ||
| derivation_technique="requirements-analysis", | ||
| ) | ||
| def test_communication_showcase(target): |
There was a problem hiding this comment.
For better maintenance, I would suggest to create a separate file for each Module - communcation, logging etc. Then it is easily expandable.
| deps = [ | ||
| "@score_tooling//python_basics/score_pytest:attribute_plugin", | ||
| ], | ||
| ) |
There was a problem hiding this comment.
once all Modules are splitted across files - create separate py_itf target as well. Finally collect all in single PIT test_suite
|
reopend as draft |
…odule packages - Move each showcase test into its own platform_integration_tests/<module> folder with a dedicated BUILD and py_itf_test target. - Turn platform_integration_tests:pit into a test_suite collecting the per-module targets; showcase_runner becomes a shared py_library. - Widen images/linux_x86_64:image_load visibility to __subpackages__. - Remove the duplicated test_run_all_showcases from feature_integration_tests/itf, now redundant with platform_integration_tests.
PiotrKorkus
left a comment
There was a problem hiding this comment.
test part looks good, @AlexanderLanin please check DaC version
|
we now use "the official" commit from main. If it is ok, please approve. If you want us to use a real release, please create a new version in docs-as-code. Thank you! |
What
Bumps
score_docs_as_codeinknown_good.jsonto latest on main (47f686dcc802cfb89e6472c5fa9f05bfae5d550b), so the new Stakeholder Requirements chapter of the platform verification report can be seen in a real build, and adds/restructures the platform integration tests that feed testlinks into that chapter.Companion PR: eclipse-score/docs-as-code#875 (merged)
Effect on the rendered docs
docs/verification_report/platform_verification_report.rstinstantiates the template with:report_version: v1.0, so the new chapter appears aboveFeaturesand is version-scoped tov1.0stakeholder requirements. It renders two pie charts (status, test coverage) and a folded requirements table with the same columns as the per-feature requirements table.Platform integration tests
platform_integration_tests/, driving each//showcasesdemo application on the deployed target image (Docker on linux-x86_64, QEMU on QNX x86_64) through the showcase entrypoint/showcases/bin/cli, and asserting it runs to completion.@add_test_properties(partially_verifies=[...])pointing at the stakeholder requirement it demonstrates (communication, logging, execution model, health management, vehicle time). The decorator comes from ITF's ownattribute_pluginwrapper (@score_itf//score/itf/plugins:attribute_plugin), matching the pattern in itf's owntest_attribute_plugin.py, rather than wiring thescore_toolinglibrary in directly with a manual-p attribute_pluginflag.platform_integration_tests/<module>package (communication/,logging/,kyron/,lifecycle/,time/), each with a dedicatedBUILDandpy_itf_testtarget.//platform_integration_tests:pitis atest_suitecollecting all five; the shared showcase-driving helper (showcase_runner.py) is apy_libraryused by all of them.//platform_integration_tests:pitin thetest_and_docsworkflow, before the documentation build, so the source code linker picks up the testlinks frombazel-testlogsand the platform verification report shows the coverage.test_run_all_showcasesfromfeature_integration_tests/itf/test_showcases.py: it ran every showcase via/showcases/bin/cli --examples=all, which is now redundant with (and duplicated the execution of) the per-module tests above.Process steps followed
python3 scripts/known_good/update_module_from_known_good.pyafter editingknown_good.json; it regeneratedbazel_common/score_modules_tooling.MODULE.bazel, which is committed here as well.bazel mod deps --lockfile_mode=update. It produced no diff for this bump, andMODULE.bazel.lockcontains noscore_docs_as_codeentry or commit hash at all, so no lockfile change is expected for this bump.Note on scope
The previously pinned hash
a26274882b0ff41187e502c7bcdd26bbf5858232was the pre-merge commit of the companion docs-as-code PR; it has since been merged tomainas47f686dcc802cfb89e6472c5fa9f05bfae5d550b, which is what's pinned now.