v0.3.5 2026-01-16
🎨 NeMo Data Designer v0.3.5 Release Notes
##💥 Breaking Change: Plugins
We have made some updates to the task and column generation abstractions, which come with some breaking changes for plugin developers.
- No more
GeneratorMetadata
We have completely removed the GeneratorMetadata object (as well as it's parent ConfigurableTaskMetadata object). This means you no longer need to define a metadata static method when creating a column generator implementation.
As part of this refactor, we have added two new subclasses to use for different generation strategies:
data_designer.engine.column_generators.generators.base.ColumnGeneratorFullColumndata_designer.engine.column_generators.generators.base.ColumnGeneratorCellByCell
Before (v0.3.4)
from data_designer.engine.column_generators.generators.base import (
ColumnGenerator,
GenerationStrategy,
GeneratorMetadata,
)
class IndexMultiplierColumnGenerator(ColumnGenerator[IndexMultiplierColumnConfig]):
@staticmethod
def metadata() -> GeneratorMetadata:
"""Define metadata about this generator."""
return GeneratorMetadata(
name="index-multiplier",
description="Generates values by multiplying the row index by a user-specified multiplier",
generation_strategy=GenerationStrategy.FULL_COLUMN,
)
# implementation below
...After (v0.3.5)
from data_designer.engine.column_generators.generators.base import ColumnGeneratorFullColumn
class IndexMultiplierColumnGenerator(ColumnGeneratorFullColumn[IndexMultiplierColumnConfig]):
# implementation below
...required_columnsandside_effect_columnsnow must be explicitly defined on classes that inherit fromSingleColumnConfig
Before (v0.3.4)
from data_defrom data_designer.config.column_configs import SingleColumnConfig
class IndexMultiplierColumnConfig(SingleColumnConfig):
"""Configuration for the index multiplier column generator."""
# Configurable parameter for this plugin
multiplier: int = 2
# Required: discriminator field with a unique Literal type
# This value identifies your plugin and becomes its column_type
column_type: Literal["index-multiplier"] = "index-multiplier"After (v0.3.5)
from data_designer.config.column_configs import SingleColumnConfig
class IndexMultiplierColumnConfig(SingleColumnConfig):
"""Configuration for the index multiplier column generator."""
# Configurable parameter for this plugin
multiplier: int = 2
# Required: discriminator field with a unique Literal type
# This value identifies your plugin and becomes its column_type
column_type: Literal["index-multiplier"] = "index-multiplier"
@property
def required_columns(self) -> list[str]:
return []
@property
def side_effect_columns(self) -> list[str]:
return []While the updated version is more verbose, it will ensure column generator developers are aware of these properties, which are essential for building a working generator.
- Removed
emojifrom thePluginobject
Now that plugins support more that column generators, the emoji field is not always applicable.
Before (v0.3.4)
from data_designer.plugins import Plugin, PluginType
# Plugin instance - this is what gets loaded via entry point
plugin = Plugin(
impl_qualified_name="data_designer_index_multiplier.plugin.IndexMultiplierColumnGenerator",
config_qualified_name="data_designer_index_multiplier.plugin.IndexMultiplierColumnConfig",
plugin_type=PluginType.COLUMN_GENERATOR,
emoji="🔌",
)After (v0.3.5)
from data_designer.plugins import Plugin, PluginType
# Plugin instance - this is what gets loaded via entry point
plugin = Plugin(
impl_qualified_name="data_designer_index_multiplier.plugin.IndexMultiplierColumnGenerator",
config_qualified_name="data_designer_index_multiplier.plugin.IndexMultiplierColumnConfig",
plugin_type=PluginType.COLUMN_GENERATOR,
)What's Changed
- fix: dataset metadata should be optional in
PreviewResultsby @andreatgretel in #223 - refactor: remove task metadata property by @johnnygreco in #216
- refactor: update single column base class by @johnnygreco in #206
- chore: lazy 3rd party imports by @nabinchha in #222
- fix: post merge issues by @nabinchha in #224
- chore: minor readme updates by @johnnygreco in #225
- chore: streamline generation metadata + consolidate sdg json by @nabinchha in #226
Full Changelog: v0.3.4...v0.3.5