Skip to content

Releases: zenml-io/zenml

0.84.3

27 Aug 15:10
0712cee
Compare
Choose a tag to compare

The 0.84.3 release introduces ZenML Pro service account authentication support and includes important Kubernetes integration fixes. This release enhances authentication flexibility for automated workflows and improves the reliability of Kubernetes-based orchestration.

🚀 New Features

ZenML Pro Service Account Authentication

  • CLI Login Support: Added ability to authenticate with ZenML Pro using service account API keys via zenml login --api-key
  • Programmatic Access: Service account API keys can now be used for programmatic access to ZenML Pro workspaces
  • Organization-Level Access: Service accounts provide access to all workspaces within an organization for automated workflows

🛠️ Fixes

Kubernetes Integration

  • Name Sanitization: Fixed Kubernetes resource name sanitization to properly handle special characters and ensure compliance with Kubernetes naming requirements

Dependencies

  • Click Version: Relaxed Click dependency version constraints to improve compatibility with other packages

What's Changed

Full Changelog: 0.84.2...0.84.3

0.84.2

06 Aug 19:18
d626435
Compare
Choose a tag to compare

The 0.84.2 release brings significant performance improvements and reliability enhancements that strengthen ZenML's orchestration capabilities. This release features a major refactor of the Kubernetes orchestrator with enhanced restart capabilities, faster pipeline compilation for large pipelines, critical security fixes, and improved logging performance.

Kubernetes Orchestrator

  • Enhanced Robustness: Complete rework to use Jobs instead of raw pods for orchestrator execution with state reconstruction support, enabling automatic restarts for a much more robust orchestration experience
  • Deprecated Settings: Several settings attributes are now deprecated due to the shift from pods to Jobs, streamlining the configuration interface
  • Updated Logging Behavior: The orchestrator pod no longer streams logs from step pods directly, improving performance and resource usage

🚀 Improvements

  • Faster Pipeline Compilation: Significantly improved pipeline compilation performance for large pipelines

🛠️ Fixes

  • Run Creation Deadlock: Fixed deadlock that could happen if two steps try to create a run at the same time
  • Security Enhancement: Enhanced path materializer to properly validate symlinks and hardlinks to prevent path traversal attacks
  • Logging Performance: Improved logging thread performance by avoiding unnecessary sleep when shutdown is requested
  • WandB Integration: Fixed WandB experiment tracker flavor initialization when the integration is not installed
  • Type Annotations: Fixed type annotations for experiment_tracker and step_operator parameters to accept both string and boolean values

What's Changed

  • Add version 0.84.0 to legacy docs by @github-actions[bot] in #3863
  • Add 0.84.1 to the migration tests by @github-actions[bot] in #3865
  • Fix wandb flavor needing integration to be installed by @stefannica in #3871
  • Verify symlinks and hardlinks in the path materializer by @stefannica in #3870
  • Don't sleep in logging thread if shutdown was requested by @schustmi in #3872
  • Fix run creation deadlock by @schustmi in #3876
  • Fix nonlinear scaling of pipeline compilation time by @schustmi in #3873
  • Fix type annotations by @schustmi in #3878
  • Orchestrator pod restarts by @schustmi in #3869

Full Changelog: 0.84.1...0.84.2

0.84.1

30 Jul 10:09
acaebfd
Compare
Choose a tag to compare

The 0.84.1 release delivers important stability improvements and feature enhancements that strengthen ZenML's orchestration capabilities and developer experience. This release focuses on enhanced Kubernetes orchestrator management with schedule support and better error handling, improved step exception collection for debugging, external service account support, dynamic fan-out/fan-in patterns for run templates, and critical fixes for Vertex step operators and logging reliability.

🚀 Improvements

  • Step Exception Handling: Improved collection of step run exception information for better debugging
  • External Service Accounts: Added support for external service accounts for improved flexibility

