Skip to content

Releases: zenml-io/zenml

0.53.0

16 Jan 04:25
Compare
Choose a tag to compare

Important

This release has been updated (16th January, 2024)

A bug was introduced in the helm chart starting from version 0.50.0. All releases from that version have been updated with the fix. More details: #2234

This release is packed with a deeply reworked quickstart example and starter template, the removal of secret manager stack component, improved experience with Cloud Secret Stores, support for tags and metadata directly in Model Versions, some breaking changes for Model Control Plane and a few bugfixes.

New features

Try out the new quickstart and starter template featuring the Model Control Plane

Maybe it slipped you by, but ZenML has a brand new feature, and it's called the Model Control Plane (MCP)! The MCP allows users to register their Models directly into their zenml servers, and associate metadata, runs, and artifacts with it. This gives users a model-centric view into ZenML, rather than a pipeline-centric one. Try it out now with the quickstart:

pip install "zenml[server,templates]"
mkdir zenml_starter_template
cd zenml_starter_template
copier copy --trust -r 2023.12.18 https://github.com/zenml-io/template-starter.git .

# or `zenml init --template starter`

# Now either read the README or run quickstart.ipynb

Alternatively, just clone the repo and run the quickstart.

Please note that while frontend features are Cloud Only, OSS users can still use the MCP via the CLI and Python SDK.

Breaking changes

Secret Manager stack components sunset

Upon upgrading, all Secrets Manager stack components will be removed from the Stacks that still contain them and from the database. This also implies that access to any remaining secrets managed through Secrets Manager stack components will be lost. If you still have secrets configured and managed through Secrets Manager stack components, please consider migrating all your existing secrets to the centralized secrets store before upgrading by means of the zenml secrets-manager secret migrate CLI command. Also see the zenml secret --help command for more information.

Renaming "endpoints" to "deployments" in Model Control Plane

This is just a renaming to provide better alignment with industry standards. Though, it will affect:

  • ArtifactConfig(..., is_endpoint_artifact=True) now is ArtifactConfig(..., is_deployment_artifact=True)
  • CLI command zenml model endpoint_artifacts ... now is zenml model deployment_artifacts ...
  • Client().list_model_version_artifact_links(..., only_endpoint_artifacts=True) now is Client().list_model_version_artifact_links(..., only_deployment_artifacts=True)
  • ModelVersion(...).get_endpoint_artifact(...) now is ModelVersion(...).get_deployment_artifact(...)

Major bugfixes

What's Changed

Full Changelog: 0.52.0...0.53.0

0.52.0

16 Jan 04:25
Compare
Choose a tag to compare

Important

This release has been updated (16th January, 2024)

A bug was introduced in the helm chart starting from version 0.50.0. All releases from that version have been updated with the fix. More details: #2234

This release adds the ability to pass in pipeline parameters as YAML configuration and fixes a couple of minor issues affecting the W&B integration and the way expiring credentials are refreshed when service connectors are used.

Breaking Change

The current pipeline YAML configurations are now being validated to ensure that configured parameters match what is available in the code. This means that if you have a pipeline that is configured with a parameter that has a different value that what is provided through code, the pipeline will fail to run. This is a breaking change, but it is a good thing as it will help you catch errors early on.

This is an example of a pipeline configuration that will fail to run:

parameters:
    some_param: 24

steps:
  my_step:
    parameters:
      input_2: 42
# run.py
@step
def my_step(input_1: int, input_2: int) -> None:
    pass

@pipeline
def my_pipeline(some_param: int):
    # here an error will be raised since `input_2` is
    # `42` in config, but `43` was provided in the code
    my_step(input_1=42, input_2=43)

if __name__=="__main__":
    # here an error will be raised since `some_param` is
    # `24` in config, but `23` was provided in the code
    my_pipeline(23)

What's Changed

Full Changelog: 0.51.0...0.52.0

0.51.0

16 Jan 04:21
Compare
Choose a tag to compare

Important

This release has been updated (16th January, 2024)

A bug was introduced in the helm chart starting from version 0.50.0. All releases from that version have been updated with the fix. More details: #2234

This release comes with a breaking change to the model version model, a new use-case example for NLP, and a range of bug fixes and enhancements to the artifact management and pipeline run management features.

Breaking Change

  • Artifact Version Table + Artifact Tagging by @fa9r in #2081
  • Converting model models to use the new hydration paradigm by @bcdurak in #2101

New Example

  • NLP Template Example is a new example that demonstrates how to use ZenML for NLP tasks. by @safoinme in #2070

What's Changed

Full Changelog: 0.50.0...0.51.0

0.50.0

16 Jan 04:17
Compare
Choose a tag to compare

Important

This release has been updated (16th January, 2024)

A bug was introduced in the helm chart starting from version 0.50.0. All releases from that version have been updated with the fix. More details: #2234

In this release, we introduce key updates aimed at improving user experience and security.
The ModelConfig object has been renamed to ModelVersion for a more intuitive interface.
Additionally, the release features enhancements such as optimized model hydration for better performance,
alongside a range of bug fixes and contributions from both new and returning community members.

Breaking Change

  • We have renamed the ModelConfig object to ModelVersion with other related changes to the model control plane,
    the goal of this is to bring a simplified user-interface experience, so once ModelVersion is configured in
    pipeline or step it will travel into all other user-facing places: step context, client, etc. by @avishniakov in #2044
  • introducing RBAC for server endpoints, ensuring users have appropriate permissions for actions on resources.
    Additionally, it improves data handling by dehydrating response models to redact inaccessible information, while
    service accounts retain full permissions due to current database constraints. by @schustmi in #1999
  • We have completely reworked our API models. While the request models are mostly the same, now with the new hydration logic, most of
    our response models feature a body and a metadata field which allow us to control the responses of our API and optimize the flow for
    anyone using it By @bcdurak #1971
  • We also worked on adding a new "Artifacts" tab to our dashboard. With these new changes, it will become much easier to understand
    and adjust how ZenML versions your data. Moreover, by using "ExternalArtifacts", you will be able to save and load artifacts manually and
    use them in your pipelines. By @fa9r #1943

