diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9de5cdc6..c17df6b6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,6 +38,6 @@ repos: entry: cr_checker/tool/pre-commit_wrapper --extensions h hpp c cpp rs rst py sh bzl ini yml yaml BUILD bazel --fix # this would be the better language implementation, but struggle with python tooling # language: python - language: unsupported_script + language: script minimum_pre_commit_version: 3.2.0 types_or: [python, yaml, ini, rst, sh, shell, bash, bazel, c, c++, rust] diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml index 80979be2..a11c5a37 100644 --- a/.pre-commit-hooks.yaml +++ b/.pre-commit-hooks.yaml @@ -15,6 +15,6 @@ entry: cr_checker/tool/pre-commit_wrapper --extensions h hpp c cpp rs rst py sh bzl ini yml yaml BUILD bazel --fix # this would be the better language implementation, but struggle with python tooling # language: python - language: unsupported_script + language: script minimum_pre_commit_version: 3.2.0 types_or: [python, yaml, ini, rst, sh, shell, bash, bazel, c, c++, rust] diff --git a/MODULE.bazel b/MODULE.bazel index daea5ba9..34121299 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -228,13 +228,13 @@ use_repo(pip, "manual_analysis_deps") bazel_dep(name = "trlc", version = "0.0.0") git_override( module_name = "trlc", - commit = "c7750ebd0520996e05b9a9bc91eb6a4f62030f22", + commit = "1872957ae981ae632a0ec6eafb5b8d3aa44bdb86", remote = "https://github.com/bmw-software-engineering/trlc.git", ) bazel_dep(name = "lobster", version = "0.0.0") git_override( module_name = "lobster", - commit = "56881461f9d3fde2918d1731aa5937aaf64cd67c", + commit = "94ed5961ca28ee1b840cd8a938138c17ae4da671", remote = "https://github.com/bmw-software-engineering/lobster.git", ) diff --git a/plantuml/BUILD b/plantuml/BUILD new file mode 100644 index 00000000..983c4059 --- /dev/null +++ b/plantuml/BUILD @@ -0,0 +1,19 @@ +# ******************************************************************************* +# Copyright (c) 2025 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 +# ******************************************************************************* +filegroup( + name = "fta_metamodel", + srcs = [ + "fta_metamodel.puml", + ], + visibility = ["//visibility:public"], +) diff --git a/plantuml/fta_metamodel.puml b/plantuml/fta_metamodel.puml new file mode 100644 index 00000000..09aabc5a --- /dev/null +++ b/plantuml/fta_metamodel.puml @@ -0,0 +1,63 @@ +' ******************************************************************************* +' Copyright (c) 2025 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 +' ******************************************************************************* + +@startuml + +' AND gate: flat bottom + elliptic arch on top +sprite $and + + + +' OR gate: pointed top, bowed sides, concave bottom +sprite $or + + + +' Transfer-In gate: upward triangle +sprite $transferin + + + +'skinparam linetype polyline +'skinparam linetype ortho + +!procedure $TopEvent($name, $alias) + rectangle "$name" as $alias +!endprocedure + +!procedure $IntermediateEvent($name, $alias, $connection) + rectangle "$name" as $alias + $alias -u-> $connection +!endprocedure + +!procedure $BasicEvent($name, $alias, $connection) + usecase "$name" as $alias + $alias -u-> $connection +!endprocedure + +!procedure $AndGate($alias, $connection) + rectangle " " <<$and>> as $alias + $alias -u-> $connection +!endprocedure + +!procedure $OrGate($alias, $connection) + rectangle " " <<$or>> as $alias + $alias -u-> $connection +!endprocedure + +!procedure $TransferInGate($alias, $connection) + rectangle " " <<$transferin>> as $alias + $alias -u-> $connection +!endprocedure + +@enduml diff --git a/plantuml/parser/puml_resolver/src/class_diagram/test/class_resolver_test.rs b/plantuml/parser/puml_resolver/src/class_diagram/test/class_resolver_test.rs index 6b3540c5..c23c93cf 100644 --- a/plantuml/parser/puml_resolver/src/class_diagram/test/class_resolver_test.rs +++ b/plantuml/parser/puml_resolver/src/class_diagram/test/class_resolver_test.rs @@ -27,13 +27,13 @@ use test_framework::{run_case, DefaultExpectationChecker, DiagramProcessor}; // ===== Class Resolver adapter DiagramProcessor ===== struct ClassResolverRunner; impl DiagramProcessor for ClassResolverRunner { - type Output = HashMap; + type Output = ClassDiagram; type Error = ClassResolverError; fn run( &self, files: &HashSet>, - ) -> Result, HashMap>, ClassResolverError> { + ) -> Result, ClassDiagram>, ClassResolverError> { let mut results = HashMap::new(); let mut parser = PumlClassParser; let mut resolver = ClassResolver::new(); diff --git a/tools/sphinx/BUILD b/tools/sphinx/BUILD new file mode 100644 index 00000000..d1a64d03 --- /dev/null +++ b/tools/sphinx/BUILD @@ -0,0 +1,44 @@ +# ******************************************************************************* +# 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 +# ******************************************************************************* + +load("@pip_rules_score//:requirements.bzl", "requirement") +load("@rules_java//java:defs.bzl", "java_binary") +load("@rules_python//sphinxdocs:sphinx.bzl", "sphinx_build_binary") + +java_binary( + name = "plantuml", + main_class = "net.sourceforge.plantuml.Run", + visibility = ["//visibility:public"], + runtime_deps = [ + "@blueprint_maven_dependencies//:net_sourceforge_plantuml_plantuml", + ], +) + +sphinx_build_binary( + name = "sphinx-build", + visibility = ["//visibility:public"], + deps = [ + "@lobster//sphinx_lobster:sphinx_lobster_builder", + "@score_tooling//plantuml/sphinx/clickable_plantuml", + "@trlc//tools/sphinx/extensions/trlc", + requirement("sphinx"), + requirement("sphinx_rtd_theme"), + requirement("myst_parser"), + requirement("readthedocs_sphinx_ext"), + requirement("rst2pdf"), + requirement("sphinxcontrib-umlet"), + requirement("svglib"), + requirement("sphinxcontrib-plantuml"), + "@rules_python//python/runfiles", + ], +)