Kubernetes Orchestrator

  • Enhanced Schedule Management: Added schedule management capabilities (updating and deleting) for the Kubernetes orchestrator
  • Better Error Handling: Added explicit Kubernetes failure reasons to logs and improved pod monitoring
  • Secret Cleanup: Fixed cleanup of Kubernetes secrets when orchestrator pods fail to start

🛠️ Fixes

  • Vertex step operator credential refresh: Fixed retry logic and credential refresh for the Vertex step operator
  • Logging Fixes: Resolved race conditions in logging for better reliability

🛠️ Documentation & Examples

  • Agent Examples: Updated README and added comprehensive agent examples
  • Template Updates: Bumped LLM template version for latest improvements
  • Deprecation Cleanup: Removed deprecation warnings in quickstart for cleaner user experience
  • Dynamic Fan-out/Fan-in: Added support for dynamic fan-out/fan-in patterns with run templates for more flexible pipeline architectures

What's Changed

Full Changelog: 0.84.0...0.84.1

0.84.0

11 Jul 13:43
6aac5a7
Compare
Choose a tag to compare

The 0.84.0 release delivers significant architectural improvements and orchestration enhancements that boost ZenML's reliability, performance, and developer experience. This release focuses on pipeline execution resilience with step retries and early stopping capabilities, enhanced Kubernetes orchestrator features, and improved server-side processing for better scalability.

🚨 Breaking Changes

Kubernetes Orchestrator Compatibility

  • Client-Orchestrator Version Compatibility: This release introduces changes to the Kubernetes orchestrator that make the new client version incompatible with previous versions. When using the Kubernetes orchestrator, the ZenML version in both the client and orchestrator pod must match exactly. This means that if you upgrade your ZenML client to 0.84.0, you must also ensure that the orchestrator pod images are also using ZenML 0.84.0 to avoid compatibility issues.

🚀 Orchestration Enhancements

Pipeline Control & Reliability

  • Early Pipeline Stopping: Added ability to stop pipelines early with Kubernetes orchestrator implementation for better resource management
  • Step Retries: Implemented configurable step retry mechanisms for improved pipeline resilience
  • Step Status Refresh: Enhanced step status monitoring with real-time refresh capabilities

Kubernetes Orchestrator Improvements

  • Run Steps using Jobs: Leverage Kubernetes jobs for better retry behavior when running steps
  • Enhanced Pod Management: Always build pipeline images for Kubernetes orchestrator and improved pod caching
  • Pod Logs Access: Added orchestrator pod logs functionality for better debugging and monitoring
  • Kubernetes Model Validation: Added warnings for invalid Kubernetes model data

⚡ Performance Improvements

  • Threadsafe RestZenStore: Implemented thread-safe operations for improved concurrent access
  • Server-side Processing: Moved parent step computation and cascading tags processing to server-side for better performance
  • Improved Fetching: Enhanced pipeline and step run fetching mechanisms for faster response times

🔧 Developer Experience

CLI & Login Improvements

  • New ZenML Login: Redesigned login experience with improved CLI styling and user interface

Configuration & Compatibility

  • Easier Configuration: Simplified step operator and experiment tracker configuration for steps
  • Unified Imports: Standardized config imports to match documentation examples

🔒 Infrastructure & Security

  • Helm Chart Improvements: Added PVC creation option for local configuration path
  • Service Connector Security: Hidden service connector secrets as internal implementation details

🛠️ Fixes

  • Model Version Fetching: Fixed fetching model versions by UUID passed as string
  • Visualization Handling: Ensured visualizations are committed before potential transaction rollbacks
  • SageMaker Configuration: Made SagemakerOrchestratorSettings.processor_tags optional
  • Data Artifact Access: Fixed data artifact fetching issues
  • Pydantic Validation: Added support for step/parameter names with leading underscores in run templates
  • Path Sanitization: Added missing remote path and Docker tag sanitizations

