Header image
avatar
Sönke Ludwig • Fri, 26 Sep 2025

Scripting System Improvements, Performance and Stability · Release Candidate 34

The scripting API now has a much more in-depth documentation available and receives some refinements. We also renamed "add-ons" to "extensions" to match the well-known "browser extensions". On top of that, this release also includes the usual stability and performance improvements.

Scripting API Reference and Extension Rename

The existing API documentation for the scripting system was very brief and often did not contain sufficient information for implementing complex functionality. The new scripting API reference now has detailed documentation for all functions and classes, including a more detailed description and documentation of the parameters, return values and error conditions.

On top of that, many functions now also feature usage examples and the source code of example code is now displayed with syntax highlighting, making it more readable. Finally, functions and classes are also cross-linked within the documentation.

To make the terminology more familiar, we also decided to rename "add-ons" to "extensions". This is in line with "browser extensions", which is a familiar concept to many people.

Refined Library Node Scripting APIs

Objects corresponding to library nodes, such as event nodes, collection nodes or file nodes, exposed setter functions for all of their fields in previous versions. Since some of those fields must adhere to certain constraints, or need to be changed in lock-step with fields of other nodes, this approach was error-prone and could lead to unusable library catalog if used incorrectly.

To mitigate this, this release removes all these critical setter functions. For collection nodes (as well as taxonomy collections and export collections), there are new addItem/addItems methods that replace the items().add() method that has been removed. More of these higher-level APIs will be added in the future.

Stability and Performance

The search functionality is now considerably faster in libraries that contain a large number (thousands) of different keywords. Also, refreshing the keyword tree does not temporarily block the user interface anymore in this case.

As usual, there are also a few bug fixes, including one where some metadata fields would not be displayed in the metadata pane when an XMP sidecar file was present.

As always, see the change log for the full list of changes.

Comments for the post are currently disabled.

0 comments