Skip to content

plantuml parser: 2.x rejects standard PlantUML constructs used in logging's design diagrams (blocks score_tooling 2.x adoption) #447

Description

@dcalavrezo-qorix

Summary

Bumping eclipse-score/logging from score_tooling 1.1.2 to 2.2.0 makes bazel build //... fail: the PlantUML parser (//plantuml/parser/puml_cli, driven by architectural_design) rejects 10 existing design diagrams that the 1.1.2 parser accepted. The constructs are standard PlantUML.

Failing diagrams (logging main, target //score/mw/log/design/backend:mw_log_backend_architectural_design)

File Fails at Construct
datarouter_backend/datarouter_class_diagram.puml line 5: hide empty members class diagram hide command
datarouter_backend/datarouter_message_client_impl_connecttodatarouter.puml line 2: !theme plain preprocessor !theme
datarouter_backend/datarouter_backend_datarouterbackend.puml line 5: [*] --> CreateSharedMemoryWriter state diagram (start pseudo-state transition)
datarouter_backend/mw_log_datarouter_recorder.puml line 11: + Log(const SlotHandle&, const T) - family of functions member with template/qualified types + trailing free text
mw_log_recorders.puml line 7: + Log(const SlotHandle&, const T data) - family of functions same
mw_log_file_backend.puml line 7: + Log( T data ) - family of functions same
datarouter_backend/verbose_logging_static.puml line 45: + friend operator==(const SlotHandle& l_value, const SlotHandle& r_value): bool friend operator member
datarouter_backend/inter_process_communication.puml line 27: Instantiates side channel to receive messages from multi-line note body
datarouter_backend/write_factory_design.puml line 49: Memory is allocated using Mman::mmap(), which maps … multi-line note body
datarouter_backend/verbose_logging_sequence.puml (sequence diagram) not yet isolated

Repro: check out eclipse-score/logging, set score_tooling to 2.2.0 (remove the single_version_override to 1.1.2 and bump the trlc git_override to 3.x), bazel build --keep_going --config=x86_64-linux //score/mw/log/design/backend/....

Impact

Any repo with architectural_design diagrams written against the 1.x parser can be blocked from adopting score_tooling 2.x (and therefore the shared coverage module) until either the parser accepts these constructs or the diagrams are rewritten. For logging this currently blocks eclipse-score/logging's coverage migration PR.

Suggestions

  • Treat the table above as a regression corpus for the parser (hide, !theme, state-diagram transitions, friend/templated members, multi-line notes).
  • Consider a strict/lenient attribute on architectural_design so unmodeled syntax is skipped with a warning (like the sequence parser's "ignore unmodeled syntax" change) instead of failing the build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions