zenml-nightly 0.62.0.dev20240729__py3-none-any.whl → 0.64.0.dev20240809__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 (240) hide show
  1. README.md +2 -2
  2. RELEASE_NOTES.md +120 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +0 -4
  5. zenml/actions/pipeline_run/pipeline_run_action.py +19 -17
  6. zenml/analytics/enums.py +4 -6
  7. zenml/cli/__init__.py +28 -76
  8. zenml/cli/base.py +2 -2
  9. zenml/cli/pipeline.py +54 -61
  10. zenml/cli/stack.py +6 -8
  11. zenml/cli/web_login.py +8 -0
  12. zenml/client.py +232 -103
  13. zenml/config/build_configuration.py +43 -17
  14. zenml/config/compiler.py +14 -22
  15. zenml/config/docker_settings.py +80 -57
  16. zenml/config/pipeline_run_configuration.py +3 -0
  17. zenml/config/server_config.py +3 -0
  18. zenml/config/source.py +60 -1
  19. zenml/constants.py +11 -2
  20. zenml/entrypoints/base_entrypoint_configuration.py +53 -8
  21. zenml/enums.py +4 -1
  22. zenml/environment.py +25 -9
  23. zenml/image_builders/base_image_builder.py +1 -1
  24. zenml/image_builders/build_context.py +25 -72
  25. zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +13 -4
  26. zenml/integrations/azure/__init__.py +4 -0
  27. zenml/integrations/azure/flavors/__init__.py +11 -0
  28. zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +263 -0
  29. zenml/{_hub → integrations/azure/orchestrators}/__init__.py +7 -2
  30. zenml/integrations/azure/orchestrators/azureml_orchestrator.py +544 -0
  31. zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py +86 -0
  32. zenml/integrations/azure/step_operators/azureml_step_operator.py +3 -0
  33. zenml/integrations/databricks/flavors/databricks_orchestrator_flavor.py +20 -2
  34. zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +19 -13
  35. zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +7 -2
  36. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +123 -6
  37. zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +1 -1
  38. zenml/integrations/mlflow/__init__.py +1 -1
  39. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +3 -1
  40. zenml/integrations/mlflow/flavors/mlflow_experiment_tracker_flavor.py +3 -0
  41. zenml/logger.py +13 -0
  42. zenml/models/__init__.py +26 -22
  43. zenml/models/v2/base/filter.py +32 -0
  44. zenml/models/v2/core/pipeline.py +73 -89
  45. zenml/models/v2/core/pipeline_build.py +15 -11
  46. zenml/models/v2/core/pipeline_deployment.py +72 -24
  47. zenml/models/v2/core/pipeline_run.py +65 -1
  48. zenml/models/v2/core/run_template.py +393 -0
  49. zenml/models/v2/core/server_settings.py +12 -0
  50. zenml/models/v2/core/user.py +0 -21
  51. zenml/models/v2/misc/server_models.py +7 -1
  52. zenml/models/v2/misc/stack_deployment.py +5 -0
  53. zenml/models/v2/misc/user_auth.py +0 -7
  54. zenml/new/pipelines/build_utils.py +220 -89
  55. zenml/new/pipelines/code_archive.py +157 -0
  56. zenml/new/pipelines/pipeline.py +46 -78
  57. zenml/new/pipelines/run_utils.py +79 -1
  58. zenml/post_execution/pipeline.py +1 -4
  59. zenml/service_connectors/service_connector_utils.py +18 -2
  60. zenml/stack_deployments/aws_stack_deployment.py +32 -8
  61. zenml/stack_deployments/azure_stack_deployment.py +122 -10
  62. zenml/stack_deployments/gcp_stack_deployment.py +36 -7
  63. zenml/stack_deployments/stack_deployment.py +23 -7
  64. zenml/steps/base_step.py +3 -0
  65. zenml/steps/utils.py +0 -4
  66. zenml/utils/archivable.py +149 -0
  67. zenml/utils/code_utils.py +244 -0
  68. zenml/utils/notebook_utils.py +122 -0
  69. zenml/utils/package_utils.py +39 -0
  70. zenml/utils/pipeline_docker_image_builder.py +3 -96
  71. zenml/utils/source_utils.py +109 -1
  72. zenml/zen_server/dashboard/assets/{404-B_YdvmwS.js → 404-CRAA_Lew.js} +1 -1
  73. zenml/zen_server/dashboard/assets/@radix-BXWm7HOa.js +85 -0
  74. zenml/zen_server/dashboard/assets/{@react-router-CO-OsFwI.js → @react-router-l3lMcXA2.js} +1 -1
  75. zenml/zen_server/dashboard/assets/{@reactflow-l_1hUr1S.js → @reactflow-CeVxyqYT.js} +2 -2
  76. zenml/zen_server/dashboard/assets/{@tanstack-DYiOyJUL.js → @tanstack-FmcYZMuX.js} +4 -4
  77. zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-ErO9aOgK.js +1 -0
  78. zenml/zen_server/dashboard/assets/{AwarenessChannel-CFg5iX4Z.js → AwarenessChannel-CLXo5rKM.js} +1 -1
  79. zenml/zen_server/dashboard/assets/{CodeSnippet-Dvkx_82E.js → CodeSnippet-D0VLxT2A.js} +2 -2
  80. zenml/zen_server/dashboard/assets/CollapsibleCard-BaUPiVg0.js +1 -0
  81. zenml/zen_server/dashboard/assets/{Commands-DoN1xrEq.js → Commands-JrcZK-3j.js} +1 -1
  82. zenml/zen_server/dashboard/assets/CopyButton-Dbo52T1K.js +2 -0
  83. zenml/zen_server/dashboard/assets/{CsvVizualization-Ck-nZ43m.js → CsvVizualization-D3kAypDj.js} +3 -3
  84. zenml/zen_server/dashboard/assets/DisplayDate-DizbSeT-.js +1 -0
  85. zenml/zen_server/dashboard/assets/EditSecretDialog-Bd7mFLS4.js +1 -0
  86. zenml/zen_server/dashboard/assets/{EmptyState-BMLnFVlB.js → EmptyState-BHblM39I.js} +1 -1
  87. zenml/zen_server/dashboard/assets/{Error-kLtljEOM.js → Error-C6LeJSER.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{ExecutionStatus-DguLLgTK.js → ExecutionStatus-jH4OrWBq.js} +1 -1
  89. zenml/zen_server/dashboard/assets/{Helpbox-BXUMP21n.js → Helpbox-aAB2XP-z.js} +1 -1
  90. zenml/zen_server/dashboard/assets/{Infobox-DSt0O-dm.js → Infobox-BQ0aty32.js} +1 -1
  91. zenml/zen_server/dashboard/assets/{InlineAvatar-xsrsIGE-.js → InlineAvatar-DpTLgM3Q.js} +1 -1
  92. zenml/zen_server/dashboard/assets/Lock-CNyJvf2r.js +1 -0
  93. zenml/zen_server/dashboard/assets/{MarkdownVisualization-xp3hhULl.js → MarkdownVisualization-Bajxn0HY.js} +1 -1
  94. zenml/zen_server/dashboard/assets/NumberBox-BmKE0qnO.js +1 -0
  95. zenml/zen_server/dashboard/assets/{PasswordChecker-DUveqlva.js → PasswordChecker-yGGoJSB-.js} +1 -1
  96. zenml/zen_server/dashboard/assets/ProviderRadio-BBqkIuTd.js +1 -0
  97. zenml/zen_server/dashboard/assets/RadioItem-xLhXoiFV.js +1 -0
  98. zenml/zen_server/dashboard/assets/SearchField-C9R0mdaX.js +1 -0
  99. zenml/zen_server/dashboard/assets/{SetPassword-BXGTWiwj.js → SetPassword-52sNxNiO.js} +1 -1
  100. zenml/zen_server/dashboard/assets/{SuccessStep-DZC60t0x.js → SuccessStep-DlkItqYG.js} +1 -1
  101. zenml/zen_server/dashboard/assets/Tick-uxv80Q6a.js +1 -0
  102. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DGvwFWO1.js → UpdatePasswordSchemas-oN4G3sKz.js} +1 -1
  103. zenml/zen_server/dashboard/assets/{aws-BgKTfTfx.js → aws-0_3UsPif.js} +1 -1
  104. zenml/zen_server/dashboard/assets/{check-circle-i56092KI.js → check-circle-1_I207rW.js} +1 -1
  105. zenml/zen_server/dashboard/assets/chevron-down-BpaF8JqM.js +1 -0
  106. zenml/zen_server/dashboard/assets/{chevron-right-double-CZBOf6JM.js → chevron-right-double-Dk8e2L99.js} +1 -1
  107. zenml/zen_server/dashboard/assets/{cloud-only-C_yFCAkP.js → cloud-only-BkUuI0lZ.js} +1 -1
  108. zenml/zen_server/dashboard/assets/components-Br2ezRib.js +1 -0
  109. zenml/zen_server/dashboard/assets/{copy-BXNk6BjL.js → copy-f3XGPPxt.js} +1 -1
  110. zenml/zen_server/dashboard/assets/{database-1xWSgZfO.js → database-cXYNX9tt.js} +1 -1
  111. zenml/zen_server/dashboard/assets/{docker-CQMVm_4d.js → docker-8uj__HHK.js} +1 -1
  112. zenml/zen_server/dashboard/assets/dots-horizontal-sKQlWEni.js +1 -0
  113. zenml/zen_server/dashboard/assets/edit-C0MVvPD2.js +1 -0
  114. zenml/zen_server/dashboard/assets/{file-text-CqD_iu6l.js → file-text-B9JibxTs.js} +1 -1
  115. zenml/zen_server/dashboard/assets/{help-bu_DgLKI.js → help-FuHlZwn0.js} +1 -1
  116. zenml/zen_server/dashboard/assets/{index-rK_Wuy2W.js → index-Bd1xgUQG.js} +1 -1
  117. zenml/zen_server/dashboard/assets/index-DaGknux4.css +1 -0
  118. zenml/zen_server/dashboard/assets/{index-BczVOqUf.js → index-DhIZtpxB.js} +5 -5
  119. zenml/zen_server/dashboard/assets/index.esm-DT4uyn2i.js +1 -0
  120. zenml/zen_server/dashboard/assets/layout-D6oiSbfd.js +1 -0
  121. zenml/zen_server/dashboard/assets/{login-mutation-CrHrndTI.js → login-mutation-13A_JSVA.js} +1 -1
  122. zenml/zen_server/dashboard/assets/{logs-D8k8BVFf.js → logs-CgeE2vZP.js} +1 -1
  123. zenml/zen_server/dashboard/assets/{not-found-DYa4pC-C.js → not-found-B0Mmb90p.js} +1 -1
  124. zenml/zen_server/dashboard/assets/package-DdkziX79.js +1 -0
  125. zenml/zen_server/dashboard/assets/page-7-v2OBm-.js +1 -0
  126. zenml/zen_server/dashboard/assets/{page-MFQyIJd3.js → page-B3ozwdD1.js} +1 -1
  127. zenml/zen_server/dashboard/assets/{page-BkuQDIf-.js → page-BGwA9B1M.js} +1 -1
  128. zenml/zen_server/dashboard/assets/{page-1iL8aMqs.js → page-BkjAUyTA.js} +1 -1
  129. zenml/zen_server/dashboard/assets/page-BnacgBiy.js +1 -0
  130. zenml/zen_server/dashboard/assets/page-BxF_KMQ3.js +2 -0
  131. zenml/zen_server/dashboard/assets/page-C4POHC0K.js +1 -0
  132. zenml/zen_server/dashboard/assets/page-C9kudd44.js +9 -0
  133. zenml/zen_server/dashboard/assets/page-CA1j3GpJ.js +1 -0
  134. zenml/zen_server/dashboard/assets/page-CCY6yfmu.js +1 -0
  135. zenml/zen_server/dashboard/assets/page-CgTe7Bme.js +1 -0
  136. zenml/zen_server/dashboard/assets/{page-8a4UMKXZ.js → page-Cgn-6v2Y.js} +1 -1
  137. zenml/zen_server/dashboard/assets/page-CxQmQqDw.js +1 -0
  138. zenml/zen_server/dashboard/assets/page-D2Goey3H.js +1 -0
  139. zenml/zen_server/dashboard/assets/page-DLpOnf7u.js +1 -0
  140. zenml/zen_server/dashboard/assets/{page-BhgCDInH.js → page-DSTQnBk-.js} +1 -1
  141. zenml/zen_server/dashboard/assets/{page-1h_sD1jz.js → page-DTysUGOy.js} +1 -1
  142. zenml/zen_server/dashboard/assets/{page-2grKx_MY.js → page-D_EXUFJb.js} +1 -1
  143. zenml/zen_server/dashboard/assets/page-Db15QzsM.js +1 -0
  144. zenml/zen_server/dashboard/assets/{page-BDns21Iz.js → page-DugsjcQ_.js} +1 -1
  145. zenml/zen_server/dashboard/assets/{page-C6-UGEbH.js → page-OFKSPyN7.js} +1 -1
  146. zenml/zen_server/dashboard/assets/{page-BkeAAYwp.js → page-RnG-qhv9.js} +1 -1
  147. zenml/zen_server/dashboard/assets/{page-CCNRIt_f.js → page-T2BtjwPl.js} +1 -1
  148. zenml/zen_server/dashboard/assets/page-TXe1Eo3Z.js +1 -0
  149. zenml/zen_server/dashboard/assets/{page-BnaevhnB.js → page-YiF_fNbe.js} +1 -1
  150. zenml/zen_server/dashboard/assets/{page-uA5prJGY.js → page-hQaiQXfg.js} +1 -1
  151. zenml/zen_server/dashboard/assets/persist-3-5nOJ6m.js +1 -0
  152. zenml/zen_server/dashboard/assets/{play-circle-CNtZKDnW.js → play-circle-XSkLR12B.js} +1 -1
  153. zenml/zen_server/dashboard/assets/plus-FB9-lEq_.js +1 -0
  154. zenml/zen_server/dashboard/assets/refresh-COb6KYDi.js +1 -0
  155. zenml/zen_server/dashboard/assets/sharedSchema-BoYx_B_L.js +14 -0
  156. zenml/zen_server/dashboard/assets/{stack-detail-query-Cficsl6d.js → stack-detail-query-B-US_-wa.js} +1 -1
  157. zenml/zen_server/dashboard/assets/{terminal-By9cErXc.js → terminal-grtjrIEJ.js} +1 -1
  158. zenml/zen_server/dashboard/assets/trash-Cd5CSFqA.js +1 -0
  159. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-7d8xi1tS.js → update-server-settings-mutation-B8GB_ubU.js} +1 -1
  160. zenml/zen_server/dashboard/assets/{url-D7mAQGUM.js → url-hcMJkz8p.js} +1 -1
  161. zenml/zen_server/dashboard/assets/{zod-BhoGpZ63.js → zod-CnykDKJj.js} +1 -1
  162. zenml/zen_server/dashboard/index.html +7 -7
  163. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  164. zenml/zen_server/dashboard_legacy/index.html +1 -1
  165. zenml/zen_server/dashboard_legacy/{precache-manifest.12246c7548e71e2c4438e496360de80c.js → precache-manifest.9c473c96a43298343a7ce1256183123b.js} +4 -4
  166. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  167. zenml/zen_server/dashboard_legacy/static/js/{main.3b27024b.chunk.js → main.463c90b9.chunk.js} +2 -2
  168. zenml/zen_server/dashboard_legacy/static/js/{main.3b27024b.chunk.js.map → main.463c90b9.chunk.js.map} +1 -1
  169. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  170. zenml/zen_server/deploy/helm/README.md +2 -2
  171. zenml/zen_server/rbac/models.py +1 -0
  172. zenml/zen_server/rbac/utils.py +4 -0
  173. zenml/zen_server/routers/pipeline_builds_endpoints.py +2 -66
  174. zenml/zen_server/routers/pipeline_deployments_endpoints.py +2 -53
  175. zenml/zen_server/routers/pipelines_endpoints.py +1 -74
  176. zenml/zen_server/routers/run_templates_endpoints.py +212 -0
  177. zenml/zen_server/routers/stack_deployment_endpoints.py +6 -0
  178. zenml/zen_server/routers/users_endpoints.py +0 -7
  179. zenml/zen_server/routers/workspaces_endpoints.py +79 -0
  180. zenml/zen_server/{pipeline_deployment → template_execution}/runner_entrypoint_configuration.py +1 -8
  181. zenml/zen_server/{pipeline_deployment → template_execution}/utils.py +214 -92
  182. zenml/zen_server/utils.py +77 -2
  183. zenml/zen_server/zen_server_api.py +54 -2
  184. zenml/zen_stores/base_zen_store.py +7 -1
  185. zenml/zen_stores/migrations/versions/0.63.0_release.py +23 -0
  186. zenml/zen_stores/migrations/versions/0.64.0_release.py +23 -0
  187. zenml/zen_stores/migrations/versions/026d4577b6a0_add_code_path.py +39 -0
  188. zenml/zen_stores/migrations/versions/3dcc5d20e82f_add_last_user_activity.py +51 -0
  189. zenml/zen_stores/migrations/versions/7d1919bb1ef0_add_run_templates.py +100 -0
  190. zenml/zen_stores/migrations/versions/909550c7c4da_remove_user_hub_token.py +36 -0
  191. zenml/zen_stores/migrations/versions/b59aa68fdb1f_simplify_pipelines.py +139 -0
  192. zenml/zen_stores/rest_zen_store.py +112 -39
  193. zenml/zen_stores/schemas/__init__.py +2 -0
  194. zenml/zen_stores/schemas/pipeline_build_schemas.py +3 -3
  195. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +32 -2
  196. zenml/zen_stores/schemas/pipeline_run_schemas.py +29 -3
  197. zenml/zen_stores/schemas/pipeline_schemas.py +29 -30
  198. zenml/zen_stores/schemas/run_template_schemas.py +264 -0
  199. zenml/zen_stores/schemas/server_settings_schemas.py +2 -0
  200. zenml/zen_stores/schemas/step_run_schemas.py +11 -4
  201. zenml/zen_stores/schemas/user_schemas.py +0 -2
  202. zenml/zen_stores/sql_zen_store.py +389 -151
  203. zenml/zen_stores/template_utils.py +261 -0
  204. zenml/zen_stores/zen_store_interface.py +93 -20
  205. {zenml_nightly-0.62.0.dev20240729.dist-info → zenml_nightly-0.64.0.dev20240809.dist-info}/METADATA +3 -3
  206. {zenml_nightly-0.62.0.dev20240729.dist-info → zenml_nightly-0.64.0.dev20240809.dist-info}/RECORD +211 -184
  207. zenml/_hub/client.py +0 -289
  208. zenml/_hub/constants.py +0 -21
  209. zenml/_hub/utils.py +0 -79
  210. zenml/cli/hub.py +0 -1116
  211. zenml/models/v2/core/pipeline_namespace.py +0 -113
  212. zenml/models/v2/misc/hub_plugin_models.py +0 -79
  213. zenml/new/pipelines/deserialization_utils.py +0 -292
  214. zenml/zen_server/dashboard/assets/@radix-CFOkMR_E.js +0 -85
  215. zenml/zen_server/dashboard/assets/CollapsibleCard-opiuBHHc.js +0 -1
  216. zenml/zen_server/dashboard/assets/CopyButton-Cr7xYEPb.js +0 -2
  217. zenml/zen_server/dashboard/assets/DisplayDate-DYgIjlDF.js +0 -1
  218. zenml/zen_server/dashboard/assets/Pagination-C6X-mifw.js +0 -1
  219. zenml/zen_server/dashboard/assets/index-EpMIKgrI.css +0 -1
  220. zenml/zen_server/dashboard/assets/index.esm-Corw4lXQ.js +0 -1
  221. zenml/zen_server/dashboard/assets/package-B3fWP-Dh.js +0 -1
  222. zenml/zen_server/dashboard/assets/page-5NCOHOsy.js +0 -1
  223. zenml/zen_server/dashboard/assets/page-B6h3iaHJ.js +0 -1
  224. zenml/zen_server/dashboard/assets/page-Bi-wtWiO.js +0 -5
  225. zenml/zen_server/dashboard/assets/page-Bq0YxkLV.js +0 -1
  226. zenml/zen_server/dashboard/assets/page-Bs2F4eoD.js +0 -2
  227. zenml/zen_server/dashboard/assets/page-CHNxpz3n.js +0 -1
  228. zenml/zen_server/dashboard/assets/page-DgorQFqi.js +0 -1
  229. zenml/zen_server/dashboard/assets/page-K8ebxVIs.js +0 -1
  230. zenml/zen_server/dashboard/assets/page-TgCF0P_U.js +0 -1
  231. zenml/zen_server/dashboard/assets/page-ZnCEe-eK.js +0 -9
  232. zenml/zen_server/dashboard/assets/persist-D7HJNBWx.js +0 -1
  233. zenml/zen_server/dashboard/assets/plus-C8WOyCzt.js +0 -1
  234. zenml/zen_server/dashboard/assets/secrets-video-OBJ6irhH.svg +0 -21
  235. zenml/zen_server/dashboard/assets/stacks-video-7gfxpAq4.svg +0 -21
  236. /zenml/zen_server/{pipeline_deployment → template_execution}/__init__.py +0 -0
  237. /zenml/zen_server/{pipeline_deployment → template_execution}/workload_manager_interface.py +0 -0
  238. {zenml_nightly-0.62.0.dev20240729.dist-info → zenml_nightly-0.64.0.dev20240809.dist-info}/LICENSE +0 -0
  239. {zenml_nightly-0.62.0.dev20240729.dist-info → zenml_nightly-0.64.0.dev20240809.dist-info}/WHEEL +0 -0
  240. {zenml_nightly-0.62.0.dev20240729.dist-info → zenml_nightly-0.64.0.dev20240809.dist-info}/entry_points.txt +0 -0
