-
Notifications
You must be signed in to change notification settings - Fork 479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved tagging #3360
base: develop
Are you sure you want to change the base?
Improved tagging #3360
Conversation
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
Describe changes
With this PR, we improve how we handle tags in ZenML.
New Feature: Rolling tags
Our users can now use
rolling
tags. These tags have special rules regarding how they can be attached to various models. Arolling
tag can be associated with only one:You can create and use these tags in various ways:
Recommended approach: the new
Tag
objectFor instance, if you want to add a tag to your pipeline run, you can use the new
Tag
object:Alternative methods
You can also create a tag as a rolling tag and use it down the line. Or, update it later on.
We, in fact, store the information regarding whether a tag is rolling in our DB.
New Feature: Runtime configuration for hierarchical tags
With this PR, we also enable the hierarchical association of tags on the pipeline run level. In other words, if someone explicitly defines it, a tag on the pipeline decorator can be associated with all the artifact versions that are created during its execution.
Keep in mind, that this is different than the
rolling
attribute and it is a one-time runtime setting. We do not save whether a tag is hierarchical or not in the DB.New Feature: Filtering by multiple tags
With this PR, we add the ability to filter taggable objects with more than one tag.
Keep in mind, that this is a generalized change and affects all the taggable entities, namely pipelines, pipeline runs, run templates, artifacts, artifact versions, models, and model versions.
New Feature: Utility functions to handle tags
There are new utility functions to manage tags:
add_tags
andremove_tags
. Much like thelog_metadata
functions, these functions can be used in and from different contexts.The same methodology applies to the
remove_tags
functions as well.New Feature: Batch endpoints for tag management
There are two new endpoints for managing the creation and deletion of tags in a batched manner.
Improvement: Refactored client methods
Our previous client methods required our users to use the corresponding
Request
,Update
, andFilter
models. This has been changed to keep them consistent with the other entities and make the UX smoother.Remaining TODOs
Pre-requisites
Please ensure you have done the following:
develop
and the open PR is targetingdevelop
. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.Types of changes