# graphviz 16.0.0 - Product: graphviz (https://whatsnew.fyi/product/graphviz) - Vendor: graphviz - Date: 2026-08-14 - Version: 16.0.0 - Original notes: https://gitlab.com/graphviz/graphviz/-/tags/16.0.0 - Permalink: https://whatsnew.fyi/product/graphviz/releases/16.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- See the CHANGELOG . - **added** — A new agnnodes_z function is available as an alternative to agnnodes - **changed** — The core plugin's JSON renderer no longer overwrites the graph's IO discipline - **removed** — The agmemconcat function has been removed - **removed** — Support for the undocumented postaction attribute has been removed - **changed** — gvmap discards cluster attribute information if any cluster attribute has a negative value - **removed** — The gvmap options -g, -l, and -p have been removed - **changed** — xdot_linear_grad.n_stops and xdot_radial_grad.n_stops are now of type unsigned - **fixed** — Rendering multiple graphs with the core plugin's FIG renderer no longer results in later outputs referring to colors defined in earlier outputs - **fixed** — libxdot rejects parsing of linear and radial gradients that claim a negative number of stops - **fixed** — Graphs that require top sorting during crossing minimization no longer cause Graphviz to crash - **fixed** — Fixed infinite loop in gvpr by making object traversals skip newly created objects in mutable graphs ###### Added - A new `agnnodes_z` function is available as an alternative to `agnnodes`. This new function should be preferred in new code. ###### Changed - The core plugin’s JSON renderer no longer overwrites the graph’s IO discipline. This will only be relevant to users writing their own plugin-using code. - **Breaking**: The `agmemconcat` function has been removed. - **Breaking**: Support for the undocumented `postaction` attribute has been removed. - `gvmap` discards `cluster` attribute information if any `cluster` attribute has a negative value. This should never occur in normal operation (the `cluster` program only attaches non-negative `cluster` attributes), but only if a user has incorrectly edited dot source. - **Breaking**: The `gvmap` options `-g`, `-l`, and `-p` have been removed. Their functionality was never implemented and passing these had no effect. - **Breaking**: `xdot_linear_grad.n_stops` and `xdot_radial_grad.n_stops` are now of type `unsigned`. ###### Fixed - Rendering multiple graphs with the core plugin’s FIG renderer no longer results in later outputs referring to colors defined in earlier outputs. - libxdot rejects parsing of linear and radial gradients that claim a negative number of stops. - Graphs that require “top sorting” during crossing minimization no longer cause Graphviz to crash. This was a regression in Graphviz 14.1.3. #2851 - Fixed infinite loop in gvpr #2849 by making object traversals skip newly created objects in mutable graphs. To do this, added API to get current object sequence numbers.