README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
  <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=0fcbab94-8fbe-4a38-93e8-c2348450a42e" />
3
- <h1 align="center">Create an internal MLOps platform for your entire machine learning team.
3
+ <h1 align="center">Connecting data science teams seamlessly to cloud infrastructure.
4
4
  </h1>
5
5
  </div>
6
6
 
@@ -327,7 +327,7 @@ the Apache License Version 2.0.
327
327
  <a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
328
328
  <br />
329
329
  <br />
330
- 🎉 Version 0.62.0 is out. Check out the release notes
330
+ 🎉 Version 0.64.0 is out. Check out the release notes
331
331
  <a href="https://github.com/zenml-io/zenml/releases">here</a>.
332
332
  <br />
333
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,124 @@
1
1
  <!-- markdown-link-check-disable -->
2
+
3
+ # 0.64.0
4
+
5
+ ## New Features and Improvements
6
+
7
+ ### Notebook Integration
8
+
9
+ ZenML now supports running steps defined in notebook cells with remote
10
+ orchestrators and step operators. This feature enhances the development
11
+ workflow by allowing seamless transition from experimentation to production.
12
+
13
+ - **Details**: [Running remote pipelines from notebooks](https://docs.zenml.io/v/docs/how-to/run-remote-pipelines-from-notebooks)
14
+
15
+ ### Reduced Docker Builds with Code Uploads
16
+
17
+ We've introduced an option to upload code to the artifact store, enabling
18
+ Docker build reuse. This feature can significantly speed up iteration,
19
+ especially when working with remote stacks.
20
+
21
+ - **Default**: Enabled
22
+ - **Configuration**: To disable, set `DockerSettings.allow_download_from_artifact_store=False`
23
+ for steps or pipelines
24
+ - **Benefits**:
25
+ - Faster development cycles
26
+ - No need to register a code repository to reuse builds
27
+ - Builds only occur when requirements or DockerSettings change
28
+ - **Documentation**: [Which files are built into the image](https://docs.zenml.io/how-to/customize-docker-builds/which-files-are-built-into-the-image)
29
+
30
+ ### AzureML Orchestrator Support
31
+
32
+ ZenML now supports [AzureML](https://azure.microsoft.com/en-gb/free/machine-learning)
33
+ as an orchestrator, expanding our list of supported cloud platforms.
34
+
35
+ - **Full Azure Guide**: [Setting up an Azure stack](https://docs.zenml.io/how-to/popular-integrations/azure-guide)
36
+ - **Documentation**: [AzureML orchestrator](https://docs.zenml.io/stack-components/orchestrators/azureml)
37
+
38
+ ### Terraform Modules
39
+
40
+ We've released new Terraform modules on the Hashicorp registry for
41
+ provisioning complete MLOps stacks across major cloud providers.
42
+
43
+ - **Features**:
44
+ - Automate infrastructure setup for ZenML stack deployment
45
+ - Handle registration of configurations to ZenML server
46
+ - **More Information**: [MLOps Terraform ZenML blog post](https://www.zenml.io/blog/mlops-terraform-zenml)
47
+
48
+ These updates aim to streamline the MLOps workflow, making it easier to
49
+ develop, deploy, and manage machine learning pipelines with ZenML.
50
+
51
+ ## What's Changed
52
+
53
+ * Add 0.63.0 to migration testing by @bcdurak in https://github.com/zenml-io/zenml/pull/2893
54
+ * Document terraform stack deployment modules by @stefannica in https://github.com/zenml-io/zenml/pull/2898
55
+ * README update by @htahir1 in https://github.com/zenml-io/zenml/pull/2901
56
+ * Enable `Databricks` Unity Catalog for MLflow by @safoinme in https://github.com/zenml-io/zenml/pull/2900
57
+ * Make urls pop out from the sea of purple/cyan in the logs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2894
58
+ * Add terraform as a supported stack deployment provider by @stefannica in https://github.com/zenml-io/zenml/pull/2902
59
+ * Fix `Model` imports in docs by @strickvl in https://github.com/zenml-io/zenml/pull/2907
60
+ * Remove hub references by @schustmi in https://github.com/zenml-io/zenml/pull/2905
61
+ * Bump NLP template by @avishniakov in https://github.com/zenml-io/zenml/pull/2912
62
+ * Updated step operator docs by @htahir1 in https://github.com/zenml-io/zenml/pull/2908
63
+ * Added lightning studio check by @htahir1 in https://github.com/zenml-io/zenml/pull/2910
64
+ * Upload code to artifact store by @schustmi in https://github.com/zenml-io/zenml/pull/2895
65
+ * AzureML orchestrator by @bcdurak in https://github.com/zenml-io/zenml/pull/2873
66
+ * Run steps defined in notebooks with remote orchestrators by @schustmi in https://github.com/zenml-io/zenml/pull/2899
67
+ * Fix broken / unparsable md docs file by @strickvl in https://github.com/zenml-io/zenml/pull/2916
68
+ * Bump mlflow to 2.15.0 by @christianversloot in https://github.com/zenml-io/zenml/pull/2896
69
+ * Remove extra button by @schustmi in https://github.com/zenml-io/zenml/pull/2918
70
+ * Added last timestamp to zenserver by @htahir1 in https://github.com/zenml-io/zenml/pull/2913
71
+ * A pipeline can't finish successfully in this case by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2903
72
+ * Fix the GCP Workload Identity Federation support in the GCP Service Connector by @stefannica in https://github.com/zenml-io/zenml/pull/2914
73
+ * Embeddings finetuning guide for LLMOps guide by @strickvl in https://github.com/zenml-io/zenml/pull/2917
74
+
75
+ ## 🥳 Community Contributions 🥳
76
+
77
+ We'd like to give a special thanks to @christianversloot who contributed to
78
+ this release by bumping the `mlflow` version to 2.15.0
79
+
80
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.63.0...0.64.0
81
+
82
+ # 0.63.0
83
+
84
+ Moving forward from the last two releases, we have further improved the
85
+ 1-click deployment tool and the stack wizard by adding support for Azure.
86
+
87
+ Moreover, we implemented a new step operator that allows you to run individual
88
+ steps of your pipeline in Kubernetes pods.
89
+
90
+ Lastly, we have simplified our pipeline models by removing their versions.
91
+
92
+ ## What's Changed
93
+ * Enable cloud build service in GCP stack deployment by @stefannica in https://github.com/zenml-io/zenml/pull/2864
94
+ * Adding a `logo_url` and the of the `integration` to component responses by @bcdurak in https://github.com/zenml-io/zenml/pull/2866
95
+ * Use REST in Model tests by @avishniakov in https://github.com/zenml-io/zenml/pull/2834
96
+ * Add Azure stack wizard by @avishniakov in https://github.com/zenml-io/zenml/pull/2841
97
+ * Migration testing for 0.62.0 by @schustmi in https://github.com/zenml-io/zenml/pull/2860
98
+ * Fix RBAC in combination with lazy loaders by @schustmi in https://github.com/zenml-io/zenml/pull/2869
99
+ * Misc cleanup after release by @schustmi in https://github.com/zenml-io/zenml/pull/2861
100
+ * Disable notebook error for Kubernetes orchestrator by @strickvl in https://github.com/zenml-io/zenml/pull/2870
101
+ * Added ability to add labels to k8s pod by @htahir1 in https://github.com/zenml-io/zenml/pull/2872
102
+ * Fix zenml pro links by @schustmi in https://github.com/zenml-io/zenml/pull/2875
103
+ * Fix mlstacks docs typo by @begoechavarren in https://github.com/zenml-io/zenml/pull/2878
104
+ * Fix requests vulnerability by @stefannica in https://github.com/zenml-io/zenml/pull/2843
105
+ * Fixed some minor docs things i noticed by @htahir1 in https://github.com/zenml-io/zenml/pull/2881
106
+ * Serialize source as Any to keep subclass attributes by @schustmi in https://github.com/zenml-io/zenml/pull/2880
107
+ * Fix node selectors for Vertex orchestrator by @schustmi in https://github.com/zenml-io/zenml/pull/2876
108
+ * Kubernetes step operator by @schustmi in https://github.com/zenml-io/zenml/pull/2883
109
+ * Automatically populate GCP/azure path when using wizard from the frontend by @schustmi in https://github.com/zenml-io/zenml/pull/2886
110
+ * Remove pipeline versioning and add run templates by @schustmi in https://github.com/zenml-io/zenml/pull/2830
111
+ * Implement the Azure 1-click stack deployment by @stefannica in https://github.com/zenml-io/zenml/pull/2887
112
+ * Better error message sagemaker, better documentation server env vars by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2885
113
+ * Azure Stack Wizard docs by @bcdurak in https://github.com/zenml-io/zenml/pull/2890
114
+ * Docs update mlflow deploy function call by @safoinme in https://github.com/zenml-io/zenml/pull/2863
115
+ * Fix databricks resource setting by @safoinme in https://github.com/zenml-io/zenml/pull/2889
116
+
117
+ ## New Contributors
118
+ * @begoechavarren made their first contribution in https://github.com/zenml-io/zenml/pull/2878
119
+
120
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.62.0...0.63.0
121
+
2
122
  # 0.62.0
3
123
 
4
124
  Building on top of the last release, this release adds a new and easy way to deploy a GCP 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! For more information on this new feature, please do check out [the video and blog](https://www.zenml.io/blog/easy-mlops-pipelines) from our previous release.
zenml/VERSION CHANGED
@@ -1 +1 @@
1
- 0.62.0.dev20240729
1
+ 0.64.0.dev20240809
zenml/__init__.py CHANGED
@@ -27,10 +27,6 @@ from zenml.logger import init_logging # noqa
27
27
 
28
28
  init_logging()
29
29
 
30
- # The following code is needed for `zenml.hub` subpackages to be found
31
- from pkgutil import extend_path
32
-
33
- __path__ = extend_path(__path__, __name__)
34
30
 
35
31
  # Need to import zenml.models before zenml.config to avoid circular imports
36
32
  from zenml.models import * # noqa: F401
@@ -33,8 +33,8 @@ from zenml.models import (
33
33
  )
34
34
  from zenml.models.v2.base.base import BaseResponse
35
35
  from zenml.zen_server.auth import AuthContext
36
- from zenml.zen_server.pipeline_deployment.utils import run_pipeline
37
36
  from zenml.zen_server.rbac.models import ResourceType
37
+ from zenml.zen_server.template_execution.utils import run_template
38
38
  from zenml.zen_server.utils import server_config
39
39
 
40
40
  logger = get_logger(__name__)
@@ -45,7 +45,7 @@ logger = get_logger(__name__)
45
45
  class PipelineRunActionConfiguration(ActionConfig):
46
46
  """Configuration class to configure a pipeline run action."""
47
47
 
48
- pipeline_deployment_id: UUID
48
+ template_id: UUID
49
49
  run_config: Optional[PipelineRunConfiguration] = None
50
50
 
51
51
 
@@ -95,10 +95,10 @@ class PipelineRunActionHandler(BaseActionHandler):
95
95
 
96
96
  assert isinstance(config, PipelineRunActionConfiguration)
97
97
 
98
- deployment = zen_store().get_deployment(config.pipeline_deployment_id)
99
- logger.debug("Running deployment:", deployment)
100
- run_pipeline(
101
- deployment=deployment,
98
+ template = zen_store().get_run_template(config.template_id)
99
+ logger.debug("Running template:", template)
100
+ run_template(
101
+ template=template,
102
102
  run_config=config.run_config,
103
103
  auth_context=auth_context,
104
104
  )
@@ -114,13 +114,14 @@ class PipelineRunActionHandler(BaseActionHandler):
114
114
  Raises:
115
115
  ValueError: In case no deployment can be found with the deployment_id
116
116
  """
117
- deployment_id = config.pipeline_deployment_id
118
117
  zen_store = GlobalConfiguration().zen_store
119
118
 
120
119
  try:
121
- zen_store.get_deployment(deployment_id=deployment_id)
120
+ zen_store.get_run_template(template_id=config.template_id)
122
121
  except KeyError:
123
- raise ValueError(f"No deployment found with id {deployment_id}.")
122
+ raise ValueError(
123
+ f"No template found with id {config.template_id}."
124
+ )
124
125
 
125
126
  def _validate_action_request(
126
127
  self, action: ActionRequest, config: ActionConfig
@@ -176,27 +177,28 @@ class PipelineRunActionHandler(BaseActionHandler):
176
177
  List of resources related to the action.
177
178
 
178
179
  Raises:
179
- ValueError: In case the deployment_id does not exist.
180
+ ValueError: In case the specified template does not exist.
180
181
  """
181
182
  assert isinstance(action_config, PipelineRunActionConfiguration)
182
183
 
183
- deployment_id = action_config.pipeline_deployment_id
184
184
  zen_store = GlobalConfiguration().zen_store
185
185
 
186
186
  try:
187
- deployment = zen_store.get_deployment(
188
- deployment_id=deployment_id, hydrate=hydrate
187
+ template = zen_store.get_run_template(
188
+ template_id=action_config.template_id, hydrate=hydrate
189
189
  )
190
190
  except KeyError:
191
- raise ValueError(f"No deployment found with id {deployment_id}.")
191
+ raise ValueError(
192
+ f"No template found with id {action_config.template_id}."
193
+ )
192
194
 
193
195
  resources: Dict[ResourceType, BaseResponse[Any, Any, Any]] = {
194
- ResourceType.PIPELINE_DEPLOYMENT: deployment
196
+ ResourceType.RUN_TEMPLATE: template
195
197
  }
196
198
 
197
- if deployment.pipeline is not None:
199
+ if template.pipeline is not None:
198
200
  pipeline = zen_store.get_pipeline(
199
- pipeline_id=deployment.pipeline.id, hydrate=hydrate
201
+ pipeline_id=template.pipeline.id, hydrate=hydrate
200
202
  )
201
203
  resources[ResourceType.PIPELINE] = pipeline
202
204
 
zenml/analytics/enums.py CHANGED
@@ -48,6 +48,10 @@ class AnalyticsEvent(str, Enum):
48
48
  CREATED_TRIGGER = "Trigger created"
49
49
  UPDATED_TRIGGER = "Trigger updated"
50
50
 
51
+ # Templates
52
+ CREATED_RUN_TEMPLATE = "Run template created"
53
+ EXECUTED_RUN_TEMPLATE = "Run templated executed"
54
+
51
55
  # Model Control Plane
52
56
  MODEL_DEPLOYED = "Model deployed"
53
57
  CREATED_MODEL = "Model created"
@@ -95,11 +99,5 @@ class AnalyticsEvent(str, Enum):
95
99
  ZENML_SERVER_DEPLOYED = "ZenML server deployed"
96
100
  ZENML_SERVER_DESTROYED = "ZenML server destroyed"
97
101
 
98
- # ZenML Hub events
99
- ZENML_HUB_PLUGIN_INSTALL = "ZenML Hub plugin installed"
100
- ZENML_HUB_PLUGIN_UNINSTALL = "ZenML Hub plugin uninstalled"
101
- ZENML_HUB_PLUGIN_CLONE = "ZenML Hub plugin pulled"
102
- ZENML_HUB_PLUGIN_SUBMIT = "ZenML Hub plugin pushed"
103
-
104
102
  # Server Settings
105
103
  SERVER_SETTINGS_UPDATED = "Server Settings Updated"
zenml/cli/__init__.py CHANGED
@@ -1684,7 +1684,7 @@ def my_pipeline(...):
1684
1684
 
1685
1685
  You can register your pipeline like this:
1686
1686
  ```bash
1687
- zenml pipeline register my_pipeline
1687
+ zenml pipeline register run.my_pipeline
1688
1688
  ```
1689
1689
 
1690
1690
  To list all registered pipelines, use:
@@ -1693,21 +1693,15 @@ To list all registered pipelines, use:
1693
1693
  zenml pipeline list
1694
1694
  ```
1695
1695
 
1696
- Since every pipeline run creates a new pipeline by default, you might
1697
- occasionally want to delete a pipeline, which you can do via:
1696
+ To delete a pipeline, run:
1698
1697
 
1699
1698
  ```bash
1700
1699
  zenml pipeline delete <PIPELINE_NAME>
1701
1700
  ```
1702
1701
 
1703
- This will delete the latest pipeline version and change all corresponding
1702
+ This will delete the pipeline and change all corresponding
1704
1703
  pipeline runs to become unlisted (not linked to any pipeline).
1705
1704
 
1706
- If you want to delete all versions of a pipeline, you can do so as follows:
1707
-
1708
- ```bash
1709
- zenml pipeline delete <PIPELINE_NAME> --all-versions
1710
- ```
1711
1705
 
1712
1706
  To list all pipeline runs that you have executed, use:
1713
1707
 
@@ -2378,11 +2372,30 @@ zenml code-repository delete <REPOSITORY_NAME_OR_ID>
2378
2372
  Building an image without Runs
2379
2373
  ------------------------------
2380
2374
 
2375
+ To build or run a pipeline from the CLI, you need to know the source path of
2376
+ your pipeline. Let's imagine you have defined your pipeline in a python file
2377
+ called `run.py` like this:
2378
+
2379
+ ```python
2380
+ from zenml import pipeline
2381
+
2382
+ @pipeline
2383
+ def my_pipeline(...):
2384
+ # Connect your pipeline steps here
2385
+ pass
2386
+ ```
2387
+
2388
+ The source path of your pipeline will be `run.my_pipeline`. In a generalized
2389
+ way, this will be `<MODULE_PATH>.<PIPELINE_FUNCTION_NAME>`. If the python file
2390
+ defining the pipeline is not in your current directory, the module path consists
2391
+ of the full path to the file, separated by dots, e.g.
2392
+ `some_directory.some_file.my_pipeline`.
2393
+
2381
2394
  To [build Docker images for your pipeline](https://docs.zenml.io/how-to/customize-docker-builds)
2382
2395
  without actually running the pipeline, use:
2383
2396
 
2384
2397
  ```bash
2385
- zenml pipeline build <PIPELINE_ID_OR_NAME>
2398
+ zenml pipeline build <PIPELINE_SOURCE_PATH>
2386
2399
  ```
2387
2400
 
2388
2401
  To specify settings for the Docker builds, use the `--config/-c` option of the
@@ -2390,20 +2403,20 @@ command. For more information about the structure of this configuration file,
2390
2403
  check out the `zenml.pipelines.base_pipeline.BasePipeline.build(...)` method.
2391
2404
 
2392
2405
  ```bash
2393
- zenml pipeline build <PIPELINE_ID_OR_NAME> --config=<PATH_TO_CONFIG_YAML>
2406
+ zenml pipeline build <PIPELINE_SOURCE_PATH> --config=<PATH_TO_CONFIG_YAML>
2394
2407
  ```
2395
2408
 
2396
2409
  If you want to build the pipeline for a stack other than your current active
2397
2410
  stack, use the `--stack` option.
2398
2411
 
2399
2412
  ```bash
2400
- zenml pipeline build <PIPELINE_ID_OR_NAME> --stack=<STACK_ID_OR_NAME>
2413
+ zenml pipeline build <PIPELINE_SOURCE_PATH> --stack=<STACK_ID_OR_NAME>
2401
2414
  ```
2402
2415
 
2403
2416
  To run a pipeline that was previously registered, use:
2404
2417
 
2405
2418
  ```bash
2406
- zenml pipeline run <PIPELINE_ID_OR_NAME>
2419
+ zenml pipeline run <PIPELINE_SOURCE_PATH>
2407
2420
  ```
2408
2421
 
2409
2422
  To specify settings for the pipeline, use the `--config/-c` option of the
@@ -2411,14 +2424,14 @@ command. For more information about the structure of this configuration file,
2411
2424
  check out the `zenml.pipelines.base_pipeline.BasePipeline.run(...)` method.
2412
2425
 
2413
2426
  ```bash
2414
- zenml pipeline run <PIPELINE_ID_OR_NAME> --config=<PATH_TO_CONFIG_YAML>
2427
+ zenml pipeline run <PIPELINE_SOURCE_PATH> --config=<PATH_TO_CONFIG_YAML>
2415
2428
  ```
2416
2429
 
2417
2430
  If you want to run the pipeline on a stack different than your current active
2418
2431
  stack, use the `--stack` option.
2419
2432
 
2420
2433
  ```bash
2421
- zenml pipeline run <PIPELINE_ID_OR_NAME> --stack=<STACK_ID_OR_NAME>
2434
+ zenml pipeline run <PIPELINE_SOURCE_PATH> --stack=<STACK_ID_OR_NAME>
2422
2435
  ```
2423
2436
 
2424
2437
  Tagging your resources with ZenML
@@ -2528,66 +2541,6 @@ zenml artifact-store deploy -f gcp -p gcp -r us-east1 -x project_id=zenml-core b
2528
2541
 
2529
2542
  For full documentation on this functionality, please refer to [the dedicated
2530
2543
  documentation on stack component deploy](https://docs.zenml.io/how-to/stack-deployment/deploy-a-stack-component).
2531
-
2532
- Interacting with the ZenML Hub
2533
- ------------------------------
2534
-
2535
- The ZenML Hub is a central location for discovering and sharing third-party
2536
- ZenML code, such as custom integrations, components, steps, pipelines,
2537
- materializers, and more.
2538
- You can browse the ZenML Hub at [https://hub.zenml.io](https://hub.zenml.io).
2539
-
2540
- The ZenML CLI provides various commands to interact with the ZenML Hub:
2541
-
2542
- - Listing all plugins available on the Hub:
2543
- ```bash
2544
- zenml hub list
2545
- ```
2546
-
2547
- - Installing a Hub plugin:
2548
- ```bash
2549
- zenml hub install
2550
- ```
2551
- Installed plugins can be imported via `from zenml.hub.<plugin_name> import ...`.
2552
-
2553
-
2554
- - Uninstalling a Hub plugin:
2555
- ```bash
2556
- zenml hub uninstall
2557
- ```
2558
-
2559
- - Cloning the source code of a Hub plugin (without installing it):
2560
- ```bash
2561
- zenml hub clone
2562
- ```
2563
- This is useful, e.g., for extending an existing plugin or for getting the
2564
- examples of a plugin.
2565
-
2566
- - Submitting/contributing a plugin to the Hub (requires login, see below):
2567
- ```bash
2568
- zenml hub submit
2569
- ```
2570
- If you are unsure about which arguments you need to set, you can run the
2571
- command in interactive mode:
2572
- ```bash
2573
- zenml hub submit --interactive
2574
- ```
2575
- This will ask for and validate inputs one at a time.
2576
-
2577
- - Logging in to the Hub:
2578
- ```bash
2579
- zenml hub login
2580
- ```
2581
-
2582
- - Logging out of the Hub:
2583
- ```bash
2584
- zenml hub logout
2585
- ```
2586
-
2587
- - Viewing the build logs of a plugin you submitted to the Hub:
2588
- ```bash
2589
- zenml hub logs
2590
- ```
2591
2544
  """
2592
2545
 
2593
2546
  from zenml.cli.version import * # noqa
@@ -2599,7 +2552,6 @@ from zenml.cli.code_repository import * # noqa
2599
2552
  from zenml.cli.config import * # noqa
2600
2553
  from zenml.cli.downgrade import * # noqa
2601
2554
  from zenml.cli.feature import * # noqa
2602
- from zenml.cli.hub import * # noqa
2603
2555
  from zenml.cli.integration import * # noqa
2604
2556
  from zenml.cli.model import * # noqa
2605
2557
  from zenml.cli.model_registry import * # noqa
zenml/cli/base.py CHANGED
@@ -83,11 +83,11 @@ ZENML_PROJECT_TEMPLATES = dict(
83
83
  ),
84
84
  starter=ZenMLProjectTemplateLocation(
85
85
  github_url="zenml-io/template-starter",
86
- github_tag="2024.06.06", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
86
+ github_tag="2024.07.26", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
87
87
  ),
88
88
  nlp=ZenMLProjectTemplateLocation(
89
89
  github_url="zenml-io/template-nlp",
90
- github_tag="2024.06.14", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
90
+ github_tag="2024.08.07", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
91
91
  ),
92
92
  llm_finetuning=ZenMLProjectTemplateLocation(
93
93
  github_url="zenml-io/template-llm-finetuning",