0.90.0
This release introduces pipeline snapshots and pipeline deployments, refactors the base package dependencies, and adds runtime environment variable support.
⚠️ Breaking Changes
- Client-Server Compatibility: Not compatible with previous versions. Client and server must be upgraded simultaneously.
- Run Templates: Existing run templates need to be recreated as they contain previous Client versions in their container images.
- Base Package: The
zenmlpackage no longer includes local database dependencies. Installzenml[local]if you want to use ZenML without a local/remote server.
Deprecations
- Run Templates: Deprecated in favor of pipeline snapshots. Snapshots can be triggered from server/dashboard and deployed as endpoints.
- ZenML Pro On-Prem deployments only: The
ZENML_SERVER_MAX_CONCURRENT_TEMPLATE_RUNSserver environment variable is deprecated. UseZENML_SERVER_MAX_CONCURRENT_SNAPSHOT_RUNSinstead. - Stack Component API: The
StackComponent.prepare_pipeline_deployment(...)method has been removed and will not be called anymore. This might be relevant if you've implemented custom stack components that rely on this method being called.
New Features
Pipeline Snapshots
- Capture immutable snapshots of pipeline code, configuration, and container images
- Execute snapshots from server/dashboard without local code environment
- Can be deployed
Pipeline Deployments
- Add a new
Deployerstack component and Docker, AWS and GCP implementations - Deploy pipelines as HTTP endpoints for online inference or agentic usecases
- Add pipeline init/cleanup hooks for quicker deployment runs
Runtime Environment Variables
- Configure environment variables when running pipelines
- Environment variables can either be defined directly or from ZenML secrets
Dependency Management
- Move local database dependencies to
localpackage extra - Add support for latest Pydantic and CloudPickle versions
- Reduce base package dependencies
Jax Support
- Add materializer for Jax arrays
What's Changed
- Add 0.85.0 to the migration tests by @github-actions[bot] in #3951
- Add version 0.84.3 to legacy docs by @github-actions[bot] in #3949
- Add documentation for timeline view by @strickvl in #3948
- Add documentation for the
StepContextobject by @strickvl in #3953 - Runtime environment variables by @schustmi in #3336
- Fix legacy merge conflict in docs by @schustmi in #3955
- Docs/documentation for execution modes by @bcdurak in #3956
- Pipeline snapshots by @schustmi in #3856
- Upgrade pydantic by @htahir1 in #3944
- Dedent exception info traceback by @schustmi in #3957
- Update (broken) metadata logging example for pipeline runs by @strickvl in #3961
- Fix cache policy docs formatting by @schustmi in #3965
- Bugfix for duplicated log records for exceptions by @bcdurak in #3964
- Bugfix for handling old logs with timestamp by @bcdurak in #3968
- Snapshot UX improvements by @schustmi in #3959
- Track pipeline output spec and schema by @schustmi in #3972
- Misc snapshot improvements by @schustmi in #3980
- Update self-hosted ZenML Pro deployment docs by @stefannica in #3981
- Slimmer base package by @schustmi in #3916
- Cleanup base package workflow by @schustmi in #3983
- Rename some legacy attributes by @schustmi in #3934
- Add JAX array materializer by @nicholasjng in #3712
- Fix requirements for local agentic examples tests by @strickvl in #3986
- Fix setting a snapshot name to None by @schustmi in #3985
- Improve error message for duplicate pipeline run names by @strickvl in #3701
- Fix Terraform documentation URLs and improve link checker robustness by @strickvl in #3988
- Fix formatting errors on embeddings finetuning docs by @strickvl in #3979
- Remove remaining RBAC check when fetching tags by @schustmi in #3989
- Remove dependency on pydantic_settings by @schustmi in #3987
- Migrate pyproject.toml to project structure by @schustmi in #3982
- Document
ZENML_ACTIVE_PROJECT_IDenvironment variable by @strickvl in #3992 - Disable coderabbit status message by @strickvl in #3998
- Snapshot response improvements by @schustmi in #3995
- Document WhyLabs shutdown in whylogs integration by @strickvl in #3997
- Make pytest rerun count configurable in CI workflows and address
banditerrors by @strickvl in #4001 - Add filter option for runs linked to model version by @schustmi in #4003
- Deployed pipelines by @stefannica in #3920
- Store visualizations for pydantic materializer by @schustmi in #4014
- Changes to the issue templates by @bcdurak in #3991
- Release testing fixes by @schustmi in #4020
- Bug:4021 Unescape zenml[local] installation by @Json-Andriopoulos in #4022
- Update outdated information in helm chart by @schustmi in #4018
- Follow up fixes for deployments by @schustmi in #4013
- Migrate unlisted pipeline runs by @schustmi in #4026
- Fixing race conditions for tags by @bcdurak in #4002
New Contributors
- @Json-Andriopoulos made their first contribution in #4022
Full Changelog: 0.85.0...0.90.0