Graphviz 12.2.1

Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains.

Tags presentation visualization graph
License EPL
State initial

Recent Releases

12.2.107 Dec 2024 16:45 minor bugfix: Added: Support for building the SWIG-generated R language bindings has been integrated into the CMake build system. This is controllable by the. `-DENABLE_R= AUTO ON OFF ` option. A sandboxing wrapper, `dot_sandbox`, is now included with Graphviz. Users should prefer their platform s native security solutions, but if nothing better is available this wrapper offers safe processing of untrusted inputs in some scenarios. Changed: JPEG images without an `APP0` leading segment are supported for use in `src` fields and friends. Previously Graphviz was overly strict with the types of JPEGs it would recognize. #2619. : The GVPR library program `depath` no longer acts on previously deleted nodes, causing unpredictable results. #1702. Void-typed function parameters (`int foo(void bar)`) and variables `void baz;` in GVPR are gracefully rejected. #2585. Input that induce a set node height but no set node width no longer crash with the failure Assertion failed: `(r- boundary i boundary NUMDIMS + i )`, function RTreeInsert . It is typically not obvious to users when their input falls into this situation, hence why the assertion message is quoted here. This was a regression in Graphviz 12.0.0. #2613. Strings containing double quote characters preceded by escape sequences (e.g. ` n"`) are once again correctly escaped in dot or canonical output. This was a regression in Graphviz 9.0.0. #2614. `dot_builtins` no longer lists duplicate format options in its error messages. #2604. A precision error that resulted in truncated edge lines has been corrected. This was a regression in Graphviz 12.0.0. #2620. The xlib plugin (`-Tx11`) resets its initialization state during finalization. This a rare scenario where multiple input graphs are supplied and initialization for one of the not-first graphs fails. In this scenario, finalization would be unaware of this failure and act on invalid state.
12.2.028 Nov 2024 18:25 major bugfix: Removed: Visual Studio build files have been removed. CMake is now the only supported. Build system on Windows. Added: Support for building the SWIG-generated PHP language bindings has been. Integrated into the CMake build system. This is controllable by the `-DENABLE_PHP= AUTO ON OFF ` option. Support for building the SWIG-generated Python language bindings has been. Integrated into the CMake build system. This is controllable by the `-DENABLE_PYTHON= AUTO ON OFF ` option. Changed: An algorithm r to that described in RFC 1942 and/or the CSS 2.1. Specification is now used for sizing table cells within HTML-like labels. This is less scalable than the network simplex algorithm it replaces, but in. General produces more intuitive results. #2159 Tooltips on table elements within HTML-like labels are now propagated to SVGs. Produced by the core plugin (`-Tsvg`) even when the elements do not have `href` attributes. #1425. In the Autotools build system, `pkg-config` is the only supported way for. Discovering Guile. Previous use of `guile-config*` has been removed. #2606 The Autotools release artifacts for macOS (`Darwin_*_graphviz-*.tar.gz`) now. Use relative paths in links to dependent libraries and plugins. This should Make the tree relocatable instead of having to live at /Users/gitlab/builds. #2501. `gml2gv` no longer maps GML `label` attributes to Graphviz `name` attributes. These are now mapped to Graphviz `label` attributes. #2586. : In the Autotools build system, the core plugin links against libm, ing some. Unresolvable symbols. This was a regression in Graphviz 4.0.0. Though it would Primarily have affected non-Graphviz applications attempting to load this Plugin on Linux. The osage layout engine now understands a cluster to be indicated by the. Common rules, including the cluster prebeing case insensitive and the `cluster=true` attribute as an alternative. #2187. `acyclic` once again produces its output on stdout. This was a regre
12.1.225 Nov 2024 22:25 minor bugfix: Changed: In the Autotools build system, the rsvg plugin is no longer built when pangocairo is missing. Previously, when librsvg was found but pangocairo was not, this plugin would be enabled and built but offer no functionality. The RSVG plugin now requires librsvg 2.42.7. The RSVG plugin uses newer librsvg APIs where available. #2206. : In the Autotools build system, fallback discovery of libANN when `pkg-config` support is unavailable has been corrected to properly enable use of libANN. This primarily affects `mingle` users on Debian-based operating systems or macOS. The RSVG plugin no longer dereferences a null pointer when failing to create new RSVG handles. The Pango plugin no longer assumes a little endian environment when loading PS images. Deleting a vgpane when using the Tclpathplan module no longer frees an invalid pointer. This appears to have existed since the first revision of Graphviz. That is, deleting a vgpane has always crashed the TCL interpreter or silently corrupted the heap prior to this release.
12.1.123 Nov 2024 19:25 minor bugfix: Added: Support for building the SWIG-generated Guile language bindings has been integrated into the CMake build system. This is controllable by the. `-DENABLE_GUILE= AUTO ON OFF ` option. Support for building the SWIG-generated Java language bindings has been integrated into the CMake build system. This is controllable by the. `-DENABLE_JAVA= AUTO ON OFF ` option. Support for building the SWIG-generated Lua language bindings has been integrated into the CMake build system. This is controllable by the. `-DENABLE_LUA= AUTO ON OFF ` option. Support for building the SWIG-generated Perl language bindings has been integrated into the CMake build system. This is controllable by the. `-DENABLE_PERL= AUTO ON OFF ` option. Changed: Comparison against a plugin s `knowncolors` array is now case-insensitive, rather than requiring all entries of the array to be lower-cased. The requirement that the `knowncolors` array is lexically ordered remains. The Smyrna Color Theme , Edge Attr. For Color , and Node Alpha settings have been removed. The values of these settings had no effect. Graphviz libraries set -on-exec on job output files being written and user shape files being read. This should only affect applications using Graphviz libraries that rely on a fork-and-exec-ed child subprocess being able to access these open files. Applications with this requirement can regain the old behavior by unsetting the -on-exec flag immediately after creating these objects. Graphviz libraries themselves are not affected by whether or not this flag is set. The Autotools build system no longer detects or uses the `-perl` option to SWIG to build Perl language bindings. Only `-perl5` is used. : A reference to the non-existent `colxlate` function in an error message has been corrected to `colorxlate`. `gvgen` no longer crashes sometimes when running random graph generation. This was a regression in Graphviz 12.0.0. #2588. Dashed and dotted pen styles in VRML images loaded by th
12.1.028 Sep 2024 05:05 major bugfix: Added: Enable the GNU Triangulated Surface Library (GTS) in Windows builds. #2557. `dot_builtins` now also includes the vt plugin (`-Tvt` output format). The vt plugin gained new output formats, `-Tvt-4up`, `-Tvt-6up`, and. `-Tvt-8up`, for drawing monochrome 4-, 6-, and 8-pixel-per-character. Visualizations, respectively. The CMake build system now includes the WebP plugin also on Windows. A Windows x64 `mingle` binary is now built with CMake. Support for building the SWIG-generated D language bindings has been. Integrated into the CMake build system. This is controllable by the `-DENABLE_D= AUTO ON OFF ` option. Support for building the SWIG-generated Go language bindings has been. Integrated into the CMake build system. This is controllable by the `-DENABLE_GO= AUTO ON OFF ` option. The target integer size can be set with. `-DINTGOSIZE= ` if it is not auto-detected correctly. Support for building the SWIG-generated JavaScript language bindings has been. Integrated into the CMake build system. This is controllable by the `-DENABLE_JAVASCRIPT= AUTO ON OFF ` option. Changed: The GTK plugin, for which build system support was removed in Graphviz 10.0.1. Has been removed from the portable source tarball. #1848 To build from source, the required C++ standard has been upgraded from C++11 to C++17. #2536. Breaking: the CMake variables `enable_ltdl`, `with_expat`, `with_gvedit`. `with_smyrna`, `with_zlib`, `enable_tcl`, `enable_swig` and `enable_sharp`. Have been renamed to `ENABLE_LTDL`, `WITH_EXPAT`, `WITH_GVEDIT`, `WITH_SMYRNA`, `WITH_ZLIB`, `ENABLE_TCL`, `ENABLE_SWIG` and `ENABLE_SHARP`. Respectively. To build from source, the required Python version has been upgraded from 3.6 to 3.8. #2549. Build system discovery of GDK now looks for GDK 3.0 instead of GDK 2.0. #1848. Visual Studio build files are no longer distributed in the portable source. Tarball. Builds on Windows must now use a repository clone. : `ccomps`, `gc`, the fdp layout engin
12.0.005 Jul 2024 10:05 major bugfix: Added: Support for building the Graphviz TCL bindings has been integrated into the CMake build system. This is controllable by the `-Denable_tcl= AUTO ON OFF ` option. Support for building the SWIG-generated TCL language bindings has been integrated into the CMake build system. This is controllable by the. `-Denable_swig= AUTO ON OFF ` option. Support for building the SWIG-generated C# language bindings has been integrated into the CMake build system. This is controllable by the. `-Denable_sharp= AUTO ON OFF ` option. Changed: The Catch2-based test suite in the CMake build system has been ported from Catch2 v2 to Catch2 v3. Support for Catch2 v2 has been removed. #2465. The Windows release artifacts are now built on Windows 2022 and Visual Studio 2022 17 and toolset v143. The macOS release artifacts are now built on macOS 13 (Ventura). The CMake build system no longer links `dot_builtins` against libsocket. The CMake build system now only compiles `dot_builtins` if building shared libraries (`-DBUILD_SHARED_LIBS=ON`). Breaking: the `polygon_t.style` member is now a struct. Breaking: the `LEN` and `MAXDOUBLE` constants have been removed. Accuracy in processing compass points has been improved. Breaking: the `CMYK_BYTE` member of the `color_type_t` enum and the corresponding `gvolor_t.u.cmyk` field have been removed. The color format this mapped to was neither documented nor implemented correctly. The Windows releases available for download on graphviz.org now only include CMake-produced packages, not MS Build-produced packages. The MS Build packages are available in the Gitlab package registry if needed. The CMake build system more pervasively sets rpaths of compiled binaries, libraries, and plugins, which should result in them more reliably finding their supporting components. without ` LD_LIBRARY_PATH`/` DYLD_LIBRARY_PATH` tricks. Breaking: the `Agraph_t.n_id` field is now an opaque pointer. Breaking: the libpack functions `putGraphs`, `putRect
11.0.029 Apr 2024 18:25 major feature: Added: `gv2gml` gained a `-y` option to output the yWorks.com variant of GML instead of the default. A new command line option, `--filepath= ` has been added to perform the. Function previously served by the ` GV_FILE_PATH` environment variable, use of Which was removed in Graphviz 6.0.1. Unlike the old ` GV_FILE_PATH` mechanism, `--filepath= ` takes effect regardless of the setting of the ` SERVER_NAME`. Environment variable. #2396 Changed: `gvpack`, in addition to recognizing a cluster name preas a mark of a. Cluster, now recognizes this case insensitively as well as recognizing the `cluster` attribute. This is more consistent with how the Graphviz libraries. Work. Breaking: `pkg-config` (.pc) files shipped with Graphviz now include. ` pre /include` in the include path in addition to. ` pre /include/graphviz`. Previously this missing path meant building Graphviz demo examples against an installation of Graphviz in a non-system. Path would not work. #2474 The core PostScript output format (`-Tps`) warns if using an. Out-of-specification font name. To avoid this, use a more sophisticated output Format like Cairo (`-Tps:cairo`) that does font name lookup and translation. #218. Breaking: The libpack functions `putRects`, `packRects`, `putGraphs`. `packGraphs`, `packSubgraphs`, `pack_graph`, `shiftGraphs`, `ccomps`. `cccomps`, and `pccomps` now take the number of items they are operating on. (`ng`) as a `size_t`. Breaking: The `bsearch_cmpf` and `qsort_cmpf` typedefs have been removed. `dot -c -v`, when constructing the config6 file, includes comments explaining. Any attempted actions that failed during plugin loading. #2456 Breaking: The `Ndim` global is now a `unsigned short`. Fdpgen no longer truncates graph names when inferring new names for connected. Component subgraphs. Breaking: The `nodequeue` type has been removed. Breaking: The field `Agraphinfo_t.n_nodes` has been removed. The function. `agnnodes` is a more robust way of retrieving the
10.0.111 Feb 2024 12:02 minor feature: ### Added - Releases now include packages for Rocky Linux (https://rockylinux.org/) 8 and 9. - A new output format, `-Tsvg_inline`, has been added to generate a header-less SVG suitable for inlining into HTML. #2285 - The functionality of the `acyclic`, `tred` and `unflatten` command line tools are now exposed via the `graphviz_acyclic`, `graphviz_tred` and `graphviz_unflatten` API functions in libcgraph. #2194 - `graphviz_node_induce` is available as a new API function in cgraph.h. - `tred` gained a `-o` command line option to redirect its output to a file. ### Changed - The Criterion unit tests have been removed and migrated to Pytest. This is primarily relevant to downstream packagers of Graphviz. #2443 - **Breaking**: `Dtdisc_t.memoryf` and its associated macros has been removed. - **Breaking**: The `Dt_t.type` field has been removed. - **Breaking**: The `dtfound`, `DT_FOUND`, `dtleast`, and `dtmost` macros have been removed. - The nrtmain.c test program has been removed from the portable tarball. - The TCL Graphviz packages for inter-release versions/snapshots report themselves as `b` instead of ` dev.`. This fixes a problem wherein TCL would see ` dev` as being invalid characters to appear in a version. #2370 - Support for discovering Lua via `lua-config*` has been removed from the Autotools build system. - Lua discovery in the Autotools build system should now respect the location of your Lua installation and not unconditionally attempt installation into `/usr`. #2152 - The GTK plugin is no longer built or distributed. This plugin relies on GTK 2 and X11. If you use this plugin, please contact the maintainers to let them know it is worthwhile re-enabling this and forward porting it to GTK 3/4 and Wayland. #1848 - In the Autotools build system, `LIBPOSTFIX=` can now be used to suppress `64` being appended to the library installation path. - The `-m` command line option, whose functionality was d
9.0.009 Jan 2024 04:29 minor feature: ### Added - On non-Windows platforms, new `-Tkitty` and `-Tkittyz` output formats are available that render to the Kitty terminal emulator s graphvics protocol. - HTML/CSS-style 3 letter hex colors are supported. Each R/G/B letter is duplicated to form a 6 letter hex color. E.g. `#09c` is equivalent to `#0099cc`. #2377 ### Changed - **Breaking**: The definition of `adjmatrix_t` is no longer exposed in public headers. - **Breaking**: The upper limit for minimum edge length (`Agedgeinfo_t.minlen`) has been expanded from `USHRT_MAX` to `INT_MAX`. #2413 - **Breaking**: The libcdt macros `DTTREEMATCH`, `DTTREESEARCH`, `dtvnext`, `dtvcount`, `dtvhere`, and `dtcharhash` have been removed. - **Breaking**: The libcgraph macros `AGHEADPOINTER`, `AGRIGHTPOINTER`, `AGLEFTPOINTER`, `FIRSTNREF`, `NEXTNREF`, `PREVNREF`, `LASTNREF`, `NODEOF`, `FIRSTOUTREF`, `LASTOUTREF`, `FIRSTINREF`, `NEXTEREF`, and `PREVEREF` have been removed. - **Breaking**: The libcgraph types `Agnoderef_t` and `Agedgeref_t` have been removed. - **Breaking**: The libcgraph function `agflatten` has been removed. - **Breaking**: The `Agdesc_s.flatlock` field has been removed. - **Breaking**: The `str` parameter from `gvPluginList` has been removed. - **Breaking**: The definition of the `elist_append` and `alloc_elist` macros have been changed to use newer allocation functions. Users were/are not expected to call these macros. - The functions `ageqedge`, `agtail`, `aghead`, `agopp`, `agmkout`, and `agmkin` have been reintroduced. These were previously removed in Graphviz 3.0.0. #2433 - **Breaking**: The first parameter `dt` to the `makef` and `freef` callbacks defined in cdt.h has been removed. - Gvedit now identifies itself with organization name Graphviz and application name gvedit when reading and writing Qt-based settings. It would previously use organization name Trolltech and application name MDI Example . If you have existing settings under the old identification
8.1.015 Aug 2023 13:18 minor feature: Added: On non-Windows platforms, new `-Tvt100` and `-Tvt100-24bit` output formats are. Available that do rudimentary rendering to a terminal that supports ANSI Escape sequences. Some notes about the interaction with wide-oriented streams were added to the. Cgraph man page. Changed: When memory allocation failures cause Graphviz to exit, information about the. Failing allocation is included in the error message. : Failure of arrowhead and arrowtail to respect penwidth #372 . Also for the `curve` and `icurve` Edge arrow shapes. Iteration calculations based on `nslimit` and/or `nslimit1` attributes are. Clamped to ` 0, INT_MAX `. That is, calculations that result in a negative Number of iterations are rounded up to `0` and those that result in a number of iterations that exceeds `INT_MAX` are rounded down to `INT_MAX`. Iteration. Numbers outside this range do not have useful behavior, but could be caused Unintentionally by users. Setting `xdotversion` attributes that parse as greater than 17 (`xdotversion` is parsed as a series of digits, ignoring all non-digits) no longer causes an. Out of bounds read when rendering to xdot. #2390 Icon size in the macOS Graphviz.app has been so icons are no longer. Invisible. Compiling the portable source tarball on a machine with SWIG 4.1.0 no. Longer fails due to missing PHP files. #2388 Syntax for a loop in `gvmap.sh` has been corrected. This was a regression in Graphviz 2.50.0. #2404.
8..0.505 Jul 2023 19:19 minor feature:
2.44.012 Apr 2020 07:05 minor feature:
2.42.407 Apr 2020 17:45 minor feature:
2.42.310 Oct 2019 23:25 minor feature:
2.42.105 Oct 2019 03:15 minor feature:
2.42.202 Oct 2019 00:42 major feature: https://gitlab.com/graphviz/graphviz/raw/master/ChangeLog