1+ load ("@aspect_rules_py//py:defs.bzl" , "py_binary" )
2+
13# *******************************************************************************
24# Copyright (c) 2025 Contributors to the Eclipse Foundation
35#
2628 "unit" ,
2729 "unit_design" ,
2830)
31+ load ("@score_tooling//bazel/rules/rules_score:sphinx_toolchain.bzl" , "sphinx_toolchain" )
2932load ("@trlc//:trlc.bzl" , "trlc_requirements" , "trlc_requirements_test" )
3033load (
3134 ":html_generation_test.bzl" ,
9396
9497package (default_visibility = ["//visibility:public" ])
9598
99+ # ============================================================================
100+ # Sphinx Toolchain — uses score_docs_as_code so score_metamodel is importable
101+ # ============================================================================
102+
103+ exports_files (["template/conf.template.py" ])
104+
105+ py_binary (
106+ name = "score_build" ,
107+ srcs = ["@score_tooling//bazel/rules/rules_score:src/sphinx_wrapper.py" ],
108+ main = "@score_tooling//bazel/rules/rules_score:src/sphinx_wrapper.py" ,
109+ package_collisions = "warning" ,
110+ visibility = ["//visibility:public" ],
111+ deps = [
112+ "@score_docs_as_code//src:plantuml_for_python" ,
113+ "@score_docs_as_code//src/extensions/score_sphinx_bundle" ,
114+ "@score_tooling//bazel/rules/rules_score:bazel_sphinx_needs" ,
115+ "@score_tooling//bazel/rules/rules_score:sphinx_module_ext" ,
116+ ],
117+ )
118+
119+ sphinx_toolchain (
120+ name = "score_sphinx_toolchain" ,
121+ conf_template = "//:template/conf.template.py" ,
122+ sphinx = ":score_build" ,
123+ )
124+
125+ toolchain (
126+ name = "score_toolchain" ,
127+ toolchain = ":score_sphinx_toolchain" ,
128+ toolchain_type = "@score_tooling//bazel/rules/rules_score:toolchain_type" ,
129+ )
130+
96131# ============================================================================
97132# Test Fixtures - Module Definitions
98133# ============================================================================
@@ -274,7 +309,7 @@ unit_design(
274309unit (
275310 name = "test_unit" ,
276311 testonly = True ,
277- scope = ["//bazel/rules/rules_score/test :mock_lib1" ],
312+ scope = ["//:mock_lib1" ],
278313 tests = [":test_unit_tests" ],
279314 unit_design = [":test_unit_design" ],
280315 implementation = [
@@ -700,26 +735,11 @@ aous_rst_sphinx_test(
700735requirements_rst_test_suite (name = "requirements_rst_tests" )
701736
702737# ============================================================================
703- # Image srcs Tests
738+ # Image srcs Tests (defined in sub-package to avoid workspace-root edge case)
704739# ============================================================================
705-
706- # Fixture: feature_requirements with image_srcs
707- feature_requirements (
708- name = "feat_req_with_image" ,
709- srcs = ["fixtures/seooc_test/feature_requirements.trlc" ],
710- image_srcs = [
711- "fixtures/image_srcs/diagrams/arch.svg" ,
712- "fixtures/image_srcs/diagrams/arch.png" ,
713- ],
714- deps = [":asr_trlc" ],
715- )
716-
717- image_srcs_sphinx_sources_test (
718- name = "image_srcs_sphinx_sources_test" ,
719- target_under_test = ":feat_req_with_image" ,
720- )
721-
722- requirements_image_test_suite (name = "requirements_image_tests" )
740+ # feat_req_with_image and image_srcs_sphinx_sources_test live in
741+ # //fixtures/image_srcs so that ctx.label.package is non-empty and
742+ # subrule_trlc_image_stage can strip the prefix correctly.
723743
724744# ============================================================================
725745# Combined Test Suite
@@ -736,7 +756,7 @@ requirements_image_test_suite(name = "requirements_image_tests")
736756trlc_requirements (
737757 name = "safety_measures_fixtures" ,
738758 srcs = ["fixtures/seooc_test/safety_measures_fixtures.trlc" ],
739- spec = ["//bazel/rules/rules_score/trlc/config:score_requirements_model" ],
759+ spec = ["@score_tooling //bazel/rules/rules_score/trlc/config:score_requirements_model" ],
740760)
741761
742762trlc_requirements_test (
@@ -748,22 +768,22 @@ py_test(
748768 name = "test_safety_analysis_tools" ,
749769 size = "small" ,
750770 srcs = ["test_safety_analysis_tools.py" ],
751- deps = ["//bazel/rules/rules_score:safety_analysis_tools" ],
771+ deps = ["@score_tooling //bazel/rules/rules_score:safety_analysis_tools" ],
752772)
753773
754774py_test (
755775 name = "test_aou_forwarding_to_lobster" ,
756776 size = "small" ,
757777 srcs = ["test_aou_forwarding_to_lobster.py" ],
758- deps = ["//bazel/rules/rules_score:aou_forwarding_to_lobster" ],
778+ deps = ["@score_tooling //bazel/rules/rules_score:aou_forwarding_to_lobster" ],
759779)
760780
761781py_test (
762782 name = "test_rst_to_trlc" ,
763783 size = "small" ,
764784 srcs = ["rst_to_trlc_test.py" ],
765785 main = "rst_to_trlc_test.py" ,
766- deps = ["//bazel/rules/rules_score:rst_to_trlc_lib" ],
786+ deps = ["@score_tooling //bazel/rules/rules_score:rst_to_trlc_lib" ],
767787)
768788
769789py_test (
@@ -782,7 +802,6 @@ py_test(
782802test_suite (
783803 name = "all_tests" ,
784804 tests = [
785- ":requirements_image_tests" ,
786805 ":requirements_rst_tests" ,
787806 ":seooc_tests" ,
788807 ":sphinx_module_tests" ,
@@ -791,5 +810,6 @@ test_suite(
791810 ":test_safety_analysis_tools" ,
792811 ":test_trlc_rst_image_rendering" ,
793812 ":unit_component_tests" ,
813+ "//fixtures/image_srcs:requirements_image_tests" ,
794814 ],
795815)
0 commit comments