📚 Documentation

  • Best Practices: Updated documentation with minimum permissions for cloud stack components
  • Concurrent Execution: Added guidance for handling concurrent pipeline execution in separate containers
  • User Guides: Enhanced user guides with llm-complete-guide project and improved examples
  • ZenML Pro: Updated URLs in documentation to use zenml.io/pro
  • VSCode Integration: Added VSCode tutorial pipeline testing to CI

What's Changed

Full Changelog: 0.83.1...0.84.0

0.83.1

23 Jun 13:40
e941c5e
Compare
Choose a tag to compare

The 0.83.1 release delivers significant performance improvements and optimizations that enhance ZenML's efficiency and responsiveness. This release focuses on architectural improvements including step configuration separation from deployment, idempotent POST requests with request caching, and enhanced artifact loading performance, alongside important bug fixes and documentation updates.

⚡ Performance Improvements

  • Architectural Enhancement: Separated step configurations from deployment for improved modularity and reduced overhead
  • Request Optimization: Implemented idempotent POST requests with intelligent request caching for faster API responses
  • Artifact Loading: Enhanced artifact loading performance by using the active artifact store as cache

Fixes

  • Fixed potential race condition during pipeline run status updates
  • Fixed missing artifact nodes in DAG visualization
  • Fixed run template fetching issues that could cause errors during pipeline execution
  • Fixed missing pipeline substitutions for legacy steps
  • Reset active project after deleting local database

Documentation

  • Updated Kubernetes configuration documentation with clearer guidance
  • Enhanced run template documentation with better examples and explanations
  • Added shared CSS guidance for HTML visualizations
  • Updated kaniko project status documentation
  • Fixed authentication confusion in ZenML Pro API documentation

What's Changed

New Contributors

Full Changelog: 0.83.0...0.83.1

0.83.0

28 May 14:37
a790bc0
Compare
Choose a tag to compare

🚀 Major Performance Release - ZenML 0.83.0 introduces significant performance improvements and response optimizations that dramatically reduce API response times and database query overhead. This release includes breaking changes and is not compatible with earlier client/server versions.

⚡ Performance Improvements

This release delivers substantial performance enhancements across the ZenML server:

  • Optimized API Responses: Pipeline run responses no longer include unpaginated step lists, dramatically reducing response sizes for large pipelines
  • Database Query Optimization: Improved query patterns with strategic joined loads to minimize database roundtrips
  • Reduced Response Payloads: Many attributes moved from body to resources to avoid unnecessary data transfer when objects are embedded in other responses

🔄 Breaking Changes

⚠️ Client/Server Compatibility: This version is not compatible with earlier ZenML client/server versions. Please ensure both client and server are upgraded to 0.83.0.

API Response Changes

  • Pipeline run responses no longer include metadata.steps or metadata.step_substitutions
  • Many model attributes moved from body to resources for performance
  • Project metadata structure simplified across all responses
  • Model version responses no longer include comprehensive artifact and run ID lists

Method Deprecations

  • Model.get_pipeline_run(...) and ModelVersionResponse.get_pipeline_run(...) have been removed

For a comprehensive list of all response changes and migration details, see PR #3675.

🚀 Orchestrator Enhancements

Kubernetes Orchestrator

  • Enhanced Caching: Added caching capabilities in Kubernetes orchestrator entrypoint to improve performance and reduce unnecessary pod creations

Skypilot Orchestrator

  • Updated Version and Settings: Updated to new Skypilot version and added new setting options

What's Changed

Full Changelog: 0.82.1...0.83.0

0.82.1

14 May 16:34
71aa4cd
Compare
Choose a tag to compare

The 0.82.1 release focuses on incremental improvements to run template management, Kubernetes orchestration, Docker build performance, and overall robustness, while shipping a wide range of documentation updates and quality-of-life enhancements. Key highlights include configurable Kubernetes job clean-up behavior, cascading tags for cached step runs, pyproject.toml support for DockerSettings, improved login stability, and faster Docker build caching through parent image digests.

