Releases: zenml-io/zenml
0.45.6
UPDATE: a breaking update to one of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1'
This release brings an array of enhancements and refinements. Notable improvements include
allowing for disconnecting
service connectors from stack components, adding connector support to the
sagemaker step operator, turning synchronous mode on by default for all orchestrators, and enabling
server-side component config validation.
What's Changed
- Updating
README.md
and update images by @znegrin in #1986 - Always set the active workspace to be the default workspace server side by @stefannica in #1989
- Update outdated CLI docs by @strickvl in #1990
- Turn synchronous mode on by default for all orchestrators by @stefannica in #1991
- Use docker credentials in the skypilot orchestrator by @stefannica in #1983
- Add missing space to
@step
warning message by @strickvl in #1994 - Fix sagemaker orchestrator and step operator env vars and other minor bugs by @stefannica in #1993
- fix:
BasePyTorchMaterliazer
->Materializer
by @cameronraysmith in #1969 - allow calling old base pytorch materilizzer by @safoinme in #1997
- Add connector support to sagemaker step operator. by @stefannica in #1996
- Server-Side Component Config Validation by @fa9r in #1988
- Allow disconnecting service-connector from stack component by @safoinme in #1864
New Contributors
Full Changelog: 0.45.5...0.45.6
0.45.5
UPDATE: a breaking update to one of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1'
This minor release contains bugfixes and documentation improvements. Notably,
our sqlmodel
dependency has been pinned to 0.0.8 which fixes installation
errors following the release of 0.0.9.
What's Changed
- Add a 'how do I...' section into docs by @strickvl in #1953
- Bump
mypy
,ruff
andblack
by @strickvl in #1963 - Fix double slashes in weblogin by @schustmi in #1972
- SQLModel docs backport fixes by @strickvl in #1975
- Updated quickstart command in cloud quickstart by @AlexejPenner in #1977
- Make sure vertex job id is only lower case letter, number or dash by @AlexejPenner in #1978
- Fix DB initialization when using external authentication by @schustmi in #1965
- Pin SQLModel dependency to
0.0.8
by @strickvl in #1973 - Source code repository type not included in resolve source by @safoinme in #1982
- Prepare release 0.45.5 by @strickvl in #1981
Full Changelog: 0.45.4...0.45.5
0.45.4
UPDATE: a breaking update to two of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1' 'sqlmodel==0.0.8'
This minor update fixes a database migration bug that you could potentially encounter while upgrading your ZenML version and relates to use of the ExternalArtifact
object.
If you are upgrading from <0.45.x version, this is the recommended release.
UPDATE (Oct 24, 2023): A new version of sqlmodel
(0.0.9) might cause issues with your ZenML installation. If you encounter this error, please do a pip install 'sqlmodel==0.0.8'
to fix the problem. This will be permanently fixed in higher versions of ZenML.
PROBLEMS?: If you upgraded to ZenML v0.45.2 or v0.45.3 and are experiencing issues with your database, please consider upgrading to v0.45.4 instead.
What's Changed
- Increase reuse of
ModelConfig
by @avishniakov in #1954 - resolve alembic branches by @avishniakov in #1964
- Fix corrupted migration for old dbs by @avishniakov in #1966
Full Changelog: 0.45.3...0.45.4
0.45.3
UPDATE: a breaking update to two of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1' 'sqlmodel==0.0.8'
This minor update fixes a database migration bug that you could potentially encounter while upgrading your ZenML version and relates to use of the ExternalArtifact
object.
PROBLEMS?: If you upgraded to ZenML v0.45.2 and are experiencing issues with your database, please either reach out to us on Slack directly or feel free to use this migration script that will manually fix the issue. (Please do backup your database before using the migration script so as to prevent any data loss!)
This release also includes a bugfix from @cameronraysmith relating to the
resolution of our Helm chart OCI location. Thank you!
What's Changed
- fix: match chart name in docs to publish workflow by @cameronraysmith in #1942
- Evaluate YAML based config early + OSS-2511 by @avishniakov in #1876
- Fixing nullable parameter to avoid extra migrations by @bcdurak in #1955
- Pin Helm version to avoid 400 Bad Request error by @wjayesh in #1958
external_input_artifact
backward compatibility with alembic by @avishniakov in #1957- Fix nlp template link by @htahir1 in #1960
- handle NULLs in migration by @avishniakov in #1961
- Prepare release 0.45.3 by @strickvl in #1959
New Contributors
- @cameronraysmith made their first contribution in #1942
Full Changelog: 0.45.2...0.45.3
0.45.2
UPDATE: a breaking update to two of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1' 'sqlmodel==0.0.8'
UPDATE NOTE: 0.45.2 introduced a minor database migration bug. To avoid this, please install 0.45.3 directly. If you already installed 0.45.2 and are running into database migration issues (especially if you're using ExternalArtifact
objects), please contact us directly on Slack or (alternatively) use this migration script to fix your broken database (script should be executed directly on the server if you use remote installation).
This release replaces 0.45.0 and 0.45.1, and fixes the major migration bugs that were in
that yanked release. Please upgrade directly to 0.45.2 and avoid upgrading to
0.45.0 to avoid unexpected migration issues.
Note that 0.45.0 and 0.45.1 were removed from PyPI due to an issue with the
alembic versions + migration which could affect the database state. This release
fixes that issue.
If you have already upgraded to 0.45.0 please let us know in Slack and we'll happy to assist in rollback and recovery.
This release introduces a major upgrade to ZenML, featuring a new authentication mechanism, performance improvements, the introduction of the model control plane, and internal enhancements.
New Authentication Mechanism (#4303)
Our improved authentication mechanism offers a more secure way of connecting to the ZenML server. It initiates a device flow that prompts you to log in via the browser dashboard:
zenml connect --url <YOUR_SERVER_URL>
This eliminates the need for explicit credential input. The previous method (zenml connect --url <URL> --username <USERNAME> --password <PASSWORD>
) remains operational but is less recommended due to security concerns.
Critical This change disrupts existing pipeline schedules. After upgrading, manually cancel and reschedule pipelines using the updated version of ZenML.
For more information, read about the device flow in our documentation.
Performance enhancements (#3207)
Internal API adjustments have reduced the footprint of ZenML API objects by up to 35%. This will particularly benefit users with large step and pipeline configurations. Further reductions will be implemented in our next release.
Model Control Plane debut (#5648)
ZenML now includes a preliminary version of the model control plane, a feature for registering models and their metadata on a single ZenML dashboard view. Future releases will provide more details. To test this early version, follow this example.
Breaking Changes
- Environment variables
ZENML_AUTH_TYPE
andZENML_JWT_SECRET_KEY
have been renamed toZENML_SERVER_AUTH_SCHEME
andZENML_SERVER_JWT_SECRET_KEY
, respectively. - All ZenML server-issued JWT tokens now include an issuer and an audience. After the server update, current scheduled pipelines become invalidated. Reset your schedules and reconnect all clients to the server to obtain new tokens.
UnmaterializedArtifact
has been relocated tozenml.artifacts
. Change your import statement fromfrom zenml.materializers import UnmaterializedArtifact
tofrom zenml.artifacts.unmaterialized_artifact import UnmaterializedArtifact
.
Deprecations
zenml.steps.external_artifact.ExternalArtifact
has moved tozenml.artifacts.external_artifact.ExternalArtifact
.
And the rest:
- Discord alerter integration by @bhatt-priyadutt in #1818. Huge shoutout to you priyadutt - we're sending some swag your way!
- Update Neptune dependency:
neptune-client
>neptune
by @fa9r in #1837 - Disable codeql on pushes to
develop
by @strickvl in #1842 - Template not updating due to git diff misuse by @avishniakov in #1844
- Bump feast version to fix api docs generation by @fa9r in #1845
- CI Fixes / Improvements by @fa9r in #1848
- Fix MLflow registry methods with empty metadata by @fa9r in #1843
- Use configured template REF in CI by @avishniakov in #1851
- Fix template REF in CI by @avishniakov in #1852
- Fix AWS service connector installation requirements by @stefannica in #1850
- [Docs] Improvements to custom flavor and custom orchestrator pages by @htahir1 in #1747
- Optimizing the performance through database changes by @bcdurak in #1835
- Add
README
forexamples
folder by @strickvl in #1860 - Free up disk space in CI by @strickvl in #1863
- Make Terraform Optional Again by @fa9r in #1855
- Model watchtower becomes Model control plane by @strickvl in #1868
- Update documentation by @VishalKumar-S in #1872
- Fix CI by freeing up space on runner by @strickvl in #1866
- Allow for
user
param to be specified (successfully) inDockerSettings
by @strickvl in #1857 - Add
get_pipeline_context
by @avishniakov in #1870 - [Helm] Use GCP creds directly instead of a file. by @wjayesh in #1874
- External authenticator support, authorized devices and web login by @stefannica in #1814
- Connect to Service-connector at component registration by @safoinme in #1858
- Fixing the
upgrade
migration script after the database changes by @bcdurak in #1877 - [Model Control Plane] v0.1 mega-branch by @avishniakov in #1816
- Update to templates by @htahir1 in #1878
- Docs for orgs, rbac and sso by @AlexejPenner in #1875
- Convert network_config dict to NetworkConfig object in SageMaker orchestrator by @christianversloot in #1873
- Add missing Docker build options for GCP image builder by @strickvl in #1856
- Solve alembic branching issue by @avishniakov in #1879
- Fix typo for 0.45 release by @strickvl in #1881
- Only import ipinfo when necessary by @schustmi in #1888
- [Model Control Plane] Suppress excessive logging in model control plane by @avishniakov in #1885
- Add warning generation scripts for Gitbook docs by @strickvl in #1929
- Fix calling
click
decorator in model CLI command by @safoinme in #1932 - Lightweight template CI by @avishniakov in #1930
- Update
Skypilot
orchestrator setting docs section by @safoinme in #1931
New Contributors
- @VishalKumar-S made their first contribution in #1872
Full Changelog: 0.44.3...0.45.0
0.45.1 [YANKED]
0.45.1
Update: It's one of those days! This release is also yanked due to alembic migration issues. We are working hard to solve it. In the meanwhile please use 0.44.3
This release replaces 0.45.0, and fixes the major migration bugs that were in that yanked release. Please upgrade directly to 0.45.1 and avoid upgrading to 0.45.0 to avoid unexpected migration issues.
What's changed
This release introduces a major upgrade to ZenML, featuring a new authentication mechanism, performance improvements, the introduction of the model control plane, and internal enhancements.
New Authentication Mechanism (#4303)
Our improved authentication mechanism offers a more secure way of connecting to the ZenML server. It initiates a device flow that prompts you to log in via the browser dashboard:
zenml connect --url <YOUR_SERVER_URL>
This eliminates the need for explicit credential input. The previous method (zenml connect --url <URL> --username <USERNAME> --password <PASSWORD>
) remains operational but is less recommended due to security concerns.
Critical This change disrupts existing pipeline schedules. After upgrading, manually cancel and reschedule pipelines using the updated version of ZenML.
For more information, read about the device flow in our documentation.
Performance enhancements (#3207)
Internal API adjustments have reduced the footprint of ZenML API objects by up to 35%. This will particularly benefit users with large step and pipeline configurations. Further reductions will be implemented in our next release.
Model Control Plane debut (#5648)
ZenML now includes a preliminary version of the model control plane, a feature for registering models and their metadata on a single ZenML dashboard view. Future releases will provide more details. To test this early version, follow this example.
Breaking Changes
- Environment variables
ZENML_AUTH_TYPE
andZENML_JWT_SECRET_KEY
have been renamed toZENML_SERVER_AUTH_SCHEME
andZENML_SERVER_JWT_SECRET_KEY
, respectively. - All ZenML server-issued JWT tokens now include an issuer and an audience. After the server update, current scheduled pipelines become invalidated. Reset your schedules and reconnect all clients to the server to obtain new tokens.
UnmaterializedArtifact
has been relocated tozenml.artifacts
. Change your import statement fromfrom zenml.materializers import UnmaterializedArtifact
tofrom zenml.artifacts.unmaterialized_artifact import UnmaterializedArtifact
.
Deprecations
zenml.steps.external_artifact.ExternalArtifact
has moved tozenml.artifacts.external_artifact.ExternalArtifact
.
And the rest:
- Discord alerter integration by @bhatt-priyadutt in #1818. Huge shoutout to you priyadutt - we're sending some swag your way!
- Update Neptune dependency:
neptune-client
>neptune
by @fa9r in #1837 - Disable codeql on pushes to
develop
by @strickvl in #1842 - Template not updating due to git diff misuse by @avishniakov in #1844
- Bump feast version to fix api docs generation by @fa9r in #1845
- CI Fixes / Improvements by @fa9r in #1848
- Fix MLflow registry methods with empty metadata by @fa9r in #1843
- Use configured template REF in CI by @avishniakov in #1851
- Fix template REF in CI by @avishniakov in #1852
- Fix AWS service connector installation requirements by @stefannica in #1850
- [Docs] Improvements to custom flavor and custom orchestrator pages by @htahir1 in #1747
- Optimizing the performance through database changes by @bcdurak in #1835
- Add
README
forexamples
folder by @strickvl in #1860 - Free up disk space in CI by @strickvl in #1863
- Make Terraform Optional Again by @fa9r in #1855
- Model watchtower becomes Model control plane by @strickvl in #1868
- Update documentation by @VishalKumar-S in #1872
- Fix CI by freeing up space on runner by @strickvl in #1866
- Allow for
user
param to be specified (successfully) inDockerSettings
by @strickvl in #1857 - Add
get_pipeline_context
by @avishniakov in #1870 - [Helm] Use GCP creds directly instead of a file. by @wjayesh in #1874
- External authenticator support, authorized devices and web login by @stefannica in #1814
- Connect to Service-connector at component registration by @safoinme in #1858
- Fixing the
upgrade
migration script after the database changes by @bcdurak in #1877 - [Model Control Plane] v0.1 mega-branch by @avishniakov in #1816
- Update to templates by @htahir1 in #1878
- Docs for orgs, rbac and sso by @AlexejPenner in #1875
- Convert network_config dict to NetworkConfig object in SageMaker orchestrator by @christianversloot in #1873
- Add missing Docker build options for GCP image builder by @strickvl in #1856
- Solve alembic branching issue by @avishniakov in #1879
- Fix typo for 0.45 release by @strickvl in #1881
- Only import ipinfo when necessary by @schustmi in #1888
- [Model Control Plane] Suppress excessive logging in model control plane by @avishniakov in #1885
- Add warning generation scripts for Gitbook docs by @strickvl in #1929
- Fix calling
click
decorator in model CLI command by @safoinme in #1932 - Lightweight template CI by @avishniakov in #1930
- Update
Skypilot
orchestrator setting docs section by @safoinme in #1931 - Add missing space when creating new model version by @strickvl in #1935
- Fix alembic inconsistencies by @fa9r in #1944
- [Model Control Plane] link cached artifacts by @avishniakov in #1946
- Fixing the migration issues by @bcdurak in #1945
- Release prepped by @htahir1 in #1948
New Contributors
- @VishalKumar-S made their first contribution in #1872
Full Changelog: 0.44.3...0.45.0
0.45.0 [YANKED]
IMPORTANT THIS RELEASE HAS BEEN YANKED
- Due to an unforseen alembic migration issue, this release has been yanked.0.45.1 is on its way to being released to fix the bugs that have been uncovered
- If you have already upgraded to 0.45.0 please let us know in Slack and we'll happy to assist in rollback and recovery
0.44.3
UPDATE: a breaking update to two of our dependencies means that you should run the following update after installing this version of zenml
:
pip install 'bcrypt==4.0.1' 'sqlmodel==0.0.8'
This release, introduces SkyPilot, a new VM orchestrator for ZenML that lets users run pipelines on their choice of cloud provider VMs, offering a GPU option without Kubernetes or serverless orchestrators. This release also brings bug fixes and improvements, including a streamlined 'connect' command, interactive configuration for 'zenml stack deploy,' and enhanced documentation covering SageMaker, GCP, and service connectors with MFA.
New Orchestrator: SkyPilot (#1765)
This release introduces a new orchestrator called SkyPilot. SkyPilot is a VM orchestrator
that can be used to run ZenML pipelines on a VM of choice in one of the three supported
cloud providers. It is an excellent choice for users who want to run ZenML pipelines on a GPU
instance, but don't want to use Kubernetes or serverless orchestrators like SageMaker.
Fixes and Improvements
This release fixes several bugs and improves the user experience of the CLI and the
documentation. The most notable changes are:
- The new
connect
command that allows connecting all stack components within a stack to a
service connector with a single command. - Adding an interactive flow to the
zenml stack deploy
command that allows users to
configure their stack in a guided manner. - Add documentation on how to debug the SageMaker orchestrator, how to get started with
a quick cloud stack on GCP, and documentation on using service connectors with
enabled MFA.
What's Changed
- Add support for empty API token in Kubernetes service connector. by @stefannica in #1808
- Use the container registry credentials to build images with the local image builder by @stefannica in #1804
- Fix CI by @fa9r in #1809
- Add documentation on how to debug the SageMaker orchestrator by @fa9r in #1810
- Bump
rich
anduvicorn
by @jlopezpena in #1750 - SageMaker: Enable configuring authentication credentials explicitly by @fa9r in #1805
- Fix: ZenML DB migrations don't run if zenml is installed in path with spaces by @stefannica in #1815
- Fix mlflow 'run_name' variable overwriting by @iraadit in #1821
- Add
SECURITY.md
file for vulnerability disclosures. by @strickvl in #1824 - Add MFA limitation to service-connectors docs by @safoinme in #1827
- Improve
zenml stack describe
to showmlstacks
outputs by @strickvl in #1826 - Documentation to get started with a quick cloud stack on GCP by @AlexejPenner in #1807
- Fix missing text in git repo docs by @strickvl in #1831
- Handle irregular plural of
code_repository
for error message by @strickvl in #1832 - Connect stack to a service account by @safoinme in #1828
- SkyPilot Integration with VM Orchestrators by @htahir1 in #1765
- Add interactive CLI flow for
zenml stack deploy
by @strickvl in #1829 - Add
README
file for helm chart by @strickvl in #1830 - Fix slack environment variable in in
generative_chat
example README by @bhatt-priyadutt in #1836
New Contributors
Full Changelog: 0.44.2...tes
0.44.2
This release contains updates for some of the most popular integrations, as well as several bug fixes and documentation improvements.
Minor Default Behavior Changes
- The default page size for
zenml list
commands was reduced to 20 (from 50) to speed up the runtime of such commands. - Simultaneous connection to local and remote ZenML servers is no longer possible since this caused several unexpected behaviors in the past.
Integration Updates
- The
mlflow
integration now supports the newest MLflow version2.6.0
. - The
evidently
integration now supports the latest Evidently version0.4.4
. - The SageMaker orchestrator of the
aws
integration now supports authentication via service connectors.
What's Changed
- Add
bandit
to CI for security linting by @strickvl in #1775 - Add
mlstacks
compatibility check to CI by @strickvl in #1767 - extend
StepContext
visibility to materializers by @avishniakov in #1769 - Revert GH changes to fix colima bug in macos gh by @safoinme in #1779
- Reduce CI runner count by @strickvl in #1777
- Add E2E template as example by @avishniakov in #1766
- Fix CI step names by @avishniakov in #1784
- Add vulnerability scanner by @strickvl in #1776
- Stop CI from running on push to
develop
by @strickvl in #1788 - Skip update templates outside PR by @avishniakov in #1786
- Fix azure service connector docs by @stefannica in #1778
- fix: use k8s V1CronJob instead of V1beta1CronJob (#1781) by @francoisserra in #1787
- Page limit adjustment by @bcdurak in #1791
- Prevent simultaneous connection to local and remote servers by @fa9r in #1792
- Update
MLflow
version to allow support for 2.6.0 by @safoinme in #1782 - Improve
ConnectionError
error message by @fa9r in #1783 - Stop old MLflow services when deploying new ones by @fa9r in #1793
- Prevent adding private components into shared stacks by @fa9r in #1794
- Publish server helm chart as part of CI by @wjayesh in #1740
- Docs on the use of ZenML-specific environment variables by @strickvl in #1796
- Add support for newer Evidently versions by @fa9r in #1780
- Link E2E example to docs by @avishniakov in #1790
- Copy step instance before applying configuration by @schustmi in #1798
- Fix AWS container registry image pushing with service connectors by @fa9r in #1797
- Make Sagemaker orchestrator work with connectors by @fa9r in #1799
- Add rebase Pre-requisite to PRs template by @safoinme in #1801
Full Changelog: 0.44.1...0.44.2
0.44.1
This release brings various improvements over the previous version, mainly focusing on using the newly refactored mlstacks
package, ZenML's logging
module and the changes in our analytics.
IMPORTANT NOTICE
Note: 0.44.0 was removed from Pypi due to an issue with the alembic versions which could affect the database state. A branch occurred in the versions: 0.42.1 -> [0.43.0, e1d66d91a099] -> 0.44.0. This release fixes the issue.
The primary issue arises when deploying version 0.44.0 using a MySQL backend. Although the alembic migration executes all tasks up to 0.44.0, the alembic version represented in the database remains at 0.43.0. This issue persists irrespective of the measures taken, including trying various versions after 0.43.0.
This imbalance leads to failure when running a second replica migration because the database's state is at 0.44.0 while the alembic version remains at 0.43.0. Similarly, attempts to run a second replica or restart the pod fail as the alembic tries to migrate from 0.43.0 to 0.44.0, which is not possible because these changes already exist in the database.
Please note: If you encounter this problem, we recommend you roll back to previous versions and upgrade to 0.43.0. If you still experience difficulties, please join our Slack community at https://zenml.io/slack. We're ready to help you work through this issue.
What's Changed
- Remove e2e example and point to templates by @avishniakov in #1752
- Add cloud architecture docs by @htahir1 in #1751
- Update docs/docstrings following
mlstacks
repo name change by @strickvl in #1754 - Update Cloud deployment scenarios by @stefannica in #1757
- Fixing the logging message regarding caching by @bcdurak in #1748
- Improvements to the step logs storage functionality by @bcdurak in #1733
- Fix
qemu
/colima
Github Actions bug by @safoinme in #1760 - Bump
ruff
andmypy
by @strickvl in #1762 - Add Template Testing in Core by @avishniakov in #1745
- Removing analytics v1 and optimizing v2 by @bcdurak in #1753
- Update publish script to take a token by @strickvl in #1758
- Update variable name for release publication token by @strickvl in #1764
- Lock the
MYSQL
Database during DB migrations by @safoinme in #1763 mlstacks
integration (and deprecation of old deployment logic) by @strickvl in #1721- Upgrade typing extensions within api docs build workflow by @AlexejPenner in #1741
- Fix branching alembic history by @AlexejPenner in #1772
- Remove pinned
zenml
version specified in TOC for SDK docs by @strickvl in #1770 - Modified the track metadata for the opt-in event by @bcdurak in #1774
- Check alembic branch divergence in CI by @strickvl in #1773
- Remove the DB lock by @safoinme in #1771
Full Changelog: 0.43.0...0.44.1