changes

The Repository class is now called ClientThe Repository object has been renamed to Client to better capture its functionality. You can continue to use the Repository object for backwards compatibility, but it will be removed in a future release.

How to migrate: Rename all references to Repository in your code to Client.

The BaseStepConfig class is now called BaseParameters

The BaseStepConfig object has been renamed to BaseParameters to better capture its functionality. You can NOT continue to use the BaseStepConfig.

This is part of a broader configuration rehaul which is discussed next.

How to migrate: Rename all references to BaseStepConfig in your code to BaseParameters.

Configuration Rework

Alongside the architectural shift, Pipeline configuration has been completely rethought. This video gives an overview of how configuration has changed with ZenML in the post ZenML 0.20.0 world.

What changed?

ZenML pipelines and steps could previously be configured in many different ways:

On the @pipeline and @step decorators (e.g. the requirements variable)

In the __init__ method of the pipeline and step class

Using @enable_xxx decorators, e.g. @enable_mlflow.

Using specialized methods like pipeline.with_config(...) or step.with_return_materializer(...)

Some of the configuration options were quite hidden, difficult to access and not tracked in any way by the ZenML metadata store.

With ZenML 0.20.0, we introduce the BaseSettings class, a broad class that serves as a central object to represent all runtime configuration of a pipeline run (apart from the BaseParameters).

Pipelines and steps now allow all configurations on their decorators as well as the .configure(...) method. This includes configurations for stack components that are not infrastructure-related which was previously done using the @enable_xxx decorators). The same configurations can also be defined in a YAML file.

Read more about this paradigm in the new docs section about settings.