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.
Summary
Bumping
eclipse-score/loggingfrom score_tooling 1.1.2 to 2.2.0 makesbazel build //...fail: the PlantUML parser (//plantuml/parser/puml_cli, driven byarchitectural_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)datarouter_backend/datarouter_class_diagram.pumlhide empty membershidecommanddatarouter_backend/datarouter_message_client_impl_connecttodatarouter.puml!theme plain!themedatarouter_backend/datarouter_backend_datarouterbackend.puml[*] --> CreateSharedMemoryWriterdatarouter_backend/mw_log_datarouter_recorder.puml+ Log(const SlotHandle&, const T) - family of functionsmw_log_recorders.puml+ Log(const SlotHandle&, const T data) - family of functionsmw_log_file_backend.puml+ Log( T data ) - family of functionsdatarouter_backend/verbose_logging_static.puml+ friend operator==(const SlotHandle& l_value, const SlotHandle& r_value): boolfriendoperator memberdatarouter_backend/inter_process_communication.pumlInstantiates side channel to receive messages fromdatarouter_backend/write_factory_design.pumlMemory is allocated using Mman::mmap(), which maps …datarouter_backend/verbose_logging_sequence.pumlRepro: check out eclipse-score/logging, set
score_toolingto 2.2.0 (remove thesingle_version_overrideto 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_designdiagrams 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
hide,!theme, state-diagram transitions,friend/templated members, multi-line notes).strict/lenient attribute onarchitectural_designso unmodeled syntax is skipped with a warning (like the sequence parser's "ignore unmodeled syntax" change) instead of failing the build.