Skip to content

0.98.0

Latest

Choose a tag to compare

@bcdurak bcdurak released this 14 Oct 08:50
· 1 commit to main since this release
408aec0

Breaking Changes

  • The langchain integration now supports langchain>=0.3.5,<1.0 instead of the previously pinned 0.3.0. If you rely on a fixed LangChain version, update your environment constraints accordingly, and note that LangChain 1.x is still not supported by ZenML and may require you to stay on a compatible pre-1.0 release. PR #5341

Triggers and automation

  • Dynamic webhook event filters: Webhook triggers can now match a provider’s raw event type and fields directly from the authenticated JSON body. This gives you an escape hatch for events or payload fields that ZenML’s typed event catalog does not expose yet, such as matching newly opened GitHub pull requests targeting a specific branch. PR #5247
  • Forward-compatible run.trigger resolution: Snapshots updated with this release can resolve trigger types that are introduced in future ZenML versions. This reduces the need to refresh snapshots just to use newly added trigger types such as platform or webhook triggers. PR #5281
  • Safer snapshot deletion for triggered pipelines: ZenML now checks whether snapshots are attached to triggers before deletion and warns users about unintended removals. This helps prevent accidentally breaking automations that still depend on a snapshot. PR #5284

Kubernetes, Run:ai, and workload ownership

  • Synchronized OIDC Linux identities for Kubernetes workloads: ZenML Pro deployments using an enterprise identity provider can now carry synchronized linux_uid and linux_gid claims into workloads created by the Kubernetes orchestrator and Kubernetes step operator. This keeps the process UID and primary GID aligned with organization-managed Linux accounts, which is especially useful for shared filesystems and cluster security policies. PR #5301

  • Workspace account annotations on Kubernetes and Run:ai workloads: Kubernetes Jobs, Pod templates, scheduled and dynamic executions, and Run:ai training workloads now include a resolvable zenml.io/workspace-user-id annotation. This gives platform and audit tooling the actual workspace account UUID while preserving custom annotations and leaving ZENML_USER_ID unchanged. PR #5326

  • Owners for managed Kubernetes sandboxes: Kubernetes-managed Sandbox sessions can now be assigned owners. This makes sandbox sessions that are closely related to a step easier to track and helps avoid leaving orphaned sessions behind. PR #5336

  • Workspace service account activation controls: Activation and deactivation are restored for deprecated workspace service accounts and legacy API keys, including keys retained after adoption. This supports migration cleanup and credential rollback while preserving the existing deprecation restrictions and deletion checks. PR #5340

  • Transformers v5 support in the Hugging Face integration: The Hugging Face integration now supports Transformers v5 while retaining compatibility with v4. ZenML only registers the TensorFlow model materializer when running on Transformers v4, and the Accelerate integration now uses cross-version CPU configuration so users can upgrade their Hugging Face stack more smoothly. PR #5321

  • TypeSafe Jev hooks integration: A new typesafe integration adds jev_failure_triage_hook and jev_run_summary_hook for storing Jev’s typed, probability-scored answers as ZenML run metadata. Users can attach structured failure triage and run summaries to their runs without building custom metadata plumbing. PR #5312

Fixed
  • Artifact cache loading for pandas and NumPy artifacts: ArtifactVersionResponse.load() no longer evaluates cached artifact data in a boolean context, which could raise errors like “The truth value of a DataFrame is ambiguous” when loading cached DataFrames or arrays. Loading the same artifact multiple times inside dynamic pipelines now works correctly for DataFrames, NumPy arrays, and other falsy values. PR #5272
  • Concurrent deployed pipeline invocations with remote orchestrators: ZenML no longer lets per-invocation step runner cleanup clear the deployment service’s process-wide run context. Concurrent /invoke calls against deployments that use remote orchestrators such as Kubernetes should no longer race and fail with RuntimeError: Run context not initialized. PR #5159

What's Changed

  • Add 0.97.0 to the migration tests by @github-actions[bot] in #5304
  • Add version 0.96.4 to legacy docs by @github-actions[bot] in #5302
  • Recompute next occurrence when a one-off schedule is retimed by @joaquinhuigomez in #5293
  • Run Kubernetes workloads with synchronized OIDC identities by @stefannica in #5301
  • Forward compatible run.trigger resolution by @Json-Andriopoulos in #5281
  • Retry RDS IAM database connections while IAM changes propagate by @safoinme in #5294
  • Bump the minor-and-patch group across 1 directory with 5 updates by @dependabot[bot] in #5318
  • Fix artifact cache lookup in ArtifactVersionResponse.load by @kounelisagis in #5272
  • Fix context manager docstring linting by @AlexejPenner in #5327
  • Fix Claude Code pre-commit formatting hook that never ran by @strickvl in #5339
  • Fix run context teardown during concurrent deployment invocations by @kounelisagis in #5159
  • Allow to set owners for sandboxes by @avishniakov in #5336
  • Support for dynamic target events by @Json-Andriopoulos in #5247
  • Allowing workspace-level service account activation/deactivation by @bcdurak in #5340
  • Bump PyJWT to 2.15.x to fix medium-severity advisories by @strickvl in #5328
  • Fix broken AWS Strands and Semantic Kernel links in agent framework examples README by @pratikgx in #5342
  • Bump the minor-and-patch group across 1 directory with 5 updates by @dependabot[bot] in #5330
  • Add workspace account annotations to Kubernetes and Run:ai by @safoinme in #5326
  • Relax langchain integration pin to >=0.3.5,<1.0 by @strickvl in #5341
  • Support Transformers v5 in Hugging Face integration by @AlexejPenner in #5321
  • Trigger check before snapshot deletion by @Json-Andriopoulos in #5284
  • Add TypeSafe Jev hooks integration (jev_failure_triage_hook, jev_run_summary_hook) by @strickvl in #5312
  • Prepare release 0.98.0 by @github-actions[bot] in #5353

New Contributors

Full Changelog: 0.97.0...0.98.0