View Issue Details

IDProjectCategoryView StatusLast Update
0036859mantisbtcode cleanuppublic2026-01-29 15:07
Reporterraspopov Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version2.28.0 
Summary0036859: Optimization of Graphviz calls
Description

After testing Graphviz for issue 0036855, I realized that the old code unnecessarily creates a temporary file for each utility call. It also ignores warnings issued by the utilities, even if they have worked successfully. This complicates Graphviz's configuration in the system.

TagsNo tags attached.

Activities

raspopov

raspopov

2026-01-29 11:39

reporter   ~0070744

PR: https://github.com/mantisbt/mantisbt/pull/2175

Now, for example, if you specify an unavailable font (e.g. $g_relationship_graph_fontname = 'Foobar';), a warning will be displayed.

foobar-font-warning.png (33,534 bytes)   
foobar-font-warning.png (33,534 bytes)   
raspopov

raspopov

2026-01-29 14:32

reporter   ~0070746

I have some doubts. I've read about the challenges of running external utilities correctly and without deadlocks in PHP, especially if they use stderr and output a lot of data to stdout. Perhaps we should delegate this task to Symfony Process (composer require symfony/process).

raspopov

raspopov

2026-01-29 15:07

reporter   ~0070747

Alternatively, we can port the rendering of graphs to Viz.js. https://viz-js.com/