Features

  • Added pyproject.toml support for configuring DockerSettings, making container builds easier to manage.
  • Added a unique instance label to the Helm chart to simplify the operation of multiple ZenML deployments in the same cluster.
  • Introduced a new stress-test example that showcases ZenML scalability and can be used to benchmark installations.

Improvements

  • Added cascading tags for cached step runs to improve cache reuse and pipeline run performance.
  • Added configurable Kubernetes job clean-up options for the Kubernetes orchestrator.
  • Added a limit to the maximum number of concurrent template runs and improved the overall run template UX.
  • Prevented unnecessary hydration in project-scoped API responses, reducing payload size and improving performance.
  • Optimized Docker build caching by using parent image digests and extending development Dockerfiles.
  • Pinned setuptools to a stable version and removed redundant script dependencies to avoid build failures.

Fixes

  • Fixed DockerHub repository digest detection when building images.
  • Fixed miscellaneous login issues and introduced an API login lock for added robustness.
  • Fixed dashboard bolt icon rendering.
  • Updated Alembic to address compatibility issues.

Documentation

What's Changed

Full Changelog: 0.82.0...0.82.1

0.82.0

01 May 01:02
cb69641
Compare
Choose a tag to compare

The 0.82.0 release delivers significant improvements to Kubernetes orchestrator, enhanced documentation, and numerous fixes to improve overall stability and performance. Key highlights include configurable max parallelism for Kubernetes orchestrator, customizable pod name prefixes and scheduler options, improved runner timeouts, and support for private service connections in Vertex AI. This release also includes comprehensive documentation updates, and library compatibility improvements for NumPy and Pandas.

Features

  • Added max parallelism option for Kubernetes orchestrator
  • Added support for pod name prefixes and scheduler configuration
  • Added private service connect option for Vertex AI orchestrator
  • Made runner timeout easily configurable
  • Added storage for list of Python packages
  • Added an ability to deep refresh the status of your run from the dashboard

Improvements

  • Adjusted GitHub code repo regex pattern for better compatibility
  • Improved build invalidation when parent Dockerfile changes
  • Enhanced directory handling during code download
  • Added ability to list model versions without models
  • Added support for extra attributes in all ZenML models
  • Disabled default project behavior for pro workspaces

Fixes

  • Fixed run templates listing
  • Eliminated premature active project warning logs
  • Updated scikit-learn requirement in SklearnIntegration
  • Updated NumPy integration to work with both 1.x and 2.x library versions
  • Added Pandas custom data type error handling and logging
  • Removed unnecessary and invalid settings
  • Various frontend bug fixes

Documentation

  • Completed comprehensive documentation revamp
  • Added documentation for self-hosted run templates
  • Removed outdated redirects and sections
  • Fixed broken absolute links and restored missing sections
  • Added documentation for run template TTL environment variable
  • Updated image paths for ZenML pipeline screenshots
  • Migrated starter guide to unified log_metadata method

Breaking Changes

  • Removed scikit-image as a requirement of the sklearn integration

What's Changed

Full Changelog: 0.81.0...0.82.0

0.81.0

16 Apr 12:07
45626f4
Compare
Choose a tag to compare

The 0.81.0 release focuses on significant improvements to artifact management, enhanced security features, and advanced resource sharing capabilities. Key highlights include a new Path materializer for directory and file uploads, artifact visualization enhancements, client-side pipeline run logs storage, and support for resource sharing between teams and external users. This release also improves logging, adds security protections, and enhances orchestration capabilities across multiple cloud platforms.

Features

  • Added a Path materializer to upload directories and files
  • Added save_visualizations method to materializers
  • Implemented ZenML artifact store provisioning scripts for AWS/GCP/Azure
  • Added endpoint to download artifact data
  • Enabled resource sharing for teams and external users
  • Added support for custom job parameters in Vertex orchestrator
  • Added client-side pipeline run logs storage in the artifact store

