zenml-nightly 0.58.2.dev20240626__py3-none-any.whl → 0.62.0.dev20240726__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 (266) hide show
  1. README.md +31 -10
  2. RELEASE_NOTES.md +280 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +2 -0
  5. zenml/analytics/enums.py +3 -0
  6. zenml/cli/__init__.py +28 -0
  7. zenml/cli/artifact.py +1 -2
  8. zenml/cli/integration.py +9 -8
  9. zenml/cli/server.py +6 -0
  10. zenml/cli/stack.py +812 -39
  11. zenml/cli/stack_components.py +9 -0
  12. zenml/cli/text_utils.py +35 -1
  13. zenml/cli/utils.py +127 -10
  14. zenml/client.py +23 -14
  15. zenml/config/docker_settings.py +8 -5
  16. zenml/constants.py +13 -1
  17. zenml/container_registries/base_container_registry.py +1 -0
  18. zenml/enums.py +23 -0
  19. zenml/event_hub/event_hub.py +5 -8
  20. zenml/integrations/__init__.py +1 -0
  21. zenml/integrations/aws/__init__.py +1 -0
  22. zenml/integrations/azure/__init__.py +3 -2
  23. zenml/integrations/constants.py +1 -0
  24. zenml/integrations/databricks/__init__.py +52 -0
  25. zenml/integrations/databricks/flavors/__init__.py +30 -0
  26. zenml/integrations/databricks/flavors/databricks_model_deployer_flavor.py +118 -0
  27. zenml/integrations/databricks/flavors/databricks_orchestrator_flavor.py +147 -0
  28. zenml/integrations/databricks/model_deployers/__init__.py +20 -0
  29. zenml/integrations/databricks/model_deployers/databricks_model_deployer.py +249 -0
  30. zenml/integrations/databricks/orchestrators/__init__.py +20 -0
  31. zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +497 -0
  32. zenml/integrations/databricks/orchestrators/databricks_orchestrator_entrypoint_config.py +97 -0
  33. zenml/integrations/databricks/services/__init__.py +19 -0
  34. zenml/integrations/databricks/services/databricks_deployment.py +407 -0
  35. zenml/integrations/databricks/utils/__init__.py +14 -0
  36. zenml/integrations/databricks/utils/databricks_utils.py +87 -0
  37. zenml/integrations/deepchecks/__init__.py +1 -0
  38. zenml/integrations/discord/__init__.py +1 -0
  39. zenml/integrations/evidently/__init__.py +1 -0
  40. zenml/integrations/facets/__init__.py +1 -0
  41. zenml/integrations/feast/__init__.py +1 -0
  42. zenml/integrations/gcp/__init__.py +3 -1
  43. zenml/integrations/gcp/google_credentials_mixin.py +1 -1
  44. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +320 -64
  45. zenml/integrations/great_expectations/data_validators/ge_data_validator.py +12 -8
  46. zenml/integrations/huggingface/__init__.py +1 -0
  47. zenml/integrations/huggingface/materializers/huggingface_datasets_materializer.py +88 -3
  48. zenml/integrations/huggingface/steps/accelerate_runner.py +1 -7
  49. zenml/integrations/integration.py +24 -0
  50. zenml/integrations/kubeflow/__init__.py +3 -0
  51. zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +1 -1
  52. zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +0 -1
  53. zenml/integrations/kubernetes/__init__.py +3 -1
  54. zenml/integrations/kubernetes/orchestrators/kube_utils.py +4 -1
  55. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +1 -13
  56. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +22 -4
  57. zenml/integrations/kubernetes/pod_settings.py +4 -0
  58. zenml/integrations/label_studio/annotators/label_studio_annotator.py +1 -0
  59. zenml/integrations/langchain/__init__.py +1 -0
  60. zenml/integrations/lightgbm/__init__.py +1 -0
  61. zenml/integrations/mlflow/__init__.py +4 -2
  62. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -2
  63. zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
  64. zenml/integrations/neural_prophet/__init__.py +1 -0
  65. zenml/integrations/polars/__init__.py +1 -0
  66. zenml/integrations/prodigy/__init__.py +1 -0
  67. zenml/integrations/pycaret/__init__.py +6 -0
  68. zenml/integrations/registry.py +37 -0
  69. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +17 -6
  70. zenml/integrations/seldon/__init__.py +1 -0
  71. zenml/integrations/seldon/model_deployers/seldon_model_deployer.py +1 -0
  72. zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +2 -2
  73. zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +1 -1
  74. zenml/integrations/skypilot/orchestrators/skypilot_orchestrator_entrypoint.py +2 -2
  75. zenml/integrations/skypilot_aws/__init__.py +2 -1
  76. zenml/integrations/skypilot_azure/__init__.py +1 -3
  77. zenml/integrations/skypilot_gcp/__init__.py +1 -1
  78. zenml/integrations/skypilot_lambda/__init__.py +1 -1
  79. zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +1 -1
  80. zenml/integrations/slack/__init__.py +1 -0
  81. zenml/integrations/tekton/__init__.py +1 -0
  82. zenml/integrations/tensorboard/__init__.py +0 -1
  83. zenml/integrations/tensorflow/__init__.py +18 -6
  84. zenml/integrations/wandb/__init__.py +1 -0
  85. zenml/logging/step_logging.py +34 -35
  86. zenml/materializers/built_in_materializer.py +1 -1
  87. zenml/materializers/cloudpickle_materializer.py +1 -1
  88. zenml/model/model.py +1 -1
  89. zenml/models/__init__.py +11 -0
  90. zenml/models/v2/core/component.py +47 -0
  91. zenml/models/v2/core/model.py +1 -2
  92. zenml/models/v2/core/server_settings.py +0 -20
  93. zenml/models/v2/core/service_connector.py +17 -0
  94. zenml/models/v2/core/stack.py +31 -0
  95. zenml/models/v2/misc/full_stack.py +129 -0
  96. zenml/models/v2/misc/stack_deployment.py +91 -0
  97. zenml/new/pipelines/pipeline.py +1 -1
  98. zenml/new/pipelines/run_utils.py +1 -1
  99. zenml/orchestrators/__init__.py +4 -0
  100. zenml/orchestrators/input_utils.py +3 -6
  101. zenml/orchestrators/step_launcher.py +1 -0
  102. zenml/orchestrators/wheeled_orchestrator.py +147 -0
  103. zenml/service_connectors/service_connector_utils.py +408 -0
  104. zenml/stack/stack.py +3 -6
  105. zenml/stack_deployments/__init__.py +14 -0
  106. zenml/stack_deployments/aws_stack_deployment.py +254 -0
  107. zenml/stack_deployments/azure_stack_deployment.py +179 -0
  108. zenml/stack_deployments/gcp_stack_deployment.py +269 -0
  109. zenml/stack_deployments/stack_deployment.py +218 -0
  110. zenml/stack_deployments/utils.py +48 -0
  111. zenml/steps/base_step.py +7 -5
  112. zenml/utils/function_utils.py +2 -2
  113. zenml/utils/pagination_utils.py +7 -5
  114. zenml/utils/pipeline_docker_image_builder.py +105 -68
  115. zenml/utils/pydantic_utils.py +6 -5
  116. zenml/utils/source_utils.py +4 -1
  117. zenml/zen_server/cloud_utils.py +18 -3
  118. zenml/zen_server/dashboard/assets/{404-CDPQCl4D.js → 404-B_YdvmwS.js} +1 -1
  119. zenml/zen_server/dashboard/assets/@radix-CFOkMR_E.js +85 -0
  120. zenml/zen_server/dashboard/assets/{@react-router-DYovave8.js → @react-router-CO-OsFwI.js} +2 -2
  121. zenml/zen_server/dashboard/assets/{@reactflow-CHBapDaj.js → @reactflow-l_1hUr1S.js} +2 -2
  122. zenml/zen_server/dashboard/assets/@tanstack-DYiOyJUL.js +22 -0
  123. zenml/zen_server/dashboard/assets/AwarenessChannel-CFg5iX4Z.js +1 -0
  124. zenml/zen_server/dashboard/assets/{CodeSnippet-BidtnWOi.js → CodeSnippet-Dvkx_82E.js} +2 -2
  125. zenml/zen_server/dashboard/assets/CollapsibleCard-opiuBHHc.js +1 -0
  126. zenml/zen_server/dashboard/assets/Commands-DoN1xrEq.js +1 -0
  127. zenml/zen_server/dashboard/assets/CopyButton-Cr7xYEPb.js +2 -0
  128. zenml/zen_server/dashboard/assets/{CsvVizualization-BOuez-fG.js → CsvVizualization-Ck-nZ43m.js} +7 -7
  129. zenml/zen_server/dashboard/assets/DisplayDate-DYgIjlDF.js +1 -0
  130. zenml/zen_server/dashboard/assets/EmptyState-BMLnFVlB.js +1 -0
  131. zenml/zen_server/dashboard/assets/Error-kLtljEOM.js +1 -0
  132. zenml/zen_server/dashboard/assets/ExecutionStatus-DguLLgTK.js +1 -0
  133. zenml/zen_server/dashboard/assets/Helpbox-BXUMP21n.js +1 -0
  134. zenml/zen_server/dashboard/assets/Infobox-DSt0O-dm.js +1 -0
  135. zenml/zen_server/dashboard/assets/InlineAvatar-xsrsIGE-.js +1 -0
  136. zenml/zen_server/dashboard/assets/{MarkdownVisualization-DsB2QZiK.js → MarkdownVisualization-xp3hhULl.js} +2 -2
  137. zenml/zen_server/dashboard/assets/Pagination-C6X-mifw.js +1 -0
  138. zenml/zen_server/dashboard/assets/PasswordChecker-DUveqlva.js +1 -0
  139. zenml/zen_server/dashboard/assets/SetPassword-BXGTWiwj.js +1 -0
  140. zenml/zen_server/dashboard/assets/SuccessStep-DZC60t0x.js +1 -0
  141. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DnM-c11H.js → UpdatePasswordSchemas-DGvwFWO1.js} +1 -1
  142. zenml/zen_server/dashboard/assets/{aws-t0gKCj_R.js → aws-BgKTfTfx.js} +1 -1
  143. zenml/zen_server/dashboard/assets/{check-circle-BVvhm5dy.js → check-circle-i56092KI.js} +1 -1
  144. zenml/zen_server/dashboard/assets/{chevron-right-double-CJ50E9Gr.js → chevron-right-double-CZBOf6JM.js} +1 -1
  145. zenml/zen_server/dashboard/assets/cloud-only-C_yFCAkP.js +1 -0
  146. zenml/zen_server/dashboard/assets/{copy-BRhQz3j-.js → copy-BXNk6BjL.js} +1 -1
  147. zenml/zen_server/dashboard/assets/{database-CRRnyFWh.js → database-1xWSgZfO.js} +1 -1
  148. zenml/zen_server/dashboard/assets/{docker-BAonhm6G.js → docker-CQMVm_4d.js} +1 -1
  149. zenml/zen_server/dashboard/assets/{file-text-CbVERUON.js → file-text-CqD_iu6l.js} +1 -1
  150. zenml/zen_server/dashboard/assets/{help-B8rqCvqn.js → help-bu_DgLKI.js} +1 -1
  151. zenml/zen_server/dashboard/assets/index-BczVOqUf.js +55 -0
  152. zenml/zen_server/dashboard/assets/index-EpMIKgrI.css +1 -0
  153. zenml/zen_server/dashboard/assets/index-rK_Wuy2W.js +1 -0
  154. zenml/zen_server/dashboard/assets/index.esm-Corw4lXQ.js +1 -0
  155. zenml/zen_server/dashboard/assets/{login-mutation-wzzl23C6.js → login-mutation-CrHrndTI.js} +1 -1
  156. zenml/zen_server/dashboard/assets/logs-D8k8BVFf.js +1 -0
  157. zenml/zen_server/dashboard/assets/not-found-DYa4pC-C.js +1 -0
  158. zenml/zen_server/dashboard/assets/package-B3fWP-Dh.js +1 -0
  159. zenml/zen_server/dashboard/assets/page-1h_sD1jz.js +1 -0
  160. zenml/zen_server/dashboard/assets/{page-yN4rZ-ZS.js → page-1iL8aMqs.js} +1 -1
  161. zenml/zen_server/dashboard/assets/{page-Bi5AI0S7.js → page-2grKx_MY.js} +1 -1
  162. zenml/zen_server/dashboard/assets/page-5NCOHOsy.js +1 -0
  163. zenml/zen_server/dashboard/assets/page-8a4UMKXZ.js +1 -0
  164. zenml/zen_server/dashboard/assets/{page-AQKopn_4.js → page-B6h3iaHJ.js} +1 -1
  165. zenml/zen_server/dashboard/assets/page-BDns21Iz.js +1 -0
  166. zenml/zen_server/dashboard/assets/{page-BmkSiYeQ.js → page-BhgCDInH.js} +2 -2
  167. zenml/zen_server/dashboard/assets/{page-BzVZGExK.js → page-Bi-wtWiO.js} +2 -2
  168. zenml/zen_server/dashboard/assets/page-BkeAAYwp.js +1 -0
  169. zenml/zen_server/dashboard/assets/page-BkuQDIf-.js +1 -0
  170. zenml/zen_server/dashboard/assets/page-BnaevhnB.js +1 -0
  171. zenml/zen_server/dashboard/assets/page-Bq0YxkLV.js +1 -0
  172. zenml/zen_server/dashboard/assets/page-Bs2F4eoD.js +2 -0
  173. zenml/zen_server/dashboard/assets/page-C6-UGEbH.js +1 -0
  174. zenml/zen_server/dashboard/assets/page-CCNRIt_f.js +1 -0
  175. zenml/zen_server/dashboard/assets/page-CHNxpz3n.js +1 -0
  176. zenml/zen_server/dashboard/assets/page-DgorQFqi.js +1 -0
  177. zenml/zen_server/dashboard/assets/page-K8ebxVIs.js +1 -0
  178. zenml/zen_server/dashboard/assets/{page-CuT1SUik.js → page-MFQyIJd3.js} +1 -1
  179. zenml/zen_server/dashboard/assets/page-TgCF0P_U.js +1 -0
  180. zenml/zen_server/dashboard/assets/page-ZnCEe-eK.js +9 -0
  181. zenml/zen_server/dashboard/assets/{page-BW6Ket3a.js → page-uA5prJGY.js} +1 -1
  182. zenml/zen_server/dashboard/assets/persist-D7HJNBWx.js +1 -0
  183. zenml/zen_server/dashboard/assets/{play-circle-DK5QMJyp.js → play-circle-CNtZKDnW.js} +1 -1
  184. zenml/zen_server/dashboard/assets/plus-C8WOyCzt.js +1 -0
  185. zenml/zen_server/dashboard/assets/stack-detail-query-Cficsl6d.js +1 -0
  186. zenml/zen_server/dashboard/assets/{terminal-B2ovgWuz.js → terminal-By9cErXc.js} +1 -1
  187. zenml/zen_server/dashboard/assets/update-server-settings-mutation-7d8xi1tS.js +1 -0
  188. zenml/zen_server/dashboard/assets/{url-6_xv0WJS.js → url-D7mAQGUM.js} +1 -1
  189. zenml/zen_server/dashboard/assets/{zod-DrZvVLjd.js → zod-BhoGpZ63.js} +1 -1
  190. zenml/zen_server/dashboard/index.html +7 -7
  191. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  192. zenml/zen_server/dashboard_legacy/index.html +1 -1
  193. zenml/zen_server/dashboard_legacy/{precache-manifest.f4abc5b7cfa7d90c1caf5521918e29a8.js → precache-manifest.12246c7548e71e2c4438e496360de80c.js} +4 -4
  194. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  195. zenml/zen_server/dashboard_legacy/static/js/main.3b27024b.chunk.js +2 -0
  196. zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js.map → main.3b27024b.chunk.js.map} +1 -1
  197. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  198. zenml/zen_server/deploy/helm/README.md +2 -2
  199. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +11 -5
  200. zenml/zen_server/pipeline_deployment/utils.py +57 -44
  201. zenml/zen_server/rbac/utils.py +10 -2
  202. zenml/zen_server/rbac/zenml_cloud_rbac.py +11 -5
  203. zenml/zen_server/routers/devices_endpoints.py +4 -1
  204. zenml/zen_server/routers/server_endpoints.py +29 -2
  205. zenml/zen_server/routers/service_connectors_endpoints.py +57 -0
  206. zenml/zen_server/routers/stack_deployment_endpoints.py +158 -0
  207. zenml/zen_server/routers/steps_endpoints.py +2 -1
  208. zenml/zen_server/routers/workspaces_endpoints.py +64 -0
  209. zenml/zen_server/zen_server_api.py +2 -0
  210. zenml/zen_stores/migrations/utils.py +1 -1
  211. zenml/zen_stores/migrations/versions/0.60.0_release.py +23 -0
  212. zenml/zen_stores/migrations/versions/0.61.0_release.py +23 -0
  213. zenml/zen_stores/migrations/versions/0.62.0_release.py +23 -0
  214. zenml/zen_stores/migrations/versions/0d707865f404_adding_labels_to_stacks.py +30 -0
  215. zenml/zen_stores/migrations/versions/b4fca5241eea_migrate_onboarding_state.py +167 -0
  216. zenml/zen_stores/rest_zen_store.py +149 -4
  217. zenml/zen_stores/schemas/component_schemas.py +14 -0
  218. zenml/zen_stores/schemas/server_settings_schemas.py +23 -11
  219. zenml/zen_stores/schemas/stack_schemas.py +10 -0
  220. zenml/zen_stores/schemas/step_run_schemas.py +27 -11
  221. zenml/zen_stores/sql_zen_store.py +450 -6
  222. zenml/zen_stores/zen_store_interface.py +80 -0
  223. {zenml_nightly-0.58.2.dev20240626.dist-info → zenml_nightly-0.62.0.dev20240726.dist-info}/METADATA +35 -13
  224. {zenml_nightly-0.58.2.dev20240626.dist-info → zenml_nightly-0.62.0.dev20240726.dist-info}/RECORD +227 -191
  225. zenml/zen_server/dashboard/assets/@radix-C9DBgJhe.js +0 -77
  226. zenml/zen_server/dashboard/assets/@tanstack-CEbkxrhX.js +0 -30
  227. zenml/zen_server/dashboard/assets/AwarenessChannel-nXGpmj_f.js +0 -1
  228. zenml/zen_server/dashboard/assets/Cards-nwsvQLVS.js +0 -1
  229. zenml/zen_server/dashboard/assets/Commands-DuIWKg_Q.js +0 -1
  230. zenml/zen_server/dashboard/assets/CopyButton-B_YSm-Ds.js +0 -2
  231. zenml/zen_server/dashboard/assets/DisplayDate-BdguISQF.js +0 -1
  232. zenml/zen_server/dashboard/assets/EmptyState-BkooiGtL.js +0 -1
  233. zenml/zen_server/dashboard/assets/Error-B6M0dPph.js +0 -1
  234. zenml/zen_server/dashboard/assets/Helpbox-BQoqCm04.js +0 -1
  235. zenml/zen_server/dashboard/assets/Infobox-Ce9mefqU.js +0 -1
  236. zenml/zen_server/dashboard/assets/InlineAvatar-DGf3dVhV.js +0 -1
  237. zenml/zen_server/dashboard/assets/PageHeader-DGaemzjc.js +0 -1
  238. zenml/zen_server/dashboard/assets/Pagination-DVYfBCCc.js +0 -1
  239. zenml/zen_server/dashboard/assets/PasswordChecker-DSLBp7Vl.js +0 -1
  240. zenml/zen_server/dashboard/assets/SetPassword-B5s7DJug.js +0 -1
  241. zenml/zen_server/dashboard/assets/SuccessStep-ZzczaM7g.js +0 -1
  242. zenml/zen_server/dashboard/assets/chevron-down-zcvCWmyP.js +0 -1
  243. zenml/zen_server/dashboard/assets/cloud-only-Ba_ShBR5.js +0 -1
  244. zenml/zen_server/dashboard/assets/index-CWJ3xbIf.css +0 -1
  245. zenml/zen_server/dashboard/assets/index-QORVVTMN.js +0 -55
  246. zenml/zen_server/dashboard/assets/index.esm-F7nqy9zY.js +0 -1
  247. zenml/zen_server/dashboard/assets/not-found-Dh2la7kh.js +0 -1
  248. zenml/zen_server/dashboard/assets/page-B-5jAKoO.js +0 -1
  249. zenml/zen_server/dashboard/assets/page-B-vWk8a6.js +0 -1
  250. zenml/zen_server/dashboard/assets/page-B0BrqfS8.js +0 -1
  251. zenml/zen_server/dashboard/assets/page-BQxVFlUl.js +0 -1
  252. zenml/zen_server/dashboard/assets/page-ByrHy6Ss.js +0 -1
  253. zenml/zen_server/dashboard/assets/page-CPtY4Kv_.js +0 -1
  254. zenml/zen_server/dashboard/assets/page-CmmukLsl.js +0 -1
  255. zenml/zen_server/dashboard/assets/page-D2D-7qyr.js +0 -9
  256. zenml/zen_server/dashboard/assets/page-DAQQyLxT.js +0 -1
  257. zenml/zen_server/dashboard/assets/page-DHkUMl_E.js +0 -1
  258. zenml/zen_server/dashboard/assets/page-DZCbwOEs.js +0 -2
  259. zenml/zen_server/dashboard/assets/page-DdaIt20-.js +0 -1
  260. zenml/zen_server/dashboard/assets/page-LqLs24Ot.js +0 -1
  261. zenml/zen_server/dashboard/assets/page-lebv0c7C.js +0 -1
  262. zenml/zen_server/dashboard/assets/update-server-settings-mutation-0Wgz8pUE.js +0 -1
  263. zenml/zen_server/dashboard_legacy/static/js/main.ac2f17d0.chunk.js +0 -2
  264. {zenml_nightly-0.58.2.dev20240626.dist-info → zenml_nightly-0.62.0.dev20240726.dist-info}/LICENSE +0 -0
  265. {zenml_nightly-0.58.2.dev20240626.dist-info → zenml_nightly-0.62.0.dev20240726.dist-info}/WHEEL +0 -0
  266. {zenml_nightly-0.58.2.dev20240626.dist-info → zenml_nightly-0.62.0.dev20240726.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.
@@ -297,7 +318,7 @@ the Apache License Version 2.0.
297
318
  ·
298
319
  <a href="https://github.com/zenml-io/zenml/issues">Report Bug</a>
299
320
  ·
300
- <a href="https://zenml.io/cloud">Sign up for ZenML Pro</a>
321
+ <a href="https://zenml.io/pro">Sign up for ZenML Pro</a>
301
322
  ·
302
323
  <a href="https://www.zenml.io/blog">Read Blog</a>
303
324
  ·
@@ -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.62.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,284 @@
1
1
  <!-- markdown-link-check-disable -->
2
+ # 0.62.0
3
+
4
+ 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.
5
+
6
+ We also [updated our Hugging Face integration](https://github.com/zenml-io/zenml/pull/2851) to support the automatic display of an embedded `datasets` preview pane in the ZenML Dashboard whenever you return a `Dataset` from a step. This was recently released by the Hugging Face datasets team and it allows you to easily visualize and inspect your data from the comfort of the dashboard.
7
+
8
+ ## What's Changed
9
+
10
+ * Fix release action docker limit by @schustmi in https://github.com/zenml-io/zenml/pull/2837
11
+ * Upgrade ruff and yamlfix to latest versions before running formatting by @christianversloot in https://github.com/zenml-io/zenml/pull/2577
12
+ * Fixed edge-case where step run is stored incompletely by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2827
13
+ * Docs for stack registration + deployment wizards by @htahir1 in https://github.com/zenml-io/zenml/pull/2814
14
+ * Make upgrade checks in formatting script optional by @avishniakov in https://github.com/zenml-io/zenml/pull/2839
15
+ * Enable migration testing for version 0.61.0 by @schustmi in https://github.com/zenml-io/zenml/pull/2836
16
+ * One-click GCP stack deployments by @stefannica in https://github.com/zenml-io/zenml/pull/2833
17
+ * Only login to docker for PRs with secret access by @schustmi in https://github.com/zenml-io/zenml/pull/2842
18
+ * Add GCP Stack creation Wizard (CLI) by @avishniakov in https://github.com/zenml-io/zenml/pull/2826
19
+ * Update onboarding by @schustmi in https://github.com/zenml-io/zenml/pull/2794
20
+ * Merged log files in Step Ops steps might be not available on main process, due to merge in the step op by @avishniakov in https://github.com/zenml-io/zenml/pull/2795
21
+ * Fix some broken links, copy paste commands, and made secrets more visible by @htahir1 in https://github.com/zenml-io/zenml/pull/2848
22
+ * Update stack deployment docs and other small fixes by @stefannica in https://github.com/zenml-io/zenml/pull/2846
23
+ * Improved the `StepInterfaceError` message for missing inputs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2849
24
+ * add image pull secrets to k8s pod settings by @wjayesh in https://github.com/zenml-io/zenml/pull/2847
25
+ * Include apt installation of libgomp1 for docker images with lightgbm by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2813
26
+ * Patch filter mflow by stage by @whoknowsB in https://github.com/zenml-io/zenml/pull/2798
27
+ * Bump mlflow to version 2.14.2 by @christianversloot in https://github.com/zenml-io/zenml/pull/2825
28
+ * Fix Accelerate string arguments passing by @avishniakov in https://github.com/zenml-io/zenml/pull/2845
29
+ * Fix CI by @schustmi in https://github.com/zenml-io/zenml/pull/2850
30
+ * Added some visualizations for the HF dataset by @htahir1 in https://github.com/zenml-io/zenml/pull/2851
31
+ * Fix skypilot versioning for the lambda integration by @wjayesh in https://github.com/zenml-io/zenml/pull/2853
32
+ * Improve custom visualization docs by @htahir1 in https://github.com/zenml-io/zenml/pull/2855
33
+ * Fix list typo by @htahir1 in https://github.com/zenml-io/zenml/pull/2856
34
+ * Endpoint to get existing and prospective resources for service connector by @avishniakov in https://github.com/zenml-io/zenml/pull/2854
35
+ * Databricks integrations by @safoinme in https://github.com/zenml-io/zenml/pull/2823
36
+
37
+ ## New Contributors
38
+ * @whoknowsB made their first contribution in https://github.com/zenml-io/zenml/pull/2798
39
+
40
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.61.0...0.62.0
41
+
42
+ # 0.61.0
43
+
44
+ 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!
45
+
46
+ 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.
47
+
48
+ Note: Only a simple AWS stack using Skypilot supported for now but GCP + Azure to come!
49
+
50
+ Additionally, this release includes improvements to our documentation and bugfixes for some integrations.
51
+
52
+ ## What's Changed
53
+
54
+ * Add latest zenml version to migration testing scripts by @htahir1 in https://github.com/zenml-io/zenml/pull/2811
55
+ * Add service connector support for Google Artifact Registry by @stefannica in https://github.com/zenml-io/zenml/pull/2771
56
+ * Update order in which requirements are installed by @schustmi in https://github.com/zenml-io/zenml/pull/2341
57
+ * Add installation instructions for Macs running on Apple Silicon by @strickvl in https://github.com/zenml-io/zenml/pull/2774
58
+ * Added docs for trigger interface by @htahir1 in https://github.com/zenml-io/zenml/pull/2806
59
+ * Update triggers docs with information on previously-run pipelines by @strickvl in https://github.com/zenml-io/zenml/pull/2820
60
+ * Bump kfp version in GCP integration for pydantic2.0 by @wjayesh in https://github.com/zenml-io/zenml/pull/2824
61
+ * Use shared cloud connection to reduce M2M token usage by @schustmi in https://github.com/zenml-io/zenml/pull/2817
62
+ * Fail pipeline run if error happens during deployment by @schustmi in https://github.com/zenml-io/zenml/pull/2818
63
+ * Login to dockerhub to solve rate limiting by @schustmi in https://github.com/zenml-io/zenml/pull/2828
64
+ * Stack wizard CLI + Endpoints by @avishniakov in https://github.com/zenml-io/zenml/pull/2808
65
+ * In-browser assisted full cloud stack deployments by @stefannica in https://github.com/zenml-io/zenml/pull/2816
66
+ * Fix Kubeflow v2 integration by @wjayesh in https://github.com/zenml-io/zenml/pull/2829
67
+ * fix skypilot jobs failing on VMs (sky bumped to 0.6.0) by @wjayesh in https://github.com/zenml-io/zenml/pull/2815
68
+ * Fix unicode decode errors in k8s pod logs read operation by @wjayesh in https://github.com/zenml-io/zenml/pull/2807
69
+ * Small improvements and bug fixes by @schustmi in https://github.com/zenml-io/zenml/pull/2821
70
+ * TF tests + various integration (un)install improvements by @avishniakov in https://github.com/zenml-io/zenml/pull/2791
71
+ * Fixed bug in the MacOS version check by @strickvl in https://github.com/zenml-io/zenml/pull/2819
72
+ * Remove prefix for analytics labels by @schustmi in https://github.com/zenml-io/zenml/pull/2831
73
+
74
+
75
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.60.0...0.61.0
76
+
77
+ # 0.60.0
78
+
79
+ ZenML now uses Pydantic v2. 🥳
80
+
81
+ This upgrade comes with a set of critical updates. While your user experience
82
+ mostly remains unaffected, you might see unexpected behavior due to the
83
+ changes in our dependencies. Moreover, since Pydantic v2 provides a slightly
84
+ stricter validation process, you might end up bumping into some validation
85
+ errors which was not caught before, but it is all for the better 🙂 If
86
+ you run into any other errors, please let us know either on
87
+ [GitHub](https://github.com/zenml-io/zenml) or on
88
+ our [Slack](https://zenml.io/slack-invite).
89
+
90
+ ## Changes in some of the critical dependencies
91
+
92
+ - SQLModel is one of the core dependencies of ZenML and prior to this upgrade,
93
+ we were utilizing version `0.0.8`. However, this version is relatively
94
+ outdated and incompatible with Pydantic v2. Within the scope of this upgrade,
95
+ we upgraded it to `0.0.18`.
96
+ - Due to the change in the SQLModel version, we also had to upgrade our
97
+ SQLAlchemy dependency from V1 to v2. While this does not affect the way
98
+ that you are using ZenML, if you are using SQLAlchemy in your environment,
99
+ you might have to migrate your code as well. For a detailed list of changes,
100
+ feel free to
101
+ check [their migration guide](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html).
102
+
103
+ ## Changes in `pydantic`
104
+
105
+ Pydantic v2 brings a lot of new and exciting changes to the table. The core
106
+ logic now uses Rust, and it is much faster and more efficient in terms of
107
+ performance. On top of it, the main concepts like model design, configuration,
108
+ validation, or serialization now include a lot of new cool features. If you are
109
+ using `pydantic` in your workflow and are interested in the new changes, you can
110
+ check [the brilliant migration guide](https://docs.pydantic.dev/2.7/migration/)
111
+ provided by the `pydantic` team to see the full list of changes.
112
+
113
+ ## Changes in our integrations changes
114
+
115
+ Much like ZenML, `pydantic` is an important dependency in many other Python
116
+ packages. That’s why conducting this upgrade helped us unlock a new version for
117
+ several ZenML integration dependencies. Additionally, in some instances, we had
118
+ to adapt the functionality of the integration to keep it compatible
119
+ with `pydantic`. So, if you are using any of these integrations, please go
120
+ through the changes.
121
+
122
+ ### Airflow
123
+
124
+ As mentioned above upgrading our `pydantic` dependency meant we had to upgrade
125
+ our `sqlmodel` dependency. Upgrading our `sqlmodel` dependency meant we had to
126
+ upgrade our `sqlalchemy` dependency as well. Unfortunately, `apache-airflow`
127
+ is still using `sqlalchemy` v1 and is incompatible with pydantic v2. As a
128
+ solution, we have removed the dependencies of the `airflow` integration. Now,
129
+ you can use ZenML to create your Airflow pipelines and use a separate
130
+ environment to run them with Airflow. You can check the updated docs
131
+ [right here](https://docs.zenml.io/stack-components/orchestrators/airflow).
132
+
133
+ ### AWS
134
+
135
+ Some of our integrations now require `protobuf` 4. Since our
136
+ previous `sagemaker` version (`2.117.0`) did not support `protobof` 4, we could
137
+ not pair it with these new integrations. Thankfully `sagemaker` started
138
+ supporting `protobuf` 4 with version `2.172.0` and relaxing its dependency
139
+ solved the compatibility issue.
140
+
141
+ ### Evidently
142
+
143
+ The old version of our `evidently` integration was not compatible with Pydantic
144
+ v2. They started supporting it starting from version `0.4.16`. As their latest
145
+ version is `0.4.22`, the new dependency of the integration is limited between
146
+ these two versions.
147
+
148
+ ### Feast
149
+
150
+ Our previous implementation of the `feast` integration was not compatible with
151
+ Pydantic v2 due to the extra `redis` dependency we were using. This extra
152
+ dependency is now removed and the `feast` integration is working as intended.
153
+
154
+ ### GCP
155
+
156
+ The previous version of the Kubeflow dependency (`kfp==1.8.22`) in our GCP
157
+ integration required Pydantic V1 to be installed. While we were upgrading our
158
+ Pydantic dependency, we saw this as an opportunity and wanted to use this chance
159
+ to upgrade the `kfp` dependency to v2 (which has no dependencies on the Pydantic
160
+ library). This is why you may see some functional changes in the vertex step
161
+ operator and orchestrator. If you would like to go through the changes in
162
+ the `kfp` library, you can
163
+ find [the migration guide here](https://www.kubeflow.org/docs/components/pipelines/v2/migration/).
164
+
165
+ ### Great Expectations
166
+
167
+ Great Expectations started supporting Pydantic v2 starting from
168
+ version `0.17.15` and they are closing in on their `1.0` release. Since this
169
+ release might include a lot of big changes, we adjusted the dependency in our
170
+ integration to `great-expectations>=0.17.15,<1.0`. We will try to keep it
171
+ updated in the future once they release the `1.0` version
172
+
173
+ ### Kubeflow
174
+
175
+ Similar to the GCP integration, the previous version of the kubeflow
176
+ dependency (`kfp==1.8.22`) in our `kubeflow` integration required Pydantic V1 to
177
+ be installed. While we were upgrading our Pydantic dependency, we saw this as an
178
+ opportunity and wanted to use this chance to upgrade the `kfp` dependency to
179
+ v2 (which has no dependencies on the Pydantic library). If you would like to go
180
+ through the changes in the `kfp` library, you can
181
+ find [the migration guide here](https://www.kubeflow.org/docs/components/pipelines/v2/migration/). (
182
+ We also are considering adding an alternative version of this integration so our
183
+ users can keep using `kfp` V1 in their environment. Stay tuned for any updates.)
184
+
185
+ ### MLflow
186
+
187
+ `mlflow` is compatible with both Pydantic V1 and v2. However, due to a known
188
+ issue, if you install `zenml` first and then
189
+ do `zenml integration install mlflow -y`, it downgrades `pydantic` to V1. This
190
+ is why we manually added the same duplicated `pydantic` requirement in the
191
+ integration definition as well. Keep in mind that the `mlflow` library is still
192
+ using some features of `pydantic` V1 which are deprecated. So, if the
193
+ integration is installed in your environment, you might run into some
194
+ deprecation warnings.
195
+
196
+ ### Label Studio
197
+
198
+ While we were working on updating our `pydantic` dependency,
199
+ the `label-studio-sdk` has released its 1.0 version. In this new
200
+ version, `pydantic` v2 is also supported. The implementation and documentation
201
+ of our Label Studio integration have been updated accordingly.
202
+
203
+ ### Skypilot
204
+
205
+ With the switch to `pydantic` v2, the implementation of our `skypilot`
206
+ integration mostly remained untouched. However, due to an incompatibility
207
+ between the new version `pydantic` and the `azurecli`, the `skypilot[azure]`
208
+ flavor can not be installed at the same time, thus our `skypilot_azure`
209
+ integration is currently deactivated. We are working on fixing this issue and if
210
+ you are using this integration in your workflows, we recommend staying on the
211
+ previous version of ZenML until we can solve this issue.
212
+
213
+ ### Tensorflow
214
+
215
+ The new version of `pydantic` creates a drift between `tensorflow`
216
+ and `typing_extensions` packages and relaxing the dependencies here resolves
217
+ the issue. At the same time, the upgrade to `kfp` v2 (in integrations
218
+ like `kubeflow`, `tekton`, or `gcp`) bumps our `protobuf` dependency from `3.X`
219
+ to `4.X`. To stay compatible with this requirement, the installed version
220
+ of `tensorflow` needs to be `>=2.12.0`. While this change solves the dependency
221
+ issues in most settings, we have bumped into some errors while
222
+ using `tensorflow` 2.12.0 on Python 3.8 on Ubuntu. If you would like to use this
223
+ integration, please consider using a higher Python version.
224
+
225
+ ### Tekton
226
+
227
+ Similar to the `gcp` and `kubeflow` integrations, the old version of
228
+ our `tekton` integration was not compatible with `pydantic` V1 due to its `kfp`
229
+ dependency. With the switch from `kfp` V1 to v2, we have adapted our
230
+ implementation to use the new version of `kfp` library and updated our
231
+ documentation accordingly.
232
+
233
+ ## Additional Changes
234
+
235
+ * We have also released a new version of `mlstacks` with Pydantic v2 support.
236
+ If you are using it in your development environment, you have to upgrade your
237
+ `mlstacks` package as well.
238
+ * 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).
239
+ * 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.
240
+ * 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.
241
+
242
+ ## What's Changed
243
+
244
+ * Extend migration testing by @avishniakov in https://github.com/zenml-io/zenml/pull/2768
245
+ * Add retry docs by @htahir1 in https://github.com/zenml-io/zenml/pull/2770
246
+ * Fix nightly Docker build by @strickvl in https://github.com/zenml-io/zenml/pull/2769
247
+ * Start CTA and Cloud -> Pro renaming by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2773
248
+ * Add star CTA to `README` by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2777
249
+ * Use build python version if available by @schustmi in https://github.com/zenml-io/zenml/pull/2775
250
+ * Introduced Legacy env var in docs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2783
251
+ * Fixing the nlp template for the upcoming pydantic upgrade by @bcdurak in https://github.com/zenml-io/zenml/pull/2778
252
+ * Full renaming away from cloud to pro by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2782
253
+ * Adjust docs url for flavors by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2772
254
+ * Fixed broken unit test on develop and fixed duplicate / by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2785
255
+ * Added timeout by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2786
256
+ * Bump NLP template by @avishniakov in https://github.com/zenml-io/zenml/pull/2787
257
+ * Raise error if Dockerfile does not exist by @schustmi in https://github.com/zenml-io/zenml/pull/2776
258
+ * Pin `numpy<2.0.0` by @avishniakov in https://github.com/zenml-io/zenml/pull/2789
259
+ * Fix partial logs loss in step operators with immutable FS in the backend by @avishniakov in https://github.com/zenml-io/zenml/pull/2788
260
+ * Upgrading to `pydantic` v2 by @bcdurak in https://github.com/zenml-io/zenml/pull/2543
261
+ * New CI/CD docs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/2784
262
+ * Improvements for running pipelines from the dashboard by @schustmi in https://github.com/zenml-io/zenml/pull/2781
263
+ * Accelerate runner helper method by @avishniakov in https://github.com/zenml-io/zenml/pull/2746
264
+ * Add `--ignore-errors` flag for `zenml artifact prune` by @strickvl in https://github.com/zenml-io/zenml/pull/2780
265
+ * Enable running a pipeline through the client by @schustmi in https://github.com/zenml-io/zenml/pull/2736
266
+ * Accelerated template LLMs by @avishniakov in https://github.com/zenml-io/zenml/pull/2797
267
+ * Separate actions from triggers by @schustmi in https://github.com/zenml-io/zenml/pull/2700
268
+ * Fix hook type definition and improve code completion for pipeline decorator by @schustmi in https://github.com/zenml-io/zenml/pull/2793
269
+ * Allow specifying build options for main image build by @schustmi in https://github.com/zenml-io/zenml/pull/2749
270
+ * Small improvements for yaml config files by @schustmi in https://github.com/zenml-io/zenml/pull/2796
271
+ * Docs for the `pydantic` migration guide by @bcdurak in https://github.com/zenml-io/zenml/pull/2801
272
+ * Bump mlflow to v2.14.1 by @christianversloot in https://github.com/zenml-io/zenml/pull/2779
273
+ * Bugfix fixing the installation script to use the right mlstacks branch by @bcdurak in https://github.com/zenml-io/zenml/pull/2803
274
+ * Fix S3 artifact store memory leak and other improvements by @stefannica in https://github.com/zenml-io/zenml/pull/2802
275
+
276
+ ## 🥳 Community Contributions 🥳
277
+
278
+ We'd like to give a special thanks to @christianversloot who contributed to
279
+ this release by bumping the `mlflow` version to 2.14.1
280
+
281
+ **Full Changelog**: https://github.com/zenml-io/zenml/compare/0.58.2...0.60.0
2
282
 
3
283
  # 0.58.2
4
284
 
zenml/VERSION CHANGED
@@ -1 +1 @@
1
- 0.58.2.dev20240626
1
+ 0.62.0.dev20240726
zenml/__init__.py CHANGED
@@ -56,6 +56,7 @@ from zenml.new.pipelines.pipeline_decorator import pipeline
56
56
  from zenml.new.steps.step_decorator import step
57
57
  from zenml.new.steps.step_context import get_step_context
58
58
  from zenml.steps.utils import log_step_metadata
59
+ from zenml.entrypoints import entrypoint
59
60
 
60
61
  __all__ = [
61
62
  "ArtifactConfig",
@@ -74,4 +75,5 @@ __all__ = [
74
75
  "save_artifact",
75
76
  "show",
76
77
  "step",
78
+ "entrypoint",
77
79
  ]
zenml/analytics/enums.py CHANGED
@@ -85,6 +85,9 @@ class AnalyticsEvent(str, Enum):
85
85
  DEPLOY_STACK_COMPONENT = "Stack component deployed"
86
86
  DESTROY_STACK_COMPONENT = "Stack component destroyed"
87
87
 
88
+ # Full stack infrastructure deployment
89
+ DEPLOY_FULL_STACK = "Full stack deployed"
90
+
88
91
  # Tag created
89
92
  CREATED_TAG = "Tag created"
90
93
 
zenml/cli/__init__.py CHANGED
@@ -1411,6 +1411,34 @@ zenml stack register STACK_NAME \
1411
1411
  Each corresponding argument should be the name, id or even the first few letters
1412
1412
  of the id that uniquely identify the artifact store or orchestrator.
1413
1413
 
1414
+ To create a new stack using the new service connector with a set of minimal components,
1415
+ use the following command:
1416
+
1417
+ ```bash
1418
+ zenml stack register STACK_NAME \
1419
+ -p CLOUD_PROVIDER
1420
+ ```
1421
+
1422
+ To create a new stack using the existing service connector with a set of minimal components,
1423
+ use the following command:
1424
+
1425
+ ```bash
1426
+ zenml stack register STACK_NAME \
1427
+ -sc SERVICE_CONNECTOR_NAME
1428
+ ```
1429
+
1430
+ To create a new stack using the existing service connector with existing components (
1431
+ important, that the components are already registered in the service connector), use the
1432
+ following command:
1433
+
1434
+ ```bash
1435
+ zenml stack register STACK_NAME \
1436
+ -sc SERVICE_CONNECTOR_NAME \
1437
+ -a ARTIFACT_STORE_NAME \
1438
+ -o ORCHESTRATOR_NAME \
1439
+ ...
1440
+ ```
1441
+
1414
1442
  If you want to immediately set this newly created stack as your active stack,
1415
1443
  simply pass along the `--set` flag.
1416
1444
 
zenml/cli/artifact.py CHANGED
@@ -13,7 +13,6 @@
13
13
  # permissions and limitations under the License.
14
14
  """CLI functionality to interact with artifacts."""
15
15
 
16
- from functools import partial
17
16
  from typing import Any, Dict, List, Optional
18
17
 
19
18
  import click
@@ -258,7 +257,7 @@ def prune_artifacts(
258
257
  """
259
258
  client = Client()
260
259
  unused_artifact_versions = depaginate(
261
- partial(client.list_artifact_versions, only_unused=True)
260
+ client.list_artifact_versions, only_unused=True
262
261
  )
263
262
 
264
263
  if not unused_artifact_versions:
zenml/cli/integration.py CHANGED
@@ -263,13 +263,6 @@ def install(
263
263
  # no integrations specified, use all registered integrations
264
264
  integrations = set(integration_registry.integrations.keys())
265
265
 
266
- # TODO: remove once python 3.11 gcp integration issue is resolved
267
- if sys.version_info >= (3, 11) and "gcp" in integrations:
268
- warning(
269
- "We are aware of dependency resolution issues when using "
270
- "Python 3.11.x with the GCP integration. For now, please use "
271
- "Python 3.10 or lower instead while we work on a fix."
272
- )
273
266
  for i in ignore_integration:
274
267
  try:
275
268
  integrations.remove(i)
@@ -278,6 +271,14 @@ def install(
278
271
  f"Integration {i} does not exist. Available integrations: "
279
272
  f"{list(integration_registry.integrations.keys())}"
280
273
  )
274
+ # TODO: remove once python 3.8 is deprecated
275
+ if sys.version_info.minor == 8 and "tensorflow" in integrations:
276
+ warning(
277
+ "Python 3.8 with TensorFlow is not fully compatible with "
278
+ "Pydantic 2 requirements. Consider upgrading to a "
279
+ "higher Python version if you would like to use the "
280
+ "Tensorflow integration."
281
+ )
281
282
 
282
283
  requirements = []
283
284
  integrations_to_install = []
@@ -360,7 +361,7 @@ def uninstall(
360
361
  try:
361
362
  if integration_registry.is_installed(integration_name):
362
363
  requirements += (
363
- integration_registry.select_integration_requirements(
364
+ integration_registry.select_uninstall_requirements(
364
365
  integration_name
365
366
  )
366
367
  )
zenml/cli/server.py CHANGED
@@ -170,6 +170,12 @@ def up(
170
170
  else:
171
171
  pass
172
172
  provider = ServerProviderType.LOCAL
173
+ if cli_utils.requires_mac_env_var_warning():
174
+ cli_utils.error(
175
+ "The `OBJC_DISABLE_INITIALIZE_FORK_SAFETY` environment variable "
176
+ "is recommended to run the ZenML server locally on a Mac. "
177
+ "Please set it to `YES` and try again."
178
+ )
173
179
 
174
180
  os.environ[ENV_ZENML_LOCAL_SERVER] = str(True)
175
181