Enhancements

  • Improve alembic migration safety by @fa9r in #2073
  • Model Link Filtering by Artifact / Run Name by @fa9r in #2074

Bug Fixes

  • Fix tag<>resource ID generator to fix the issue of manipulating migrated tags properly #2056
  • Fixes for k3d deployments via mlstacks using the ZenML CLI wrapper #2059
  • Fix some filter options for pipeline runs by @schustmi #2078
  • Fix Label Studio image annotation example by @strickvl #2010
  • Alembic migration fix for databases with scheduled pipelines with 2+ runs by @bcdurak #2072
  • Model version endpoint fixes by @schustmi in #2060

ZenML Helm Chart Changes

  • Make helm chart more robust to accidental secret deletions by @stefannica in #2053
  • Separate helm hook resources from regular resources by @stefannica in #2055

Other Changes

New Contributors

Full Changelog: 0.47.0...0.50.0

0.54.1

16 Jan 08:01
5558fb0
Compare
Choose a tag to compare

Release 0.54.1, includes a mix of updates new additions, and bug fixes. The most notable changes are the new production guide,
allowing multi-step VMs for the Skypilot orchestrator which allows you to configure a step to run on a specific VM or run the entire pipeline on a single VM, and some improvements to the Model Control Plane.

What's Changed

New Contributors

Full Changelog: 0.54.0...0.54.1

0.54.0

08 Jan 19:25
1648d6a
Compare
Choose a tag to compare

This release brings a range of new features, bug fixes and documentation
updates. The Model Control Plane has received a number of small bugfixes and
improvements, notably the ability to change model and model version names.

We've also added a whole new starter guide that walks you through
how to get started with ZenML, from creating your first pipeline to fetching
objects once your pipelines have run and much more. Be sure to check it out if
you're new to ZenML!

Speaking of documentation improvements, the Model Control Plane now has its own
dedicated documentation section
introducing the concepts and features of the
Model Control Plane.

As always, this release comes with number of bug fixes, docs additions and
smaller improvements to our internal processes.

Breaking Change

This PR introduces breaking changes in the areas of the REST API concerning secrets and tags. As a consequence, the ZenML Client running the previous ZenML version is no longer compatible with a ZenML Server running the new version and vice-versa. To address this, simply ensure that all your ZenML clients use the same version as the server(s) they connect to.

🥳 Community Contributions 🥳

We'd like to give a special thanks to @christianversloot for two PRs he
contributed to this release. One of them fixes a bug that prevented ZenML from
running on Windows and the other one adds a new materializer for the Polars library.

Also many thanks to @sean-hickey-wf for his contribution of an improvement to
the Slack Alerter stack component

which allows you to define custom blocks for the Slack message.

What's Changed

New Contributors

Full Changelog: 0.53.1...0.54.0

0.47.0

14 Nov 20:05
Compare
Choose a tag to compare

This release fixes a bug that was introduced in 0.46.1 where the default user
was made inaccessible and was inadvertently duplicated. This release rescues
the original user and renames the duplicate.

UPDATE: a breaking update to one of our dependencies means that you should run the following update after installing this version of zenml:

pip install 'bcrypt==4.0.1'

What's Changed

Full Changelog: 0.46.1...0.47.0

0.44.4

14 Nov 10:21
Compare
Choose a tag to compare

This patch release backports some important fixes that have been introduced in more recent versions
of ZenML to the 0.44.x release line.

UPDATE: a breaking update to one of our dependencies means that you should run the following update after installing this version of zenml:

pip install 'bcrypt==4.0.1'

What's Changed

Full Changelog: 0.44.3...0.44.4

0.46.1 [YANKED]

10 Nov 18:32
dcec2d0
Compare
Choose a tag to compare

THIS RELEASE HAS BEEN YANKED

  • Due to an unforeseen alembic migration issue and missing dashboard, this release has been yanked
  • 0.47.0 is out to fix the bugs that have been uncovered

0.46.1

The 0.46.1 release introduces support for Service Accounts and API Keys that
can be used to authenticate with the ZenML server from environments that do not
support the web login flow, such as CI/CD environments, for example.

Also included in this release are some documentation updates and bug fixes,
notably moving the database migration logic deployed with the Helm chart out of
the init containers and into a Kubernetes Job, which makes it possible to scale
out the ZenML server deployments without the risk of running into database
migration conflicts.

What's Changed

Full Changelog: 0.46.0...0.46.1

0.46.0

06 Nov 20:12
Compare
Choose a tag to compare

UPDATE: a breaking update to one of our dependencies means that you should run the following update after installing this version of zenml:

pip install 'bcrypt==4.0.1'

This release brings some upgrades, documentation updates and bug fixes. Notably,
our langchain integration now supports more modern versions and has been
upgraded to a new version at the lower edge of supported packages on account of
a security vulnerability.

Other fixes related to the Model Control Plane which was updated to support the
deletion of model versions via the CLI, for example.

Breaking Change

We removed the llama_index integration in this release. This related to
unsolvable dependency clashes that relate to sqlmodel and our database. We
expect these clashes to be resolved in the future and then we will add our
integration back in. If you were using the llama_index materializer that was
part of the integration, you will have to use a custom materializer in the
meanwhile. We apologize for the inconvenience.

What's Changed

Full Changelog: 0.45.6...0.46.0