@@ -159,12 +159,12 @@ def _component_impl(ctx):
159159 # and bubble up SphinxSourcesInfo from sub-components/units.
160160 #
161161 # Only ComponentRequirementsInfo-providing targets contribute their own
162- # rendered RST here. feature_requirements targets are commonly also listed
163- # in `requirements` (see below) purely so their .lobster file can resolve
164- # derived_from references from the component requirements; they are
165- # already rendered once at the dependable_element level, so re-rendering
166- # them per component would duplicate the feature requirements page across
167- # every component that references the same feature .
162+ # rendered RST here. feature_requirements / assumed_system_requirements
163+ # targets are commonly also listed in `requirements` (see below) purely so
164+ # their .lobster file can resolve derived_from references from the component
165+ # requirements; they are already rendered once at the dependable_element
166+ # level, so re-rendering them per component would duplicate the upstream
167+ # requirements page across every component that references the same item .
168168 # -------------------------------------------------------------------------
169169 req_sphinx_files = []
170170 for req_target in ctx .attr .requirements :
@@ -181,7 +181,10 @@ def _component_impl(ctx):
181181
182182 # -------------------------------------------------------------------------
183183 # Lobster Tracing: collect .lobster files from component_requirements targets
184- # and feature_requirements targets (needed to resolve derived_from references).
184+ # and from upstream requirements targets -- feature_requirements, or
185+ # assumed_system_requirements when a SEooC traces component requirements
186+ # directly to ASRs without a feature requirements layer. Both feed the
187+ # config's upstream level, so derived_from references resolve either way.
185188 # -------------------------------------------------------------------------
186189 req_lobster_files = []
187190 req_lobster_transitive_files = []
@@ -367,8 +370,9 @@ _component_test = rule(
367370 ),
368371 "requirements" : attr .label_list (
369372 default = [],
370- providers = [[ComponentRequirementsInfo ], [FeatureRequirementsInfo ]],
371- doc = "Component requirements artifacts (component_requirements or feature_requirements targets)" ,
373+ providers = [[ComponentRequirementsInfo ], [FeatureRequirementsInfo ], [AssumedSystemRequirementsInfo ]],
374+ doc = "Component requirements artifacts (component_requirements, feature_requirements or " +
375+ "assumed_system_requirements targets)" ,
372376 ),
373377 "components" : attr .label_list (
374378 providers = [[ComponentInfo ], [UnitInfo ]],
@@ -429,12 +433,16 @@ def component(
429433 name: The name of the component. Used as the target name.
430434 requirements: List of labels to component_requirements targets
431435 that define the requirements for this component. A
432- feature_requirements target may also be listed here so its
433- .lobster file is available to resolve derived_from references
434- from the component requirements; only component_requirements
435- targets contribute rendered RST to the component's Sphinx docs,
436- so listing a feature_requirements target does not duplicate it
437- in the generated documentation.
436+ feature_requirements or assumed_system_requirements target may
437+ also be listed here so its .lobster file is available to resolve
438+ derived_from references from the component requirements; only
439+ component_requirements targets contribute rendered RST to the
440+ component's Sphinx docs, so listing an upstream requirements
441+ target does not duplicate it in the generated documentation.
442+ A SEooC that derives its component requirements directly from
443+ Assumed System Requirements (without an intermediate feature
444+ requirements layer) lists the assumed_system_requirements target
445+ here.
438446 components: List of labels to nested component targets (for hierarchical
439447 component structures).
440448 tests: List of labels to Bazel test targets that verify the component
0 commit comments