Skip to content

Commit 3e2e8c2

Browse files
committed
Add AssumedSystemRequirementsInfo provider and lobster config
Extend the requirements rule to support assumed system requirements: - Add AssumedSystemRequirementsInfo provider in providers.bzl - Add 'assumed_system' to req_kind values in _requirements rule - Add elif/else branch in _requirements_impl to return the new provider - Add lobster config (lobster_assumed_system_req.yaml) and BUILD target for assumed system requirement traceability extraction
1 parent ee889a1 commit 3e2e8c2

4 files changed

Lines changed: 45 additions & 5 deletions

File tree

bazel/rules/rules_score/lobster/config/BUILD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ filegroup(
2626
visibility = ["//visibility:public"],
2727
)
2828

29+
filegroup(
30+
name = "assumed_system_requirement",
31+
srcs = ["lobster_assumed_system_req.yaml"],
32+
visibility = ["//visibility:public"],
33+
)
34+
2935
filegroup(
3036
name = "failuremodes_config",
3137
srcs = ["lobster_failuremodes.yaml"],
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# *******************************************************************************
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
#
4+
# See the NOTICE file(s) distributed with this work for additional
5+
# information regarding copyright ownership.
6+
#
7+
# This program and the accompanying materials are made available under the
8+
# terms of the Apache License Version 2.0 which is available at
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# SPDX-License-Identifier: Apache-2.0
12+
# *******************************************************************************
13+
inputs:
14+
- .
15+
conversion-rules:
16+
- package: ScoreReq
17+
record-type: AssumedSystemReq
18+
namespace: req
19+
version-field: version
20+
description-fields: description

bazel/rules/rules_score/private/requirements.bzl

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ This module provides macros and rules for defining requirements at any level
1919
"""
2020

2121
load("@lobster//:lobster.bzl", "subrule_lobster_trlc")
22-
load("@trlc//:trlc.bzl", "TrlcProviderInfo", "trlc_requirements_test")
23-
load("//bazel/rules/rules_score:providers.bzl", "ComponentRequirementsInfo", "FeatureRequirementsInfo", "SphinxSourcesInfo")
22+
load("@trlc//:trlc.bzl", "TrlcProviderInfo", "trlc_requirements", "trlc_requirements_test")
23+
load("//bazel/rules/rules_score:providers.bzl", "AssumedSystemRequirementsInfo", "ComponentRequirementsInfo", "FeatureRequirementsInfo", "SphinxSourcesInfo")
24+
load("//bazel/rules/rules_score/private:rst_to_trlc.bzl", "rst_srcs_to_trlc")
2425

2526
# ============================================================================
2627
# Private Rule Implementation
@@ -68,11 +69,16 @@ def _requirements_impl(ctx):
6869
srcs = depset([lobster_trlc_file]),
6970
name = ctx.label.name,
7071
)
71-
else:
72+
elif ctx.attr.req_kind == "component":
7273
req_provider = ComponentRequirementsInfo(
7374
srcs = depset([lobster_trlc_file]),
7475
name = ctx.label.name,
7576
)
77+
else: # assumed_system
78+
req_provider = AssumedSystemRequirementsInfo(
79+
srcs = depset([lobster_trlc_file]),
80+
name = ctx.label.name,
81+
)
7682

7783
return [
7884
DefaultInfo(files = all_srcs),
@@ -102,9 +108,9 @@ _requirements = rule(
102108
doc = "Lobster YAML configuration file for traceability extraction",
103109
),
104110
"req_kind": attr.string(
105-
values = ["feature", "component"],
111+
values = ["feature", "component", "assumed_system"],
106112
mandatory = True,
107-
doc = "Kind of requirements: 'feature' or 'component'",
113+
doc = "Kind of requirements: 'feature', 'component', or 'assumed_system'.",
108114
),
109115
"_renderer": attr.label(
110116
default = Label("@trlc//tools/trlc_rst:trlc_rst"),

bazel/rules/rules_score/providers.bzl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ ComponentRequirementsInfo = provider(
8585
},
8686
)
8787

88+
AssumedSystemRequirementsInfo = provider(
89+
doc = "Provider for assumed system requirements artifacts.",
90+
fields = {
91+
"srcs": "Depset of .lobster traceability files generated from TRLC requirement sources.",
92+
"name": "Name of the requirements target.",
93+
},
94+
)
95+
8896
AnalysisInfo = provider(
8997
doc = "Provider for safety analysis traceability artifacts (lobster files).",
9098
fields = {

0 commit comments

Comments
 (0)