Releases: zenml-io/zenml
0.91.2
New Features
Kubernetes Deployer
- New deployer implementation that allows you to deploy your pipelines on Kubernetes
Other
- Support for Mlflow 3.0
Bug Fixes
- The S3 artifact store now works again with custom backends
- Passing inline SSL certificates for the RestZenStore now works
- The Weights & Biases experiment tracker now doesn't fail if the pipeline run name exceeds the maximum tag length
What's Changed
- Add version 0.91.0 to legacy docs by @github-actions[bot] in #4164
- Fix missing snapshot in remote deployments by @stefannica in #4167
- Add 0.91.1 to the migration tests by @github-actions[bot] in #4166
- Add success comments to changelog validation workflow by @strickvl in #4169
- Fix applying default kubernetes resources by @schustmi in #4171
- Fix bug in deploy staging workspace workflow by @htahir1 in #4176
- Fix release docker build workflow by @schustmi in #4168
- Fix breaking CI checks (Linting & Integration tests) by @Json-Andriopoulos in #4143
- Improvements to CV for FiftyOne (lineage / dataset versioning) by @strickvl in #4147
- Add custom commands, reviewer subagents and Claude workflows by @strickvl in #4172
- Fix documentation errors in containerization and Vertex orchestrator by @strickvl in #4187
- Fix code upload logic for dynamic pipelines without step templates by @schustmi in #4181
- Fix UnboundLocalError in SSL certificate validation by @htahir1 in #4188
- Cache key index for faster cache lookup by @schustmi in #4178
- Add docs for dynamic pipelines experimental feature by @htahir1 in #4173
- Support MLflow 3.0 by @htahir1 in #4160
- Give Claude permission to run the formatting script by @strickvl in #4195
- Fix S3 artifact store endpoint configuration for custom S3 backends by @strickvl in #4186
- Fix Claude GitHub Actions workflow configuration by @strickvl in #4200
- Changes to issue templates by @bcdurak in #4199
- Improve detecting of local images during multi-step-build by @schustmi in #4194
- Sanitize wandb tags by @schustmi in #4189
- Add workflow to close stale PRs after 4 weeks of inactivity by @htahir1 in #4192
- Add Kubernetes Deployer for Pipeline Deployments by @safoinme in #4127
- Fix deletion of dynamic pipeline runs by @schustmi in #4191
- Include project ID in Kubernetes labels by @schustmi in #4177
- Rename method of dynamic orchestrator by @schustmi in #4206
- Implemented detail view for artifact version by @AlexejPenner in #4203
Full Changelog: 0.91.1...0.91.2
0.91.1
New Features
Huggingface Deployer
- New deployer implementation that allows you to deploy your pipelines on Huggingface
Kubernetes orchestrator
- Additional configuration option to specify the container security context
- Additional configuration option that can be used skip creating owner references
Other
- New authentication options for the HashiCorp Vault secret store
- Support for newer Databricks versions
- Introduced v1 of dynamic pipelines. This feature is highly experimental and not meant for production, and we are seeking early feedback. Read these docs for more details.
Bug Fixes
- Fix port reuse for local deployments
- Fix parallel deployment invocations
- Fix keyboard interrupt handling while monitoring a synchronous run
- Fix case-sensitivity issue when updating the name of some entities like stack components
Known issues
- When a kubernetes orchestrator is configured with
pass_zenml_token_as_secret=Trueandorchestrator_pod_settings.envdoes not contain any values, the orchestrator fails to correctly pass the secret. As a workaround in this release, you can either- set
pass_zenml_token_as_secrettoFalse, or - configure a dummy environment variable (e.g. using the following CLI command
zenml orchestrator update --orchestrator_pod_settings='{"env": [{"name": "DUMMY", "value": ""}]}')
- set
What's Changed
- Add version 0.90.0 to legacy docs by @github-actions[bot] in #4094
- Classical ML example by @htahir1 in #4077
- Add
Qwen-Agentexample to agent framework integrations by @strickvl in #4086 - Add 0.91.0 to the migration tests by @github-actions[bot] in #4096
- Update agent framework integrations by @htahir1 in #4090
- A big messaging change by @htahir1 in #4100
- Update pipeline execution instructions in hello-world.md by @htahir1 in #4103
- Various deployment fixes and improvements by @stefannica in #4097
- Add trigger info to the pipeline run metadata by @stefannica in #4106
- Add core dependencies for weather agent example by @htahir1 in #4109
- Add more Hashicorp Vault secrets store auth methods by @stefannica in #4110
- Fix release cloudbuild by @schustmi in #4098
- Update agent documentations to avoid unnecessary code comments by @strickvl in #4115
- Computer vision example with FiftyOne and Ultralytics by @htahir1 in #4112
- Update deployment server main page by @safoinme in #4068
- UX improvements for programmatic API access by @stefannica in #4116
- Feature:4005 Docker settings usage warnings by @Json-Andriopoulos in #4011
- Fix bandit B108 false positive warnings in agent examples by @strickvl in #4107
- Changed reo.dev by @htahir1 in #4131
- Store all pipeline parameters in pipeline config by @schustmi in #4129
- Huggingface deployer by @htahir1 in #4119
- Add Reo to CSP script src headers by @schustmi in #4134
- Adjust release process after quickstart changes by @schustmi in #4104
- bug:4120 Fix skip migration logic by @Json-Andriopoulos in #4139
- Update the OpenAI Agents SDK example by @strickvl in #4105
- Print ZenML UI Deployment Link to Terminal by @safoinme in #4121
- Misc small fixes by @schustmi in #4138
- Updated README with new demo by @htahir1 in #4145
- README again by @htahir1 in #4148
- Add container-level security context support for Kubernetes orchestrator by @htahir1 in #4142
- Dynamic pipelines v0 by @schustmi in #4074
- [Bug:2258] Allow case sensitive updates by @Json-Andriopoulos in #4140
- Feature:3963 Step HeartBeat components by @Json-Andriopoulos in #4073
- Add
skip_owner_referencessetting and makeinclustersetting dynamic for the Kubernetes orchestrator; Addruntime_environmentto DockerSettings by @stefannica in #4146 - Add stack to deployment response resource by @safoinme in #4101
- Document ZenML Pro Personal Access Tokens and deprecate API tokens by @stefannica in #4133
- Improve step fetching by @schustmi in #4155
- Add
changelog.jsonby @Cahllagerfeld in #4150 - Support Newer Version for Databricks Orchestrator by @safoinme in #4144
- Improve deployment CLI output for easier command copying by @strickvl in #4130
- Fix duplicate key icon by @strickvl in #4161
Full Changelog: 0.91.0...0.91.1
0.91.0
This release brings major deployment enhancements (Local Deployer, fully customizable deployment server, and deployment visualizations), powerful caching controls (file/object-based cache invalidation, cache expiration, and custom cache functions), Python 3.13 support, an MLX array materializer, and a new option to customize image tags during builds. It also deprecates legacy model deployers and drops Python 3.9 support.
⚠️ Breaking Changes
- Drop Python 3.9 support
Deprecations
- Model deployers are deprecated; use deployers to deploy entire pipelines instead
New Features
Deployment
- Local Deployer for deploying pipelines locally
- Deployment server is fully customizable via settings
- Attach custom visualizations to deployments
Caching
- Specify files or Python objects that invalidate a step's cache
- Cache expiration to bound cache lifetime
- Custom cache function for advanced invalidation logic
Other
- MLX array materializer
- Python 3.13 support
- Customize the image tag of built Docker images
Bug Fixes
- Fix incompatibility of print capturing when using
numba - Fix the mount point configuration in the Hashicorp Vault secrets store
What's Changed
- Add version 0.85.0 to legacy docs by @github-actions[bot] in #4029
- Add 0.90.0 to the migration tests by @github-actions[bot] in #4031
- Document pipeline deployments and deployers by @stefannica in #4017
- Snapshot docs by @schustmi in #4023
- Update examples for deployed pipelines by @safoinme in #3960
- Quote helm chart description by @schustmi in #4032
- Add MLX array materializer by @nicholasjng in #4027
- Better CLI error messages by @schustmi in #4035
- Prevent MLX integration install on Intel Macs by @strickvl in #4039
- Fixes for timestamps in logs by @bcdurak in #4052
- Fix breaking
mypychecks by @Json-Andriopoulos in #4051 - Extend list pipeline filters by @Json-Andriopoulos in #3990
- Add image tag docker setting by @Json-Andriopoulos in #4025
- Small docs improvements by @schustmi in #4041
- Fix secret tags and logs for the AWS deployer by @stefannica in #4056
- Fix snapshot exclusive tagging by @schustmi in #4034
- Removing 3.9 & Adding 3.13 by @bcdurak in #4053
- Fix for inconsistencies between numba and the wrapped print by @bcdurak in #4060
- Fix the user avatar URL field length by @stefannica in #4065
- Additional sorting options for snapshots and deployments by @schustmi in #4033
- Document how to use Pro API keys to access the Pro workspace API by @stefannica in #4066
- Upgrading mypy by @bcdurak in #4062
- Update link for Your First AI Pipeline in README.md by @htahir1 in #4069
- Add snapshot delete command to CLI by @strickvl in #4059
- Deprecate model deployer in docs by @htahir1 in #4076
- Additional caching configurations by @schustmi in #4040
- Log metadata changes by @Json-Andriopoulos in #4049
- Customizable Deployment server settings by @stefannica in #4064
- Add GitBook MCP server documentation by @strickvl in #4080
- Make sure image and user parameters are propagated by @zavidnyi in #4081
- Fix image building bug introduced by deployment requirements by @stefannica in #4082
- Local Deployer implementation by @stefannica in #4085
- Fix the mount point configuration in the Hashicorp Vault secrets store and add it to helm chart by @stefannica in #4088
- Deployment custom visualizations by @safoinme in #4016
New Contributors
Full Changelog: 0.90.0...0.91.0
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
0.85.0
The 0.85.0 release delivers powerful pipeline execution enhancements and caching improvements that provide users with greater control over pipeline behavior.
⚠️ Breaking Changes
- Local Orchestrator Behavior: The local orchestrator will now continue executing steps after some steps fail (instead of stopping execution immediately)
- Docker Package Installer: Default Python package installer in Docker settings switched from
piptouv - Log Endpoint Format: Log endpoints return a different format - affects manual API access but not regular pipeline operations
- Fetching Runs with old Client: Using a client of a previous release (
<0.85.0) to fetch pipeline runs created by a client with version>=0.85.0can cause an error if the run is in
the newprovisioningstatus.
📢 Upcoming Breaking Change
Important Notice for Future Release: In the next release, the base zenml package will no longer include dependencies for running ZenML connected to a local database.. Users will only be able to connect to deployed ZenML servers with the base package.
To continue using ZenML locally with a SQLite database, install with the local extra: pip install 'zenml[local]'. If you're using ZenML with a local server, you're already installing zenml[server] and this change will not affect you.
🚀 New Features
Pipeline Execution Modes
- Flexible Failure Handling: Configure what happens to a pipeline run when any step fails, providing fine-grained control over pipeline execution behavior
Advanced Caching System
- Value-Based Caching: Materializers now support caching artifacts based on their actual content/value rather than just artifact ID, enabling more intelligent cache reuse
- Cache Policies: New cache policy system allows users to specify precisely when a step should be cached, providing granular control over caching behavior
Airflow 3.0 support
- Airflow 3.0 Compatibility: Support for Apache Airflow 3.0, ensuring compatibility with the latest Airflow features and improvements
What's Changed
- Add version 0.84.2 to legacy docs by @github-actions[bot] in #3910
- Made connection docs easier to read by @htahir1 in #3896
- Add Google ADK framework example and
DockerSettingsfor all examples by @strickvl in #3912 - Delete run if model version doesn't exist during creation by @schustmi in #3915
- Caching by value by @schustmi in #3900
- Add start time to step node metadata by @schustmi in #3921
- Prevent stopping runs without orchestrator run id by @schustmi in #3923
- Airflow 3 support by @schustmi in #3922
- fix: typo in core-concepts.md by @mhmunem in #3926
- Run template config improvements by @schustmi in #3918
- Add provisioning execution status by @schustmi in #3924
- Fix unnecessary code upload by @schustmi in #3932
- Allow cloudpickle>3.x by @strickvl in #3914
- Switch to uv as default package installer by @schustmi in #3935
- Fix unit test by @schustmi in #3945
- Efficient queries for execution mode changes by @bcdurak in #3942
- Different pipeline execution modes by @bcdurak in #3874
- Changes to the fetch logs endpoints by @bcdurak in #3845
- Adding verbosity levels to log messages in storage by @bcdurak in #3812
New Contributors
Full Changelog: 0.84.3...0.85.0
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_utilsregex 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 loginby @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_trackerandstep_operatorparameters 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_tagsoptional - 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-guideproject 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-guideproject 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.mdby @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.1to 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