Improvements

  • Improved logging with step ID instead of name and avoided extra newlines
  • Added tracking for stack creation and pipeline runs with remote artifact store
  • Implemented failure retries and pending timeouts for the k8s orchestrator pod
  • Added configurable workload token expiration leeway
  • Migrated onboarding state for better user experience

Fixes

  • Fixed artifact control plane vs model control plane GIF links in docs
  • Used step invocation ID in run template error message
  • Prevented path traversal attacks during file extraction
  • Fixed missing vertex orchestrator dependencies in server image
  • Resolved pydantic 2.11 deprecation warnings
  • Removed duplicate step name from logs

Documentation

Breaking changes

Adding client-side pipeline run logs storage in the artifact store (#3498) breaks the pydantic model between server and client.

Therefore, users should rebuild any run templates with the latest version of ZenML to ensure their pipelines don't break.

What's Changed

  • Added a Path materializer to upload directories and files by @htahir1 in #3496
  • Avoid extra newlines in logs by @avishniakov in #3518
  • Use step ID instead of name in step logs by @schustmi in #3519
  • Fix artifact control plane vs model control plane GIF links in docs by @strickvl in #3508
  • Adding 0.80.1 to the legacy docs by @bcdurak in #3521
  • Adding 0.80.2 to the migration tests by @bcdurak in #3517
  • Enabling the greatexpectations test again by @bcdurak in #3516
  • Add save_visualizations method to materializers by @htahir1 in #3520
  • Add triggering pipelines mini-tutorial by @strickvl in #3495
  • ZenML artifact store provisioning scripts for AWS/GCP/Azure by @stefannica in #3514
  • Improve SDK Client documentation with thematic grouping by @strickvl in #3528
  • Track stack creation and pipeline run with remote artifact store for onboarding state by @schustmi in #3525
  • Add Kubernetes schedule documentation and fix heading hierarchy by @strickvl in #3530
  • Use step invocation ID in run template error message by @schustmi in #3534
  • Migrate onboarding state by @schustmi in #3533
  • Prevent path traversal attacks during file extraction by @htahir1 in #3535
  • Implement failure retries and pending timeouts for the k8s orchestrator pod by @stefannica in #3523
  • Add endpoint to download artifact data by @schustmi in #3507
  • Enable resource sharing for teams and external users by @schustmi in #3461
  • Add support for custom job parameters in Vertex orchestrator by @htahir1 in #3536
  • Add configurable workload token expiration leeway by @schustmi in #3526
  • Fix llms.txt docs by @strickvl in #3540
  • Store client-side pipeline run logs in the artifact store by @stefannica in #3498
  • Add missing vertex orchestrator dependencies to server image by @schustmi in #3541
  • Resolve pydantic 2.11 deprecation warnings by @schustmi in #3542
  • Remove duplicate step name from logs by @schustmi in #3543

Full Changelog: 0.80.2...0.81.0

0.80.2

09 Apr 12:01
57cb890
Compare
Choose a tag to compare

The 0.80.2 release focuses on several bug fixes, usability enhancements, and documentation improvements. Key highlights include fixing the yanked fsspec pip resolution issue, adding sample visualization for Pandas materializer, and upgrading pydantic to 2.11 for improved performance. This release also adds new tutorials and guides, fixes several critical issues, and introduces new functionality for pipeline development.

Features

  • Added poetry add support for CLI
  • Added retry option on step.with_options
  • Added service annotations to helm chart
  • Added step name to console logs for better tracing

Improvements

  • Added sample visualization for Pandas materializer
  • Improved run templates with small enhancements and hidden option support
  • Fixed service connector list-resources endpoint and CLI command

Fixes

  • Fixed timestamps in logs
  • Fixed yanked fsspec pip resolution issue
  • Fixed Kubernetes Orchestrator step pod failure status updates
  • Fixed CI failures and test issues
  • Updated error message for setting pipeline parameters via API

Documentation

What's Changed

New Contributors

  • @marwan37 made their first contribution in #3483
  • @jsybel made their first contribution in #3482

Full Changelog: 0.80.1...0.80.2