Releases: zenml-io/zenml
0.5.6
) * (
( /( ( ` )\ )
)\()) ( )\))( (()/(
((_)\ ))\ ( ((_)()\ /(_))
_((_) /((_) )\ ) (_()((_) (_))
|_ / (_)) _(_/( | \/ | | |
/ / / -_) | ' \)) | |\/| | | |__
/___| \___| |_||_| |_| |_| |____|
This release fixes some known bugs from previous releases and especially 0.5.5. Therefore, upgrading to 0.5.6 is a breaking change. You must do the following in order to proceed with this version:
cd zenml_enabled_repo
rm -rf .zen/
And then start again with ZenML init:
pip install --upgrade zenml
zenml init
New Features
- Added
zenml example run [EXAMPLE_RUN_NAME]
feature: The ability to run an example with one command. In order to run this, dozenml example pull
first and see all examples available by runningzenml example list
. - Added ability to specify a
.dockerignore
file before running pipelines on Kubeflow. - Kubeflow Orchestrator is now leaner and faster.
- Added the
describe
command group to the CLI for groupsstack
,orchestrator
,artifact-store
, andmetadata-store
. E.g.zenml stack describe
Bug fixes and minor improvements
- Adding
StepContext
to a branch now invalidates caching by default. Disable explicitly withenable_cache=True
. - Docs updated to reflect minor changes in CLI commands.
- CLI
list
commands now mentions active component. Tryzenml stack list
to check this out. zenml version
now has cooler art.
What's Changed
- Delete blog reference from release notes by @alex-zenml in #228
- Docs updates by @alex-zenml in #229
- Update kubeflow guide by @schustmi in #230
- Updated quickstart to reflect newest zenml version by @alexej-zenml in #231
- Add KFP GCP example readme by @schustmi in #233
- Baris/update docs with class api by @bcdurak in #232
- fixing a small typo [ci skip] by @bcdurak in #236
- Hamza/docs last min updates by @htahir1 in #234
- fix broken links by @alex-zenml in #237
- added one more page for standardized artifacts [ci skip] by @bcdurak in #238
- Unified use of cli_utils.print_table for all table format cli printouts by @AlexejPenner in #240
- Remove unused tfx kubeflow code by @schustmi in #239
- Relaxed typing requirements for cli_utils.print_table by @AlexejPenner in #241
- Pass input artifact types to kubeflow container entrypoint by @schustmi in #242
- Catch duplicate run name error and throw custom exception by @schustmi in #243
- Improved logs by @htahir1 in #244
- CLI active component highlighting by @alex-zenml in #245
- Baris/eng 244 clean up by @bcdurak in #246
- CLI describe command by @alex-zenml in #248
- Alexej/eng 35 run examples from cli by @AlexejPenner in #253
- CLI argument and option flag consistency improvements by @alex-zenml in #250
- Invalidate caching when a step requires a step context by @schustmi in #252
- Implement better error messages for custom step output artifact types by @schustmi in #254
- Small improvements by @schustmi in #251
- Kubeflow dockerignore by @schustmi in #249
- Rename container registry folder to be consistent with the other stack components by @schustmi in #257
- Update todo script by @schustmi in #256
- Update docs following CLI change by @alex-zenml in #255
- Bump mypy version by @schustmi in #258
- Kubeflow Windows daemon alternative by @schustmi in #259
- Run pre commit in local environment by @schustmi in #260
- Hamza/eng 269 move beam out by @htahir1 in #262
- Update docs by @alex-zenml in #261
- Hamza/update readme with contribitions by @htahir1 in #271
- Hamza/eng 256 backoff analytics by @htahir1 in #270
- Add spellcheck by @alex-zenml in #264
- Using the pipeline run name to explicitly access when explaining the … by @AlexejPenner in #263
- Import user main module in kubeflow entrypoint to make sure all components are registered by @schustmi in #273
- Fix cli version command by @schustmi in #272
- User is informed of version mismatch and example pull defaults to cod… by @AlexejPenner in #274
- Hamza/eng 274 telemetry by @htahir1 in #275
- Update docs with right commands and events by @htahir1 in #276
- Fixed type annotation for some python versions by @AlexejPenner in #277
Full Changelog: 0.5.5...0.5.6
0.5.5
ZenML 0.5.5 is jam-packed with new features to take your ML pipelines to the next level. Our three biggest new features: Kubeflow Pipelines, CLI support for our integrations and Standard Interfaces. That’s right, Standard Interfaces are back!
What's Changed
- Implement base component tests by @schustmi in #211
- Add chapter names by @alex-zenml in #212
- Fix docstring error by @alex-zenml in #213
- Hamza/add caching example by @htahir1 in #214
- Update readme by @alex-zenml in #216
- Hamza/add small utils by @htahir1 in #219
- Update docs by @alex-zenml in #220
- Docs fixes by @alex-zenml in #222
- Baris/eng 182 standard interfaces by @bcdurak in #209
- Fix naming error by @alex-zenml in #221
- Remove framework design by @alex-zenml in #224
- Alexej/eng 234 zenml integration install by @alexej-zenml in #223
- Fix deployment section order by @alex-zenml in #225
- the readme of the example by @bcdurak in #227
- Kubeflow integration by @schustmi in #226
New Contributors
- @alexej-zenml made their first contribution in #223
Full Changelog: 0.5.4...0.5.5
0.5.4
0.5.4 adds a lineage tracking integration to visualize lineage of pipeline runs! It also includes numerous bug fixes and optimizations.
What's Changed
- Fix typos by @alex-zenml in #192
- Fix Apache Beam bug by @alex-zenml in #194
- Fix apache beam logging bug by @alex-zenml in #195
- Add step context by @schustmi in #196
- Init docstrings by @alex-zenml in #197
- Hamza/small fixes by @htahir1 in #199
- Fix writing to metadata store with airflow orchestrator by @schustmi in #198
- Use pipeline parameter name as step name in post execution by @schustmi in #200
- Add error message when step name is not in metadata store by @schustmi in #201
- Add option to set repo location using an environment variable by @schustmi in #202
- Run cloudbuild after pypi publish by @schustmi in #203
- Refactor component generation by @schustmi in #204
- Removed unnecessary panel dependency by @htahir1 in #206
- Updated README to successively install requirements by @AlexejPenner in #205
- Store active stack in local config by @schustmi in #208
- Hamza/eng 125 lineage tracking vis by @htahir1 in #207
New Contributors
- @AlexejPenner made their first contribution in #205
Full Changelog: 0.5.3...0.5.4
0.5.3
Version 0.5.3 adds statistics visualizations, greatly improved speed for CLI commands as well as lots of small improvements to the pipeline and step interface.
What's Changed
- Make tests run in a random order by @alex-zenml in #160
- Connect steps using *args by @schustmi in #162
- Move location of repobeats image by @alex-zenml in #163
- Hamza/add sam by @htahir1 in #165
- Pipeline initialization with *args by @schustmi in #164
- Improve detection of third party modules during class resolving by @schustmi in #167
- Merge path_utils into fileio & refactor what was left by @alex-zenml in #168
- Update docker files by @schustmi in #169
- Hamza/deploy api reference by @htahir1 in #171
- API Reference by @schustmi in #172
- Add colour back into our github actions by @alex-zenml in #176
- Refactor tests not raising by @alex-zenml in #177
- Improve step and pipeline interface by @schustmi in #175
- Alex/eng 27 windows bug again by @htahir1 in #178
- Automated todo tracking by @schustmi in #173
- Fix mypy issues related to windows by @schustmi in #179
- Include Github URL to TODO comment in issue by @schustmi in #181
- Create Visualizers logic by @htahir1 in #182
- Add README for visualizers examples by @alex-zenml in #184
- Allow None as default value for BaseStep configs by @schustmi in #185
- Baris/eng 37 standard import check by @bcdurak in #183
- Replace duplicated code by call to source_utils.resolve_class by @schustmi in #186
- Remove unused base enum cases by @schustmi in #187
- Testing mocks for CLI
examples
command by @alex-zenml in #180 - Set the correct module for steps created using our decorator by @schustmi in #188
- Fix some cli commands by @schustmi in #189
- Tag jira issues for which the todo was deleted by @schustmi in #190
- Remove deadlinks by @alex-zenml in #191
Full Changelog: 0.5.2...0.5.3
0.5.2
0.5.2
0.5.2 brings an improved post-execution workflow and lots of minor changes and upgrades for the developer experience when
creating pipelines. It also improves the Airflow orchestrator logic to accommodate for more real world scenarios. Check out the
low level API guide for more details!
What's Changed
- Fix autocomplete for step and pipeline decorated functions by @schustmi in #144
- Add reference docs for CLI example functionality by @alex-zenml in #145
- Fix mypy integration by @schustmi in #147
- Improve Post-Execution Workflow by @schustmi in #146
- Fix CLI examples bug by @alex-zenml in #148
- Update quickstart example notebook by @alex-zenml in #150
- Add documentation images by @alex-zenml in #151
- Add prettierignore to gitignore by @alex-zenml in #154
- Airflow orchestrator improvements by @schustmi in #153
- Google colab added by @htahir1 in #155
- Tests for
core
andcli
modules by @alex-zenml in #149 - Add Paperspace environment check by @alex-zenml in #156
- Step caching by @schustmi in #157
- Add documentation for pipeline step parameter and run name configuration by @schustmi in #158
- Automatically disable caching if the step function code has changed by @schustmi in #159
Full Changelog: 0.5.1...0.5.2
0.5.1
0.5.1
0.5.1 builds on top of Slack of the 0.5.0 release with quick bug updates.
Overview
- Pipeline can now be run via a YAML file. #132
- CLI now let's you pull directly from GitHub examples folder. 🔥 Amazing @alex-zenml with #141!
- ZenML now has full mypy compliance. 🎉 Thanks @schustmi for #140!
- Numerous bugs and performance improvements. #136, @bcdurak great job with #142
- Airflow orchestrator now bootstraps airflow locally and spins it up before running pipelines.
- Added new docs with a low level API guide. #143
Our roadmap goes into further detail on the timeline. Vote on the next features now.
We encourage every user (old or new) to start afresh with this release. Please go over our latest docs and examples to get a hang of the new system.
Auto-generated docs:
- Some random optimizations by @htahir1 in #129
- Add codecov threhold for PRs by @schustmi in #131
- remove misspelling of preprocessor by @alex-zenml in #134
- Quick edit of documentation by @alex-zenml in #133
- Very confusing codecov update by @htahir1 in #135
- Small bugs here and there by @htahir1 in #136
- Michael/type annotations by @schustmi in #137
- Hamza/docs upgrade by @htahir1 in #138
- add tests by @alex-zenml in #130
- Michael/mypy integration by @schustmi in #139
- First version of low level api guide by @htahir1 in #140
- CLI examples by @alex-zenml in #141
- Implement pipeline configuration with yaml file by @schustmi in #132
- Baris/improved performance by @bcdurak in #142
- Hamza/docs upgrade by @htahir1 in #143
Full Changelog: 0.5.0...0.5.1
0.5.0
0.5.0
This long-awaited ZenML release marks a seminal moment in the project's history. We present to you a complete
revamp of the internals of ZenML, with a fresh new design and API. While these changes are significant, and have been months
in the making, the original vision of ZenML has not wavered. We hope that the ZenML community finds the new
design choices easier to grasp and use, and we welcome feedback on the issues board.
Warning
0.5.0 is a complete API change from the previous versions of ZenML, and is a breaking upgrade. Fundamental
concepts have been changed, and therefore backwards compatibility is not maintained. Please use only this version
with fresh projects.
With such significant changes, we expect this release to also be breaking. Please report any bugs in the issue board, and
they should be addressed in upcoming releases.
Overview
- Introducing a new functional API for creating pipelines and steps. This is now the default mechanism for building ZenML pipelines. read more
- Steps now use Materializers to handle artifact serialization/deserialization between steps. This is a powerful change, and will be expanded upon in the future. read more
- Introducing the new
Stack
paradigm: Easily transition from one MLOps stack to the next with a few CLI commands read more - Introducing a new
Artifact
,Typing
, andAnnotation
system, withpydantic
(anddataclasses
) support read more - Deprecating the
pipelines_dir
: Now individual pipelines will be stored in their metadata stores, making the metadata store a single source of truth. read more - Deprecating the YAML config file: ZenML no longer natively compiles to an intermediate YAML-based representation. Instead, it compiles and deploys directly into the selected orchestrator's
representation. While we do plan to support running pipelines directly through YAML in the future, it will no longer be
the default route through which pipelines are run. read more about orchestrators here
Technical Improvements
- A completely new system design, please refer to the docs.
- Better type hints and docstrings.
- Auto-completion support.
- Numerous performance improvements and bug fixes, including a smaller dependency footprint.
What to expect in the next weeks and the new ZenML
Currently, this release is bare bones. We are missing some basic features which used to be part of ZenML 0.3.8 (the previous release):
- Standard interfaces for
TrainingPipeline
. - Individual step interfaces like
PreprocesserStep
,TrainerStep
,DeployerStep
etc. need to be rewritten from within the new paradigm. They should
be included in the non-RC version of this release. - A proper production setup with an orchestrator like Airflow.
- A post-execution workflow to analyze and inspect pipeline runs.
- The concept of
Backends
will evolve into a simple mechanism of transitioning individual steps into different runners. - Support for
KubernetesOrchestrator
,KubeflowOrchestrator
,GCPOrchestrator
andAWSOrchestrator
are also planned. - Dependency management including Docker support is planned.
Our roadmap goes into further detail on the timeline.
We encourage every user (old or new) to start afresh with this release. Please go over our latest docs
and examples to get a hang of the new system.
Onwards and upwards to 1.0.0!
0.3.8
preparing 0.3.8
0.3.7.1rc5
preparing for 0.3.7.1
0.3.7
0.3.7
0.3.7 is a much-needed, long-awaited, big refactor of the Datasources paradigm of ZenML. There are also bug fixes, improvements, and more!
For those upgrading from an older version of ZenML, we ask to please delete their old pipelines
dir and .zenml
folders and start afresh with a zenml init
.
If only working locally, this is as simple as:
cd zenml_enabled_repo
rm -rf pipelines/
rm -rf .zenml/
And then another ZenML init:
pip install --upgrade zenml
cd zenml_enabled_repo
zenml init
New Features
-
The inner-workings of the
BaseDatasource
have been modified along with the concrete implementations. Now, there is no relation between aDataStep
and aDatasource
: ADatasource
holds all the logic to version and track itself via the newcommit
paradigm. -
Introduced a new interface for datasources, the
process
method which is responsible for ingesting data and writing to TFRecords to be consumed by later steps. -
Datasource versions (snapshots) can be accessed directly via the
commits
paradigm: Every commit is a new version of data. -
Added
JSONDatasource
andTFRecordsDatasource
.
Bug Fixes + Refactor
A big thanks to our new contributer @aak7912 for the help in this release with issue #71 and PR #75.
- Added an example for regression.
compare_training_runs()
now takes an optionaldatasource
parameter to filter by datasource.Trainer
interface refined to focus onrun_fn
rather than other helper functions.- New docs released with a streamlined vision and coherent storyline: https://docs.zenml.io
- Got rid of unnecessary Torch dependency with base ZenML version.