Skip to content
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ __pycache__/

# bug: This file is created in repo root on test discovery.
/consumer_test.log
/.clwb
29 changes: 29 additions & 0 deletions docs/internals/requirements/requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,35 @@ Versioning
.. note::
Certain tool requirements do not have a matching process requirement.

.. tool_req:: Enables needs linking via covers attribute (Requirements to AoU)
:id: tool_req__docs_req_link_covers_aou
:tags: Requirements
:implemented: YES
:version: 1
:satisfies: gd_req__req_linkage_aou
:parent_covered: YES
:status: valid

Docs-as-Code shall support the ``covers`` link type to establish traceability between
requirements and their Assumptions of Use (AoU), per SCORE process specification.

**Allowed connections**:

.. table::
:widths: auto

================================ ========================================================
Source Type Link Type Target Type
================================ ========================================================
Feature Requirements covers Assumptions of Use (AoU)
Component Requirements covers Assumptions of Use (AoU)
Comment thread
FScholPer marked this conversation as resolved.
================================ ========================================================

**Traceability scope**: Applies in both repository types: feature requirements cover
AoU in platform repositories, and component requirements cover AoU in module repositories.

**Process reference**: :need:`gd_req__req_linkage_aou`

.. tool_req:: Safety: enforce safe linking
:id: tool_req__docs_common_attr_safety_link_check
:tags: Common Attributes
Expand Down
10 changes: 10 additions & 0 deletions src/extensions/score_metamodel/metamodel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,8 @@ needs_types:
valid_until: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)(\.(0|[1-9]\d*))?$
optional_links:
belongs_to: feat # for evaluation
# req-Id: tool_req__docs_req_link_covers_aou
covers: aou_req
tags:
- requirement
- requirement_excl_process
Expand Down Expand Up @@ -336,6 +338,9 @@ needs_types:
# req-Id: tool_req__docs_req_attr_testcov
testcovered: ^(YES|NO)$
hash: ^.*$
optional_links:
# req-Id: tool_req__docs_req_link_covers_aou
covers: aou_req
tags:
- requirement
- requirement_excl_process
Expand Down Expand Up @@ -943,6 +948,11 @@ needs_extra_links:
incoming: fulfilled by
outgoing: fulfils

# req-Id: gd_req__req_linkage_aou
covers:
incoming: covered by
outgoing: covers

implements:
incoming: implemented by
outgoing: implements
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
..
# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

#CHECK: check_options

.. Tests that `covers` on feat_req and comp_req only allows aou_req as target.
.. req-Id: tool_req__docs_req_link_covers_aou

.. aou_req:: AoU target for covers tests
:id: aou_req__covers__target
:reqtype: Functional
:security: NO
:safety: QM
:status: valid

AoU content used for covers-link validation tests.


.. stkh_req:: Parent stakeholder requirement for covers tests
:id: stkh_req__covers__parent
:reqtype: Functional
:security: NO
:safety: QM
:status: valid
:rationale: Stakeholder parent rationale for covers-link tests.


.. feat_req:: Parent feature requirement for covers tests
:id: feat_req__covers__parent
:reqtype: Functional
:security: NO
:safety: QM
:status: valid
:satisfies: stkh_req__covers__parent

Parent feature requirement used by covers-link tests.


.. Positive Test: feat_req pointing to an aou_req via covers is valid.
#EXPECT-NOT: covers

.. feat_req:: Feature requirement with valid covers link
:id: feat_req__covers__good_1
:reqtype: Functional
:security: NO
:safety: QM
:status: valid
:satisfies: stkh_req__covers__parent
:covers: aou_req__covers__target

Valid feat_req that covers an AoU requirement.


.. Positive Test: comp_req pointing to an aou_req via covers is valid.
#EXPECT-NOT: covers

.. comp_req:: Component requirement with valid covers link
:id: comp_req__covers__good_1
:reqtype: Functional
:security: NO
:safety: QM
:status: valid
:satisfies: feat_req__covers__parent
:belongs_to: comp__covers__parent
:covers: aou_req__covers__target

Valid comp_req that covers an AoU requirement.


.. feat:: Feature for covers tests
:id: feat__covers__parent
:security: NO
:safety: QM
:status: valid
Loading