Releases: zenml-io/zenml
0.84.3
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
- Add version 0.84.1 to legacy docs by @github-actions[bot] in #3885
- Fix PyPI download stats badge by @strickvl in #3882
- Don't include decorator code in step cache key computation by @schustmi in #3880
- Add an agent in production example by @htahir1 in #3890
- Fix kubernetes name sanitization by @schustmi in #3887
- Fix SyntaxWarning in
exception_utils
regex pattern by @strickvl in #3892 - Add agent framework integration examples by @htahir1 in #3898
- Add weekly agent examples test workflow by @strickvl in #3902
- Add ability to use a ZenML Pro API key with
zenml login
by @stefannica in #3895 - Add docs for workload manager env vars by @schustmi in #3907
- Bump allowed versions of click by @strickvl in #3905
- Allow workspace service accounts and API keys to be created by @stefannica in #3908
Full Changelog: 0.84.2...0.84.3
0.84.2
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
andstep_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
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
- Add version 0.83.1 to legacy docs by @github-actions[bot] in #3828
- Add dynamic fan-out/fan-in with run templates by @htahir1 in #3826
- Add version 0.84.0 to DB migration script by @schustmi in #3833
- Bump LLM template by @schustmi in #3837
- Update README and add agent example by @htahir1 in #3815
- Remove deprecation warning in quickstart by @schustmi in #3834
- Fix appending to DB migrations in release action by @schustmi in #3836
- Add intermediate cleanup in CLI profiling CI by @schustmi in #3835
- Purge unused/inactive local docker services by @AlexejPenner in #3768
- Fix the retry logic and credential refresh for the Vertex step operator by @stefannica in #3853
- Schedule management for the Kubernetes orchestrator by @schustmi in #3847
- Cleanup Kubernetes secret if orchestrator pod fails to start by @schustmi in #3846
- Enable schedule RBAC by @schustmi in #3848
- Add explicit k8s failure reasons to logs by @avishniakov in #3854
- Collect step run exception info by @schustmi in #3838
- Block bot traffic from Segment analytics to prevent MTU quota exhaustion by @strickvl in #3858
- Fail on certain container waiting reasons during job monitoring by @schustmi in #3851
- Add support for external service accounts by @stefannica in #3793
- Solving the race conditions for logging by @bcdurak in #3855
Full Changelog: 0.84.0...0.84.1
0.84.0
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
- Update issue template configurations and URLs by @htahir1 in #3756
- Add new release to migration tests by @schustmi in #3764
- Split run submission and monitoring by @schustmi in #3723
- Made --no-verify-ssl work for pro tenants as well by @AlexejPenner in #3767
- Threadsafe RestZenStore by @schustmi in #3758
- Server-side parent step computation by @schustmi in #3762
- Unified config imports to match docs by @AlexejPenner in #3743
- Fixed misleading error message by @AlexejPenner in #3759
- Adjusted settings to include submodules by @AlexejPenner in #3757
- Switch from pkg_resources to importlib by @schustmi in #3722
- Helm chart: Add option to create PVC for local configuration path by @jsuchome in #3761
- Hide service connector secrets as internal implementation details by @stefannica in #3770
- Fix fetching model version by UUID passed as string by @schustmi in #3777
- Ensure visualizations are committed before potential transaction rollback by @schustmi in #3769
- Make SagemakerOrchestratorSettings.processor_tags optional by @schustmi in #3773
- Improved pipeline/step run fetching by @schustmi in #3776
- Misc CI fixes by @schustmi in #3780
- Improved Kubernetes orchestrator pod caching by @schustmi in #3719
- Compute cascading tags server-side by @schustmi in #3781
- Add
llm-complete-guide
project to user guides by @strickvl in #3788 - Docs: Handle concurrent pipeline execution in separate containers by @htahir1 in #3799
- Ability to stop pipelines early + Kubernetes Orchestrator implementation by @bcdurak in #3716
- Updated docs with minimum permissions sets for cloud stack components by @htahir1 in #3796
- Easier option to enable a step operator/experiment tracker for a step by @schustmi in #3774
- Always build pipeline image for Kubernetes orchestrator by @schustmi in #3797
- Add VSCode tutorial pipeline testing to CI by @strickvl in #3737
- Update best practices for upgrading ZenML servers by @htahir1 in #3795
- Orchestrator pod logs for Kubernetes by @bcdurak in #3778
- Warn if passing invalid kubernetes model data by @schustmi in #3805
- Update ZenML Pro URLs in documentation to use zenml.io/pro by @htahir1 in #3813
- Update
README.md
by @strickvl in #3783 - Fix data artifact fetching by @schustmi in #3811
- Step retries by @schustmi in #3789
- Use pydantic validation aliases to support step/parameter names with leading underscores by @schustmi in #3814
- New zenml login and CLI style improvements by @znegrin in #3790
- Onboarding changes by @schustmi in #3817
- Add ignore list for tutorial pipeline testing script by @strickvl in #3808
- Add missing remote path sanitizations by @schustmi in #3816
- Tiny README fixes by @strickvl in #3818
- Add docker tag sanitization by @schustmi in #3820
- Add field descriptions to config for forms by @AlexejPenner in #3779
- Step Status Refresh Functionality + Kubernetes Orchestrator Implementation by @bcdurak in #3735
- Upper limit datasets version by @schustmi in #3824
Full Changelog: 0.83.1...0.84.0
0.83.1
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
- More explicit handling of carriage return logs in steps by @AlexejPenner in #3714
- Add
0.82.1
to the legacy docs by @bcdurak in #3715 - Reset active project after deleting local database by @schustmi in #3689
- Keep visualizations when using existing tag by @schustmi in #3710
- Use the active artifact store as cache when loading artifacts by @stefannica in #3721
- Fix potential race condition during run status update by @schustmi in #3720
- Random cleanup and bugfixes by @schustmi in #3709
- Added documentation for a PowerShell quirk when referencing secrets in experiment tracker by @hala201 in #3717
- Fix some links by @htahir1 in #3729
- Fix run template fetching by @schustmi in #3726
- Fix missing artifact nodes in DAG by @schustmi in #3727
- Revert "Keep visualizations when using existing tag" by @stefannica in #3732
- Tag improvements by @bcdurak in #3724
- Improve docs imports by @strickvl in #3731
- Kubernetes configuration documentation update by @bcdurak in #3736
- Fix authentication confusion in ZenML Pro API documentation by @strickvl in #3734
- Include missing pipeline substitutions for legacy steps by @schustmi in #3740
- Better run template docs by @AlexejPenner in #3730
- Add shared CSS guidance for HTML visualizations by @strickvl in #3742
- Update kaniko project status in docs by @strickvl in #3744
- Fix line breaks in llms.txt docs by @strickvl in #3746
- Separate step configurations from deployment by @schustmi in #3739
- Dynamically import entrypoint in root init by @schustmi in #3728
- Idempotent POST requests, request caching and other performance improvements by @stefannica in #3738
New Contributors
Full Changelog: 0.83.0...0.83.1
0.83.0
🚀 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
toresources
to avoid unnecessary data transfer when objects are embedded in other responses
🔄 Breaking Changes
API Response Changes
- Pipeline run responses no longer include
metadata.steps
ormetadata.step_substitutions
- Many model attributes moved from
body
toresources
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(...)
andModelVersionResponse.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
- Adding 0.82.0 to the legacy docs by @bcdurak in #3671
- New deployment scenarios by @AlexejPenner in #3666
- Add instruction to
WANDB_DISABLED
toTrue
for the quickstart by @bcdurak in #3673 - Fix service connector docs example by @strickvl in #3679
- Fix YAML extension check by @strickvl in #3677
- Fix typos, bugs, and improve test precision by @strickvl in #3678
- Performance boost fix: don't fetch entire pipeline run to verify pipeline API token validity by @stefannica in #3684
- Async wrapper for FastAPI endpoints to run serialization in event loop by @schustmi in #3685
- Don't log parent image digest warning if build is skipped by @schustmi in #3676
- Convert string to raw to avoid warnings in python 3.12+ by @jlopezpena in #3687
- Use correct artifact store for nested materializers by @schustmi in #3670
- Tiny Discord docs fix by @strickvl in #3691
- Store validated config with converted types in DB by @schustmi in #3668
- Added zenml codespace env detection by @htahir1 in #3686
- Fix setuptools vulnerabilities and deprecate pip as DockerSettings default by @stefannica in #3694
- Improve alerter documentation with comprehensive ask step coverage by @strickvl in #3693
- Add comprehensive agent guidelines with
AGENTS.md
andCLAUDE.md
by @strickvl in #3680 - Performance test utilities, stats and stress test pipeline updates by @stefannica in #3690
- Fix GCP service connector expiry by @stefannica in #3697
- Fix trivy image scanning GitHub actions by @stefannica in #3699
- Add ability to strip the timestamps from the logs, on request by @avishniakov in #3683
- Send POST request for RBAC permission checks to avoid URL length limits by @schustmi in #3702
- Response and database improvements by @schustmi in #3675
- Add Caching in Kubernetes orchestrator entrypoint by @schustmi in #3703
- New Pro onboarding by @schustmi in #3704
- Suppress repeated DockerSettings warnings by @stefannica in #3705
- New OSS dashboard fixes by @schustmi in #3706
- Remove unused import from metadata docs by @strickvl in #3707
- Project consistency fixes for
Model
andModelVersionResponse
by @schustmi in #3708 - Update Skypilot orchestrator settings and features by @htahir1 in #3612
Full Changelog: 0.82.1...0.83.0
0.82.1
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 configuringDockerSettings
, 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
- Added a "5-minute quick wins" guide and a new dedicated docs section regarding orchestrator selection.
- Added documentation for dashboard features and an accurate list of workload manager options.
- Added
0.81.0
to legacy docs and fixed artifact visualization guidance. - Numerous minor documentation fixes and cleanup.
What's Changed
- Adding 0.81.0 to the legacy docs by @bcdurak in #3630
- Extending the Dockerfiles by @bcdurak in #3632
- Use parent image digest for cache invalidation by @schustmi in #3617
- Pro API login lock and other robustness improvements by @stefannica in #3625
- Fixing images for the Hello World and various other fixes by @bcdurak in #3637
- Pin setuptools and remove it from scripts by @stefannica in #3636
- Update link validation to skip GitHub links and improve progress tracking by @htahir1 in #3641
- Added docs section by @AlexejPenner in #3640
- Various improvements to the release flow by @bcdurak in #3638
- Fix Dockerhub repo digest detection by @schustmi in #3621
- Add unique instance label to helm chart by @stefannica in #3639
- Slight doc fix. Fixes #3645 by @htahir1 in #3646
- Add 5-min quick wins page to docs by @strickvl in #3633
- Limit max concurrent template runs by @schustmi in #3627
- Fix bolt icon by @strickvl in #3648
- Update docs with accurate list of workload manager options by @stefannica in #3643
- Workflow to deploy workspaces for PRs by @bcdurak in #3618
- Format link checker by @schustmi in #3656
- Improve run template UX by @schustmi in #3602
- Prevent unnecessary hydration in project-scoped responses by @schustmi in #3657
- Update alembic version to "^1.8.1" in pyproject.toml by @htahir1 in #3529
- Fixing artifact visualization docs by @bcdurak in #3661
- Add stress test example by @stefannica in #3663
- Misc login fixes by @schustmi in #3654
- Report run template trigger usage by @schustmi in #3659
- Specify end date for template runs that failed during spinup by @schustmi in #3664
- Make Kubernetes job cleanup options configurable by @schustmi in #3644
- Dashboard features documentation by @strickvl in #3662
- Pyproject.toml support for DockerSettings by @schustmi in #3292
- Utilizing cascading tags for cached step runs by @bcdurak in #3655
Full Changelog: 0.82.0...0.82.1
0.82.0
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
- Adding 0.80.2 to legacy docs by @bcdurak in #3547
- Add 0.81.0 to migration tests by @bcdurak in #3546
- Document self-hosted run templates by @stefannica in #3552
- Adjusted github code repo regex pattern matching to work in more cases by @AlexejPenner in #3550
- Documentation revamp by @bcdurak in #3524
- Remove outdated redirects and sections by @htahir1 in #3564
- Removed orphan assets by @htahir1 in #3567
- Fixed broken absolute links and brought back some sections by @htahir1 in #3585
- Fix listing run templates by @schustmi in #3587
- Don't log missing active project warnings preemtively by @schustmi in #3586
- Docs fixes by @strickvl in #3565
- More docs changes by @htahir1 in #3592
- Update scikit-learn requirement in SklearnIntegration by @htahir1 in #3551
- Small docs fixes by @strickvl in #3584
- More small docs fixes by @strickvl in #3601
- Docs: Migrate to unified log_metadata method in starter guide by @marwan37 in #3603
- Add docs for run template TTL env var by @schustmi in #3604
- Make runner timeout easily configurable by @schustmi in #3589
- Disable default project behavior for pro workspaces by @schustmi in #3605
- Remove unnecessary and invalid settings by @schustmi in #3548
- Update image paths for ZenML pipeline screenshots by @htahir1 in #3611
- Update NumPy integration to work with 1.x and 2.x versions of the library by @htahir1 in #3532
- Invalidate the build when parent dockerfile changes by @schustmi in #3607
- Ignore existing directories during code download by @schustmi in #3609
- Max parallelism option for kubernetes orchestrator by @schustmi in #3606
- Add option to specify pod name prefix and add scheduler by @schustmi in #3591
- Fix CVE-2024-6345 CVE-2024-6345 CVE-2022-40897 and CVE-2025-0508 by @stefannica in #3610
- Docs: Starter guide fixes by @marwan37 in #3616
- Remove some unused code by @schustmi in #3614
- Add option to set a private service connect to the Vertex AI orchestrator by @stefannica in #3613
- Add Pandas custom data type error handling and logging by @htahir1 in #3539
- Allowing listing model versions without models by @bcdurak in #3593
- Store list of python packages by @schustmi in #3608
- Allow (and ignore) extra attributes in all ZenML models by @stefannica in #3620
- Utilizing uv in the quickstart dockerfiles by @bcdurak in #3623
- Fixing the azure integration and marshmallow by @bcdurak in #3626
Full Changelog: 0.81.0...0.82.0
0.81.0
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
- Added triggering pipelines mini-tutorial
- Improved SDK Client documentation with thematic grouping
- Added Kubernetes schedule documentation and fixed heading hierarchy
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
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
- Added new ZenML Tutorials section to user guide
- Added mini-tutorials for pipeline scheduling and organization with tags/projects
- Updated documentation for MCP Server and VSCode Extension
- Fixed various documentation issues
What's Changed
- Updating the missing legacy docs by @bcdurak in #3473
- add new version to the migration tests by @bcdurak in #3471
- Add docs for MCP Server and VSCode Extension by @strickvl in #3475
- Log job completion for Vertex orchestrator by @strickvl in #3478
- Cleaning up the CI failures by @bcdurak in #3480
- Remove remaining use of tj-actions/changed-files by @stefannica in #3481
- Fixing the timestamps in logs by @bcdurak in #3479
- Fix incorrect step access method in documentation by @marwan37 in #3483
- Relaxing the
mlflow
dependency by @bcdurak in #3446 - Add two mini-tutorials (pipeline scheduling and organization with tags/projects) by @strickvl in #3485
- Add ZenML Tutorials section to user guide by @htahir1 in #3488
- Add service annotations to helm chart by @jsybel in #3482
- Adding step name to console logs by @bcdurak in #3486
- Fix yanked fsspec pip resolution issue by @stefannica in #3493
- Fixed some docs here and there by @htahir1 in #3484
- Update error message for setting pipeline parameters via API by @htahir1 in #3491
- Fix the service connector list-resources endpoint and CLI command by @stefannica in #3492
- Restructure organization viewer role in ZenML Pro by @htahir1 in #3501
- Add a sample visualization for Pandas materializer by @htahir1 in #3494
- Add retry option on step.with_options by @schustmi in #3499
- Fix tutorials + small improvements to docs by @htahir1 in #3489
- CI fixes with
huggingface
and crud tests by @bcdurak in #3502 - Upgrading pydantic to 2.11 by @bcdurak in #3472
- Update step status if Kubernetes Orchestrator step pods fail by @stefannica in #3497
- Add
poetry add
support for CLI by @avishniakov in #3470 - Small run template improvements by @schustmi in #3503
- Move uv env var to constants by @schustmi in #3504
- Add hidden option for run templates by @schustmi in #3500
- Fix security check for poetry by @bcdurak in #3509
- Minor auth improvement by @schustmi in #3512
New Contributors
Full Changelog: 0.80.1...0.80.2