zenml-nightly 0.58.2.dev20240623__py3-none-any.whl → 0.61.0.dev20240712__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. README.md +30 -9
  2. RELEASE_NOTES.md +240 -0
  3. zenml/VERSION +1 -1
  4. zenml/actions/base_action.py +177 -174
  5. zenml/actions/pipeline_run/pipeline_run_action.py +28 -23
  6. zenml/analytics/enums.py +3 -0
  7. zenml/artifact_stores/base_artifact_store.py +7 -1
  8. zenml/artifacts/utils.py +13 -10
  9. zenml/cli/__init__.py +28 -0
  10. zenml/cli/artifact.py +1 -2
  11. zenml/cli/integration.py +9 -8
  12. zenml/cli/server.py +6 -0
  13. zenml/cli/service_connectors.py +1 -0
  14. zenml/cli/stack.py +946 -39
  15. zenml/cli/stack_components.py +7 -0
  16. zenml/cli/text_utils.py +35 -1
  17. zenml/cli/utils.py +127 -10
  18. zenml/client.py +257 -72
  19. zenml/config/compiler.py +10 -9
  20. zenml/config/docker_settings.py +33 -14
  21. zenml/constants.py +11 -2
  22. zenml/container_registries/base_container_registry.py +1 -0
  23. zenml/enums.py +7 -0
  24. zenml/event_hub/base_event_hub.py +5 -5
  25. zenml/event_hub/event_hub.py +20 -14
  26. zenml/event_sources/base_event.py +0 -11
  27. zenml/event_sources/base_event_source.py +7 -0
  28. zenml/event_sources/webhooks/base_webhook_event_source.py +1 -4
  29. zenml/exceptions.py +4 -0
  30. zenml/hooks/hook_validators.py +2 -3
  31. zenml/integrations/aws/__init__.py +1 -0
  32. zenml/integrations/azure/__init__.py +1 -0
  33. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +3 -3
  34. zenml/integrations/deepchecks/__init__.py +1 -0
  35. zenml/integrations/discord/__init__.py +1 -0
  36. zenml/integrations/evidently/__init__.py +1 -0
  37. zenml/integrations/facets/__init__.py +1 -0
  38. zenml/integrations/feast/__init__.py +1 -0
  39. zenml/integrations/gcp/__init__.py +3 -1
  40. zenml/integrations/gcp/google_credentials_mixin.py +1 -1
  41. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +320 -64
  42. zenml/integrations/huggingface/__init__.py +1 -0
  43. zenml/integrations/integration.py +24 -0
  44. zenml/integrations/kubeflow/__init__.py +3 -0
  45. zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +1 -1
  46. zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +0 -1
  47. zenml/integrations/kubernetes/__init__.py +3 -1
  48. zenml/integrations/kubernetes/orchestrators/kube_utils.py +4 -1
  49. zenml/integrations/label_studio/annotators/label_studio_annotator.py +1 -0
  50. zenml/integrations/langchain/__init__.py +1 -0
  51. zenml/integrations/mlflow/__init__.py +4 -2
  52. zenml/integrations/neural_prophet/__init__.py +1 -0
  53. zenml/integrations/polars/__init__.py +1 -0
  54. zenml/integrations/prodigy/__init__.py +1 -0
  55. zenml/integrations/pycaret/__init__.py +6 -0
  56. zenml/integrations/registry.py +37 -0
  57. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +93 -9
  58. zenml/integrations/seldon/__init__.py +1 -0
  59. zenml/integrations/seldon/model_deployers/seldon_model_deployer.py +1 -0
  60. zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +2 -2
  61. zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +1 -1
  62. zenml/integrations/skypilot/orchestrators/skypilot_orchestrator_entrypoint.py +2 -2
  63. zenml/integrations/skypilot_aws/__init__.py +2 -1
  64. zenml/integrations/skypilot_azure/__init__.py +1 -1
  65. zenml/integrations/skypilot_gcp/__init__.py +1 -1
  66. zenml/integrations/skypilot_lambda/__init__.py +1 -1
  67. zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +1 -1
  68. zenml/integrations/slack/__init__.py +1 -0
  69. zenml/integrations/tekton/__init__.py +1 -0
  70. zenml/integrations/tensorboard/__init__.py +0 -1
  71. zenml/integrations/tensorflow/__init__.py +18 -6
  72. zenml/integrations/wandb/__init__.py +1 -0
  73. zenml/logging/step_logging.py +54 -51
  74. zenml/models/__init__.py +28 -0
  75. zenml/models/v2/core/action.py +276 -0
  76. zenml/models/v2/core/component.py +18 -0
  77. zenml/models/v2/core/model.py +1 -2
  78. zenml/models/v2/core/service_connector.py +17 -0
  79. zenml/models/v2/core/stack.py +31 -0
  80. zenml/models/v2/core/trigger.py +182 -141
  81. zenml/models/v2/misc/full_stack.py +97 -0
  82. zenml/models/v2/misc/stack_deployment.py +86 -0
  83. zenml/new/pipelines/pipeline.py +14 -4
  84. zenml/new/pipelines/pipeline_decorator.py +1 -2
  85. zenml/new/pipelines/run_utils.py +1 -12
  86. zenml/new/steps/step_decorator.py +2 -3
  87. zenml/orchestrators/input_utils.py +3 -6
  88. zenml/pipelines/base_pipeline.py +0 -2
  89. zenml/pipelines/pipeline_decorator.py +1 -2
  90. zenml/stack/stack.py +3 -6
  91. zenml/stack/stack_component.py +4 -0
  92. zenml/stack_deployments/__init__.py +14 -0
  93. zenml/stack_deployments/aws_stack_deployment.py +254 -0
  94. zenml/stack_deployments/gcp_stack_deployment.py +260 -0
  95. zenml/stack_deployments/stack_deployment.py +208 -0
  96. zenml/stack_deployments/utils.py +44 -0
  97. zenml/steps/base_step.py +1 -2
  98. zenml/steps/step_decorator.py +1 -2
  99. zenml/types.py +10 -1
  100. zenml/utils/function_utils.py +1 -1
  101. zenml/utils/pagination_utils.py +7 -5
  102. zenml/utils/pipeline_docker_image_builder.py +117 -73
  103. zenml/utils/pydantic_utils.py +6 -5
  104. zenml/zen_server/cloud_utils.py +18 -3
  105. zenml/zen_server/dashboard/assets/{404-CDPQCl4D.js → 404-DpJaNHKF.js} +1 -1
  106. zenml/zen_server/dashboard/assets/@radix-CFOkMR_E.js +85 -0
  107. zenml/zen_server/dashboard/assets/{@react-router-DYovave8.js → @react-router-CO-OsFwI.js} +2 -2
  108. zenml/zen_server/dashboard/assets/{@reactflow-CHBapDaj.js → @reactflow-DJfzkHO1.js} +2 -2
  109. zenml/zen_server/dashboard/assets/@tanstack-DYiOyJUL.js +22 -0
  110. zenml/zen_server/dashboard/assets/AwarenessChannel-BYDLT2xC.js +1 -0
  111. zenml/zen_server/dashboard/assets/{CodeSnippet-BidtnWOi.js → CodeSnippet-BkOuRmyq.js} +2 -2
  112. zenml/zen_server/dashboard/assets/Commands-ZvWR1BRs.js +1 -0
  113. zenml/zen_server/dashboard/assets/CopyButton-DVwLkafa.js +2 -0
  114. zenml/zen_server/dashboard/assets/{CsvVizualization-BOuez-fG.js → CsvVizualization-C2IiqX4I.js} +7 -7
  115. zenml/zen_server/dashboard/assets/DisplayDate-DYgIjlDF.js +1 -0
  116. zenml/zen_server/dashboard/assets/EmptyState-BMLnFVlB.js +1 -0
  117. zenml/zen_server/dashboard/assets/Error-CqX0VqW_.js +1 -0
  118. zenml/zen_server/dashboard/assets/ExecutionStatus-BoLUXR9t.js +1 -0
  119. zenml/zen_server/dashboard/assets/Helpbox-LFydyVwh.js +1 -0
  120. zenml/zen_server/dashboard/assets/Infobox-DnENC0sh.js +1 -0
  121. zenml/zen_server/dashboard/assets/InlineAvatar-CbJtYr0t.js +1 -0
  122. zenml/zen_server/dashboard/assets/{MarkdownVisualization-DsB2QZiK.js → MarkdownVisualization-xp3hhULl.js} +2 -2
  123. zenml/zen_server/dashboard/assets/Pagination-DEbVUupy.js +1 -0
  124. zenml/zen_server/dashboard/assets/PasswordChecker-DUveqlva.js +1 -0
  125. zenml/zen_server/dashboard/assets/SetPassword-BYBdbQDo.js +1 -0
  126. zenml/zen_server/dashboard/assets/SuccessStep-Nx743hll.js +1 -0
  127. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DnM-c11H.js → UpdatePasswordSchemas-DF9gSzE0.js} +1 -1
  128. zenml/zen_server/dashboard/assets/{aws-t0gKCj_R.js → aws-BgKTfTfx.js} +1 -1
  129. zenml/zen_server/dashboard/assets/{check-circle-BVvhm5dy.js → check-circle-i56092KI.js} +1 -1
  130. zenml/zen_server/dashboard/assets/{chevron-down-zcvCWmyP.js → chevron-down-D_ZlKMqH.js} +1 -1
  131. zenml/zen_server/dashboard/assets/{chevron-right-double-CJ50E9Gr.js → chevron-right-double-BiEMg7rd.js} +1 -1
  132. zenml/zen_server/dashboard/assets/cloud-only-DVbIeckv.js +1 -0
  133. zenml/zen_server/dashboard/assets/{copy-BRhQz3j-.js → copy-BXNk6BjL.js} +1 -1
  134. zenml/zen_server/dashboard/assets/{database-CRRnyFWh.js → database-1xWSgZfO.js} +1 -1
  135. zenml/zen_server/dashboard/assets/{docker-BAonhm6G.js → docker-CQMVm_4d.js} +1 -1
  136. zenml/zen_server/dashboard/assets/{file-text-CbVERUON.js → file-text-CqD_iu6l.js} +1 -1
  137. zenml/zen_server/dashboard/assets/{help-B8rqCvqn.js → help-bu_DgLKI.js} +1 -1
  138. zenml/zen_server/dashboard/assets/index-C_CrU4vI.js +1 -0
  139. zenml/zen_server/dashboard/assets/index-DK1ynKjA.js +55 -0
  140. zenml/zen_server/dashboard/assets/index-inApY3KQ.css +1 -0
  141. zenml/zen_server/dashboard/assets/index-rK_Wuy2W.js +1 -0
  142. zenml/zen_server/dashboard/assets/index.esm-Corw4lXQ.js +1 -0
  143. zenml/zen_server/dashboard/assets/{login-mutation-wzzl23C6.js → login-mutation-BUnVASxp.js} +1 -1
  144. zenml/zen_server/dashboard/assets/not-found-B4VnX8gK.js +1 -0
  145. zenml/zen_server/dashboard/assets/package-CsUhPmou.js +1 -0
  146. zenml/zen_server/dashboard/assets/{page-BmkSiYeQ.js → page-3efNCDeb.js} +2 -2
  147. zenml/zen_server/dashboard/assets/page-7zTHbhhI.js +1 -0
  148. zenml/zen_server/dashboard/assets/page-BEs6jK71.js +1 -0
  149. zenml/zen_server/dashboard/assets/page-BpSqIf4B.js +1 -0
  150. zenml/zen_server/dashboard/assets/{page-AQKopn_4.js → page-Bx6o0ARS.js} +1 -1
  151. zenml/zen_server/dashboard/assets/page-C43QGHTt.js +9 -0
  152. zenml/zen_server/dashboard/assets/page-CR0OG7ss.js +1 -0
  153. zenml/zen_server/dashboard/assets/page-CRTJ0UuR.js +1 -0
  154. zenml/zen_server/dashboard/assets/page-CUZIGO-3.js +1 -0
  155. zenml/zen_server/dashboard/assets/page-CaopxiU1.js +1 -0
  156. zenml/zen_server/dashboard/assets/{page-CuT1SUik.js → page-Cx67M0QT.js} +1 -1
  157. zenml/zen_server/dashboard/assets/page-D7Z399xy.js +1 -0
  158. zenml/zen_server/dashboard/assets/page-D93kd7Xj.js +1 -0
  159. zenml/zen_server/dashboard/assets/{page-BzVZGExK.js → page-DKlIdAe5.js} +1 -1
  160. zenml/zen_server/dashboard/assets/{page-Bi5AI0S7.js → page-DMOYZppS.js} +1 -1
  161. zenml/zen_server/dashboard/assets/page-DMsSn3dv.js +2 -0
  162. zenml/zen_server/dashboard/assets/{page-BW6Ket3a.js → page-Dc_7KMQE.js} +1 -1
  163. zenml/zen_server/dashboard/assets/page-DvCvroOM.js +1 -0
  164. zenml/zen_server/dashboard/assets/page-Hus2pr9T.js +1 -0
  165. zenml/zen_server/dashboard/assets/page-JyfeDUfu.js +1 -0
  166. zenml/zen_server/dashboard/assets/{page-yN4rZ-ZS.js → page-Sxn82W-5.js} +1 -1
  167. zenml/zen_server/dashboard/assets/page-TKXERe16.js +1 -0
  168. zenml/zen_server/dashboard/assets/page-Xu8JEjSU.js +1 -0
  169. zenml/zen_server/dashboard/assets/{play-circle-DK5QMJyp.js → play-circle-CNtZKDnW.js} +1 -1
  170. zenml/zen_server/dashboard/assets/plus-DOeLmm7C.js +1 -0
  171. zenml/zen_server/dashboard/assets/{terminal-B2ovgWuz.js → terminal-By9cErXc.js} +1 -1
  172. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-0Wgz8pUE.js → update-server-settings-mutation-CR8e3Sir.js} +1 -1
  173. zenml/zen_server/dashboard/assets/{url-6_xv0WJS.js → url-DuQMeqYA.js} +1 -1
  174. zenml/zen_server/dashboard/assets/{zod-DrZvVLjd.js → zod-BhoGpZ63.js} +1 -1
  175. zenml/zen_server/dashboard/index.html +7 -7
  176. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  177. zenml/zen_server/dashboard_legacy/index.html +1 -1
  178. zenml/zen_server/dashboard_legacy/{precache-manifest.f4abc5b7cfa7d90c1caf5521918e29a8.js → precache-manifest.c8c57fb0d2132b1d3c2119e776b7dfb3.js} +4 -4
  179. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  180. zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js → main.382439a7.chunk.js} +2 -2
  181. zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js.map → main.382439a7.chunk.js.map} +1 -1
  182. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  183. zenml/zen_server/deploy/helm/README.md +2 -2
  184. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +11 -5
  185. zenml/zen_server/pipeline_deployment/utils.py +57 -44
  186. zenml/zen_server/rbac/models.py +1 -0
  187. zenml/zen_server/rbac/utils.py +22 -1
  188. zenml/zen_server/rbac/zenml_cloud_rbac.py +11 -5
  189. zenml/zen_server/routers/actions_endpoints.py +324 -0
  190. zenml/zen_server/routers/stack_deployment_endpoints.py +158 -0
  191. zenml/zen_server/routers/triggers_endpoints.py +30 -158
  192. zenml/zen_server/routers/workspaces_endpoints.py +64 -0
  193. zenml/zen_server/zen_server_api.py +4 -0
  194. zenml/zen_stores/migrations/utils.py +1 -1
  195. zenml/zen_stores/migrations/versions/0.60.0_release.py +23 -0
  196. zenml/zen_stores/migrations/versions/0.61.0_release.py +23 -0
  197. zenml/zen_stores/migrations/versions/0d707865f404_adding_labels_to_stacks.py +30 -0
  198. zenml/zen_stores/migrations/versions/25155145c545_separate_actions_and_triggers.py +228 -0
  199. zenml/zen_stores/rest_zen_store.py +248 -8
  200. zenml/zen_stores/schemas/__init__.py +2 -0
  201. zenml/zen_stores/schemas/action_schemas.py +192 -0
  202. zenml/zen_stores/schemas/stack_schemas.py +10 -0
  203. zenml/zen_stores/schemas/step_run_schemas.py +27 -11
  204. zenml/zen_stores/schemas/trigger_schemas.py +43 -50
  205. zenml/zen_stores/schemas/user_schemas.py +10 -2
  206. zenml/zen_stores/schemas/workspace_schemas.py +5 -0
  207. zenml/zen_stores/sql_zen_store.py +540 -36
  208. zenml/zen_stores/zen_store_interface.py +165 -0
  209. {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/METADATA +33 -11
  210. {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/RECORD +213 -193
  211. zenml/zen_server/dashboard/assets/@radix-C9DBgJhe.js +0 -77
  212. zenml/zen_server/dashboard/assets/@tanstack-CEbkxrhX.js +0 -30
  213. zenml/zen_server/dashboard/assets/AwarenessChannel-nXGpmj_f.js +0 -1
  214. zenml/zen_server/dashboard/assets/Cards-nwsvQLVS.js +0 -1
  215. zenml/zen_server/dashboard/assets/Commands-DuIWKg_Q.js +0 -1
  216. zenml/zen_server/dashboard/assets/CopyButton-B_YSm-Ds.js +0 -2
  217. zenml/zen_server/dashboard/assets/DisplayDate-BdguISQF.js +0 -1
  218. zenml/zen_server/dashboard/assets/EmptyState-BkooiGtL.js +0 -1
  219. zenml/zen_server/dashboard/assets/Error-B6M0dPph.js +0 -1
  220. zenml/zen_server/dashboard/assets/Helpbox-BQoqCm04.js +0 -1
  221. zenml/zen_server/dashboard/assets/Infobox-Ce9mefqU.js +0 -1
  222. zenml/zen_server/dashboard/assets/InlineAvatar-DGf3dVhV.js +0 -1
  223. zenml/zen_server/dashboard/assets/PageHeader-DGaemzjc.js +0 -1
  224. zenml/zen_server/dashboard/assets/Pagination-DVYfBCCc.js +0 -1
  225. zenml/zen_server/dashboard/assets/PasswordChecker-DSLBp7Vl.js +0 -1
  226. zenml/zen_server/dashboard/assets/SetPassword-B5s7DJug.js +0 -1
  227. zenml/zen_server/dashboard/assets/SuccessStep-ZzczaM7g.js +0 -1
  228. zenml/zen_server/dashboard/assets/cloud-only-Ba_ShBR5.js +0 -1
  229. zenml/zen_server/dashboard/assets/index-CWJ3xbIf.css +0 -1
  230. zenml/zen_server/dashboard/assets/index-QORVVTMN.js +0 -55
  231. zenml/zen_server/dashboard/assets/index.esm-F7nqy9zY.js +0 -1
  232. zenml/zen_server/dashboard/assets/not-found-Dh2la7kh.js +0 -1
  233. zenml/zen_server/dashboard/assets/page-B-5jAKoO.js +0 -1
  234. zenml/zen_server/dashboard/assets/page-B-vWk8a6.js +0 -1
  235. zenml/zen_server/dashboard/assets/page-B0BrqfS8.js +0 -1
  236. zenml/zen_server/dashboard/assets/page-BQxVFlUl.js +0 -1
  237. zenml/zen_server/dashboard/assets/page-ByrHy6Ss.js +0 -1
  238. zenml/zen_server/dashboard/assets/page-CPtY4Kv_.js +0 -1
  239. zenml/zen_server/dashboard/assets/page-CmmukLsl.js +0 -1
  240. zenml/zen_server/dashboard/assets/page-D2D-7qyr.js +0 -9
  241. zenml/zen_server/dashboard/assets/page-DAQQyLxT.js +0 -1
  242. zenml/zen_server/dashboard/assets/page-DHkUMl_E.js +0 -1
  243. zenml/zen_server/dashboard/assets/page-DZCbwOEs.js +0 -2
  244. zenml/zen_server/dashboard/assets/page-DdaIt20-.js +0 -1
  245. zenml/zen_server/dashboard/assets/page-LqLs24Ot.js +0 -1
  246. zenml/zen_server/dashboard/assets/page-lebv0c7C.js +0 -1
  247. {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/LICENSE +0 -0
  248. {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/WHEEL +0 -0
  249. {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/entry_points.txt +0 -0
README.md CHANGED
@@ -133,9 +133,36 @@ if __name__ == "__main__":
133
133
 
134
134
  ![Running a ZenML pipeline](/docs/book/.gitbook/assets/readme_basic_pipeline.gif)
135
135
 
136
- ### Deploy workloads easily on your production infrastructure
136
+ ### Easily provision an MLOps stack or reuse your existing infrastructure
137
137
 
138
- The framework is a gentle entry point for practitioners to build complex ML pipelines with little knowledge required of the underlying infrastructure complexity. ZenML pipelines can be run on AWS, GCP, Azure, Airflow, Kubeflow and even on Kubernetes without having to change any code or know underlying internals.
138
+ The framework is a gentle entry point for practitioners to build complex ML pipelines with little knowledge required of the underlying infrastructure complexity. ZenML pipelines can be run on AWS, GCP, Azure, Airflow, Kubeflow and even on Kubernetes without having to change any code or know underlying internals.
139
+
140
+ ZenML provides different features to aid people to get started quickly on a remote setting as well. If you want to deploy a remote stack from scratch on your selected cloud provider, you can use the 1-click deployment feature either through the dashboard:
141
+
142
+ ![Running a ZenML pipeline](/docs/book/.gitbook/assets/one-click-deployment.gif)
143
+
144
+ Or, through our CLI command:
145
+
146
+ ```bash
147
+ zenml stack deploy --provider aws
148
+ ```
149
+
150
+ Alternatively, if the necessary pieces of infrastructure is already deployed, you can register a cloud stack seamlessly through the stack wizard:
151
+
152
+ ```bash
153
+ zenml stack register <STACK_NAME> --provider aws
154
+ ```
155
+
156
+ Read more about [ZenML stacks](https://docs.zenml.io/user-guide/production-guide/understand-stacks).
157
+
158
+ ### Run workloads easily on your production infrastructure
159
+
160
+ Once you have your MLOps stack configured, you can easily run workloads on it:
161
+
162
+ ```bash
163
+ zenml stack set <STACK_NAME>
164
+ python run.py
165
+ ```
139
166
 
140
167
  ```python
141
168
  from zenml.config import ResourceSettings, DockerSettings
@@ -150,14 +177,8 @@ def training(...):
150
177
  ...
151
178
  ```
152
179
 
153
- ```bash
154
- zenml stack set k8s # Set a stack with kubernetes orchestrator
155
- python run.py
156
- ```
157
-
158
180
  ![Workloads with ZenML](/docs/book/.gitbook/assets/readme_compute.gif)
159
181
 
160
-
161
182
  ### Track models, pipeline, and artifacts
162
183
 
163
184
  Create a complete lineage of who, where, and what data and models are produced.
@@ -306,7 +327,7 @@ the Apache License Version 2.0.
306
327
  <a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
307
328
  <br />
308
329
  <br />
309
- 🎉 Version 0.58.2 is out. Check out the release notes
330
+ 🎉 Version 0.61.0 is out. Check out the release notes
310
331
  <a href="https://github.com/zenml-io/zenml/releases">here</a>.
311
332
  <br />
312
333
  🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.
RELEASE_NOTES.md CHANGED
@@ -1,4 +1,244 @@
1
1
  <!-- markdown-link-check-disable -->
2
+ # 0.61.0
3
+
4
+ This release comes with a new and easy way to deploy an AWS ZenML stack from the dashboard and the CLI. Give it a try by going to the `Stacks` section in the dashboard or running the `zenml stack deploy` command!
5
+
6
+ We hope this makes it super easy for existing and new users to set up the infrastructure required to run ZenML pipelines on the cloud in one click.
7
+
8
+ Note: Only a simple AWS stack using Skypilot supported for now but GCP + Azure to come!
9
+
10
+ Additionally, this release includes improvements to our documentation and bugfixes for some integrations.
11
+
12
+ ## What's Changed
13
+
14
+ * Add latest zenml version to migration testing scripts by @htahir1 in https://github.com/zenml-io/zenml/pull/2811
15
+ * Add service connector support for Google Artifact Registry by @stefannica in https://github.com/zenml-io/zenml/pull/2771
16
+ * Update order in which requirements are installed by @schustmi in https://github.com/zenml-io/zenml/pull/2341
17
+ * Add installation instructions for Macs running on Apple Silicon by @strickvl in https://github.com/zenml-io/zenml/pull/2774
18
+ * Added docs for trigger interface by @htahir1 in https://github.com/zenml-io/zenml/pull/2806
19
+ * Update triggers docs with information on previously-run pipelines by @strickvl in https://github.com/zenml-io/zenml/pull/2820
20
+ * Bump kfp version in GCP integration for pydantic2.0 by @wjayesh in https://github.com/zenml-io/zenml/pull/2824
21
+ * Use shared cloud connection to reduce M2M token usage by @schustmi in https://github.com/zenml-io/zenml/pull/2817
22
+ * Fail pipeline run if error happens during deployment by @schustmi in https://github.com/zenml-io/zenml/pull/2818
23
+ * Login to dockerhub to solve rate limiting by @schustmi in https://github.com/zenml-io/zenml/pull/2828
24
+ * Stack wizard CLI + Endpoints by @avishniakov in https://github.com/zenml-io/zenml/pull/2808
25
+ * In-browser assisted full cloud stack deployments by @stefannica in https://github.com/zenml-io/zenml/pull/2816
26
+ * Fix Kubeflow v2 integration by @wjayesh in https://github.com/zenml-io/zenml/pull/2829
27
+ * fix skypilot jobs failing on VMs (sky bumped to 0.6.0) by @wjayesh in https://github.com/zenml-io/zenml/pull/2815
28
+ * Fix unicode decode errors in k8s pod logs read operation by @wjayesh in https://github.com/zenml-io/zenml/pull/2807
29
+ * Small improvements and bug fixes by @schustmi in https://github.com/zenml-io/zenml/pull/2821
30
+ * TF tests + various integration (un)install improvements by @avishniakov in https://github.com/zenml-io/zenml/pull/2791
31
+ * Fixed bug in the MacOS version check by @strickvl in https://github.com/zenml-io/zenml/pull/2819
32
+ * Remove prefix for analytics labels by @schustmi in https://github.com/zenml-io/zenml/pull/2831
33
+
34
+
35
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.60.0...0.61.0
36
+
37
+ # 0.60.0
38
+
39
+ ZenML now uses Pydantic v2. 🥳
40
+
41
+ This upgrade comes with a set of critical updates. While your user experience
42
+ mostly remains unaffected, you might see unexpected behavior due to the
43
+ changes in our dependencies. Moreover, since Pydantic v2 provides a slightly
44
+ stricter validation process, you might end up bumping into some validation
45
+ errors which was not caught before, but it is all for the better 🙂 If
46
+ you run into any other errors, please let us know either on
47
+ [GitHub](https://github.com/zenml-io/zenml) or on
48
+ our [Slack](https://zenml.io/slack-invite).
49
+
50
+ ## Changes in some of the critical dependencies
51
+
52
+ - SQLModel is one of the core dependencies of ZenML and prior to this upgrade,
53
+ we were utilizing version `0.0.8`. However, this version is relatively
54
+ outdated and incompatible with Pydantic v2. Within the scope of this upgrade,
55
+ we upgraded it to `0.0.18`.
56
+ - Due to the change in the SQLModel version, we also had to upgrade our
57
+ SQLAlchemy dependency from V1 to v2. While this does not affect the way
58
+ that you are using ZenML, if you are using SQLAlchemy in your environment,
59
+ you might have to migrate your code as well. For a detailed list of changes,
60
+ feel free to
61
+ check [their migration guide](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html).
62
+
63
+ ## Changes in `pydantic`
64
+
65
+ Pydantic v2 brings a lot of new and exciting changes to the table. The core
66
+ logic now uses Rust, and it is much faster and more efficient in terms of
67
+ performance. On top of it, the main concepts like model design, configuration,
68
+ validation, or serialization now include a lot of new cool features. If you are
69
+ using `pydantic` in your workflow and are interested in the new changes, you can
70
+ check [the brilliant migration guide](https://docs.pydantic.dev/2.7/migration/)
71
+ provided by the `pydantic` team to see the full list of changes.
72
+
73
+ ## Changes in our integrations changes
74
+
75
+ Much like ZenML, `pydantic` is an important dependency in many other Python
76
+ packages. That’s why conducting this upgrade helped us unlock a new version for
77
+ several ZenML integration dependencies. Additionally, in some instances, we had
78
+ to adapt the functionality of the integration to keep it compatible
79
+ with `pydantic`. So, if you are using any of these integrations, please go
80
+ through the changes.
81
+
82
+ ### Airflow
83
+
84
+ As mentioned above upgrading our `pydantic` dependency meant we had to upgrade
85
+ our `sqlmodel` dependency. Upgrading our `sqlmodel` dependency meant we had to
86
+ upgrade our `sqlalchemy` dependency as well. Unfortunately, `apache-airflow`
87
+ is still using `sqlalchemy` v1 and is incompatible with pydantic v2. As a
88
+ solution, we have removed the dependencies of the `airflow` integration. Now,
89
+ you can use ZenML to create your Airflow pipelines and use a separate
90
+ environment to run them with Airflow. You can check the updated docs
91
+ [right here](https://docs.zenml.io/stack-components/orchestrators/airflow).
92
+
93
+ ### AWS
94
+
95
+ Some of our integrations now require `protobuf` 4. Since our
96
+ previous `sagemaker` version (`2.117.0`) did not support `protobof` 4, we could
97
+ not pair it with these new integrations. Thankfully `sagemaker` started
98
+ supporting `protobuf` 4 with version `2.172.0` and relaxing its dependency
99
+ solved the compatibility issue.
100
+
101
+ ### Evidently
102
+
103
+ The old version of our `evidently` integration was not compatible with Pydantic
104
+ v2. They started supporting it starting from version `0.4.16`. As their latest
105
+ version is `0.4.22`, the new dependency of the integration is limited between
106
+ these two versions.
107
+
108
+ ### Feast
109
+
110
+ Our previous implementation of the `feast` integration was not compatible with
111
+ Pydantic v2 due to the extra `redis` dependency we were using. This extra
112
+ dependency is now removed and the `feast` integration is working as intended.
113
+
114
+ ### GCP
115
+
116
+ The previous version of the Kubeflow dependency (`kfp==1.8.22`) in our GCP
117
+ integration required Pydantic V1 to be installed. While we were upgrading our
118
+ Pydantic dependency, we saw this as an opportunity and wanted to use this chance
119
+ to upgrade the `kfp` dependency to v2 (which has no dependencies on the Pydantic
120
+ library). This is why you may see some functional changes in the vertex step
121
+ operator and orchestrator. If you would like to go through the changes in
122
+ the `kfp` library, you can
123
+ find [the migration guide here](https://www.kubeflow.org/docs/components/pipelines/v2/migration/).
124
+
125
+ ### Great Expectations
126
+
127
+ Great Expectations started supporting Pydantic v2 starting from
128
+ version `0.17.15` and they are closing in on their `1.0` release. Since this
129
+ release might include a lot of big changes, we adjusted the dependency in our
130
+ integration to `great-expectations>=0.17.15,<1.0`. We will try to keep it
131
+ updated in the future once they release the `1.0` version
132
+
133
+ ### Kubeflow
134
+
135
+ Similar to the GCP integration, the previous version of the kubeflow
136
+ dependency (`kfp==1.8.22`) in our `kubeflow` integration required Pydantic V1 to
137
+ be installed. While we were upgrading our Pydantic dependency, we saw this as an
138
+ opportunity and wanted to use this chance to upgrade the `kfp` dependency to
139
+ v2 (which has no dependencies on the Pydantic library). If you would like to go
140
+ through the changes in the `kfp` library, you can
141
+ find [the migration guide here](https://www.kubeflow.org/docs/components/pipelines/v2/migration/). (
142
+ We also are considering adding an alternative version of this integration so our
143
+ users can keep using `kfp` V1 in their environment. Stay tuned for any updates.)
144
+
145
+ ### MLflow
146
+
147
+ `mlflow` is compatible with both Pydantic V1 and v2. However, due to a known
148
+ issue, if you install `zenml` first and then
149
+ do `zenml integration install mlflow -y`, it downgrades `pydantic` to V1. This
150
+ is why we manually added the same duplicated `pydantic` requirement in the
151
+ integration definition as well. Keep in mind that the `mlflow` library is still
152
+ using some features of `pydantic` V1 which are deprecated. So, if the
153
+ integration is installed in your environment, you might run into some
154
+ deprecation warnings.
155
+
156
+ ### Label Studio
157
+
158
+ While we were working on updating our `pydantic` dependency,
159
+ the `label-studio-sdk` has released its 1.0 version. In this new
160
+ version, `pydantic` v2 is also supported. The implementation and documentation
161
+ of our Label Studio integration have been updated accordingly.
162
+
163
+ ### Skypilot
164
+
165
+ With the switch to `pydantic` v2, the implementation of our `skypilot`
166
+ integration mostly remained untouched. However, due to an incompatibility
167
+ between the new version `pydantic` and the `azurecli`, the `skypilot[azure]`
168
+ flavor can not be installed at the same time, thus our `skypilot_azure`
169
+ integration is currently deactivated. We are working on fixing this issue and if
170
+ you are using this integration in your workflows, we recommend staying on the
171
+ previous version of ZenML until we can solve this issue.
172
+
173
+ ### Tensorflow
174
+
175
+ The new version of `pydantic` creates a drift between `tensorflow`
176
+ and `typing_extensions` packages and relaxing the dependencies here resolves
177
+ the issue. At the same time, the upgrade to `kfp` v2 (in integrations
178
+ like `kubeflow`, `tekton`, or `gcp`) bumps our `protobuf` dependency from `3.X`
179
+ to `4.X`. To stay compatible with this requirement, the installed version
180
+ of `tensorflow` needs to be `>=2.12.0`. While this change solves the dependency
181
+ issues in most settings, we have bumped into some errors while
182
+ using `tensorflow` 2.12.0 on Python 3.8 on Ubuntu. If you would like to use this
183
+ integration, please consider using a higher Python version.
184
+
185
+ ### Tekton
186
+
187
+ Similar to the `gcp` and `kubeflow` integrations, the old version of
188
+ our `tekton` integration was not compatible with `pydantic` V1 due to its `kfp`
189
+ dependency. With the switch from `kfp` V1 to v2, we have adapted our
190
+ implementation to use the new version of `kfp` library and updated our
191
+ documentation accordingly.
192
+
193
+ ## Additional Changes
194
+
195
+ * We have also released a new version of `mlstacks` with Pydantic v2 support.
196
+ If you are using it in your development environment, you have to upgrade your
197
+ `mlstacks` package as well.
198
+ * Added `zenml.integrations.huggingface.steps.run_with_accelerate` to enable running any step using [`accelerate`](https://huggingface.co/docs/accelerate/en/index). This function is supported by a utility that wraps any step function into a CLI script (which is required by most distributed training tools).
199
+ * Fixed a memory leak that was observed while using the ZenML dashboard to view pipeline logs or artifact visualizations logged through an S3 Artifact Store linked to an AWS Service Connector.
200
+ * Previously, we had an option called `build_options` that allowed users to pass arguments to the docker build command. However, these options were only applied when building the parent image. On macOS with ARM architecture, one needs to specify `platform=linux/amd64` to the build command to leverage local caching of Docker image layers. We have added a way to specify these build options for the "main" ZenML build as well, not just the parent image build. Additionally, users can now specify a `.dockerignore` file for the parent image build, which was previously not possible.
201
+
202
+ ## What's Changed
203
+
204
+ * Extend migration testing by @avishniakov in https://github.com/zenml-io/zenml/pull/2768
205
+ * Add retry docs by @htahir1 in https://github.com/zenml-io/zenml/pull/2770
206
+ * Fix nightly Docker build by @strickvl in https://github.com/zenml-io/zenml/pull/2769
207
+ * Start CTA and Cloud -> Pro renaming by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2773
208
+ * Add star CTA to `README` by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2777
209
+ * Use build python version if available by @schustmi in https://github.com/zenml-io/zenml/pull/2775
210
+ * Introduced Legacy env var in docs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2783
211
+ * Fixing the nlp template for the upcoming pydantic upgrade by @bcdurak in https://github.com/zenml-io/zenml/pull/2778
212
+ * Full renaming away from cloud to pro by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2782
213
+ * Adjust docs url for flavors by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2772
214
+ * Fixed broken unit test on develop and fixed duplicate / by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2785
215
+ * Added timeout by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2786
216
+ * Bump NLP template by @avishniakov in https://github.com/zenml-io/zenml/pull/2787
217
+ * Raise error if Dockerfile does not exist by @schustmi in https://github.com/zenml-io/zenml/pull/2776
218
+ * Pin `numpy<2.0.0` by @avishniakov in https://github.com/zenml-io/zenml/pull/2789
219
+ * Fix partial logs loss in step operators with immutable FS in the backend by @avishniakov in https://github.com/zenml-io/zenml/pull/2788
220
+ * Upgrading to `pydantic` v2 by @bcdurak in https://github.com/zenml-io/zenml/pull/2543
221
+ * New CI/CD docs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2784
222
+ * Improvements for running pipelines from the dashboard by @schustmi in https://github.com/zenml-io/zenml/pull/2781
223
+ * Accelerate runner helper method by @avishniakov in https://github.com/zenml-io/zenml/pull/2746
224
+ * Add `--ignore-errors` flag for `zenml artifact prune` by @strickvl in https://github.com/zenml-io/zenml/pull/2780
225
+ * Enable running a pipeline through the client by @schustmi in https://github.com/zenml-io/zenml/pull/2736
226
+ * Accelerated template LLMs by @avishniakov in https://github.com/zenml-io/zenml/pull/2797
227
+ * Separate actions from triggers by @schustmi in https://github.com/zenml-io/zenml/pull/2700
228
+ * Fix hook type definition and improve code completion for pipeline decorator by @schustmi in https://github.com/zenml-io/zenml/pull/2793
229
+ * Allow specifying build options for main image build by @schustmi in https://github.com/zenml-io/zenml/pull/2749
230
+ * Small improvements for yaml config files by @schustmi in https://github.com/zenml-io/zenml/pull/2796
231
+ * Docs for the `pydantic` migration guide by @bcdurak in https://github.com/zenml-io/zenml/pull/2801
232
+ * Bump mlflow to v2.14.1 by @christianversloot in https://github.com/zenml-io/zenml/pull/2779
233
+ * Bugfix fixing the installation script to use the right mlstacks branch by @bcdurak in https://github.com/zenml-io/zenml/pull/2803
234
+ * Fix S3 artifact store memory leak and other improvements by @stefannica in https://github.com/zenml-io/zenml/pull/2802
235
+
236
+ ## 🥳 Community Contributions 🥳
237
+
238
+ We'd like to give a special thanks to @christianversloot who contributed to
239
+ this release by bumping the `mlflow` version to 2.14.1
240
+
241
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.58.2...0.60.0
2
242
 
3
243
  # 0.58.2
4
244
 
zenml/VERSION CHANGED
@@ -1 +1 @@
1
- 0.58.2.dev20240623
1
+ 0.61.0.dev20240712