SMTK 21.05 Release Notes

See also SMTK 21.04 Release Notes for previous changes.

Changes to Project Subsystem

A major revision was undertaken to the smtk::project namespace that is not backward compatible. The previous Project class was hard-coded to a use single attribute resource and one or two model resources. The new Project class is an SMTK resource that can support any number of resources including custom ones, with assigned roles. The new Project class can optionally be scoped to a list of available operations and resource types. New Project instances store and retrieve their contents as atomic operations with the file system. Projects can now be described entirely using Python, making it easier to implement custom project types for different solvers.

More information is available in the SMTK user guide and there is also a new create_a_project tutorial.

Graph Resource Changes

Graph-resource ArcMap

The graph resource now provides a custom subclass of TypeMap named smtk::graph::ArcMap. This subclass deletes the copy and assignment constructors to prevent modifications to accidental copies of arcs rather than to the resource’s arc container.

External changes

smtk::graph::ResourceBase::ArcSet type-alias was removed and the ArcMap class can now be used directly.

If you maintain external code that depends on smtk::graph::Resource, you will need to replace the ResourceBase::ArcSet type-alias with ArcMap (which lives in smtk::graph not smtk::graph::ResourceBase).

Software Process Changes

CMake package directory

The CMake package directory for SMTK is now in a location that CMake searches by default. This removes the need to do -Dsmtk_DIR and instead the install prefix can be given in the CMAKE_PREFIX_PATH variable.