Skip to content

feat(lobster): include upstream system requirements in dependable_element traceability #310

Description

@simon-d-bmw

Problem

When a feature_requirements() target has deps on assumed_system_requirements(), the upstream requirement lobster files are not included in the dependable_element lobster config or report. This means derived_from links from feature requirements to system-level requirements silently produce unresolved references in the lobster coverage report.

Proposed Change

providers.bzl — add upstream_srcs field to FeatureRequirementsInfo:

FeatureRequirementsInfo = provider(
    fields = {
        "srcs": "...",
        "upstream_srcs": "Depset of .lobster files from upstream req deps (e.g. assumed system requirements).",
        "name": "...",
    },
)

private/requirements.bzl — populate upstream_srcs when building FeatureRequirementsInfo: collect AssumedSystemRequirementsInfo.srcs from all deps and include as transitive depset.

private/component.bzl — propagate upstream_srcs alongside srcs when collecting feature requirement lobster files in _component_impl.

private/dependable_element.bzl — in _dependable_element_index_impl:

  • collect upstream_req_list from FeatureRequirementsInfo.upstream_srcs
  • pass as {UPSTREAM_REQ_SOURCES} substitution to lobster config template
  • include in all_lobster_inputs

lobster/config/lobster_de.conf.tpl — add section:

requirements "System Requirements" {
{UPSTREAM_REQ_SOURCES}
}

Motivation

Downstream projects that wire swe-as-code assumed_system_requirements into their dependable element currently get lobster warnings for every derived_from link pointing at a system-level requirement. This change makes the traceability chain complete without requiring system requirement TRLC files to be duplicated inside the downstream project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions