-
Notifications
You must be signed in to change notification settings - Fork 681
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
[Core feature] Pyflyte 'task with different structure' should show delta #4762
Comments
cc @mhotan |
🤖 Thank you for your feature request. I understand the need for a more detailed error message when there's a conflict in task structure during registration. This would indeed improve the user experience by making it easier to identify what has changed across registration versions. Currently, when there is a conflict in task structure during registration, the Flyte codebase generates an error message using the The task registration process involves creating a The comparison of task structures during the registration process is not explicitly handled in the Flyte codebase based on the provided context. However, the serialization of task templates for the purpose of comparison during the registration process is handled using the Protocol Buffers (protobuf) library. The protobuf library provides methods like To implement your feature request, we could enhance the error handling to include a comparison of the current and previous versions of the task template. This could be done by serializing both versions using the protobuf library and then comparing the serialized data. If there are any differences, these could be highlighted in the error message. This would require changes to the I hope this provides some insight into how your feature request could be implemented. If you have any further questions or need more clarification, please let me know. Sources
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research. Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. If you want to continue the conversation, start your reply with @dosu-bot. |
You can assign this to me, pointers on how to get started is very much appreciated! |
Hi, @katrogan Wanna making sure of few things before starting a PR. Thank you~ 1.
|
I think it'd be hard to diff the source code although that would be spectacular, but the diff check performed on the server doesn't even evaluate the source code so in this case it's not super relevant Ideally we should diff across the task spec (like you dumped!) since that's used to compute the digest that ultimately determines whether the structure has changes across (re-)registration
For example, this where we initialize the error message in flyteadmin code: flyte/flyteadmin/pkg/errors/errors.go Lines 112 to 126 in 962d458
|
What if we just show |
@austin362667 can we close this out? |
Certainly! Thank you, Katrina. |
thank you @austin362667 for all your work in improving this!! |
Motivation: Why do you think this is important?
It's difficult as a user when I try to register Flyte inventory and get back
but I can't tell what's changed in my local version of the task.
Since we already store the registered task template and have the current serialized version of the task template we're trying to register, it would be super slick if flytekit (pyflyte) could compute what parameters in the template changed across registration and highlight that to the end user. (same for workflows and launch plans)
Goal: What should the final outcome look like, ideally?
Should be straightforward to identify what has changed across registration versions when the back-end blocks a re-registration attempt
Describe alternatives you've considered
Current error response code user experience
Propose: Link/Inline OR Additional context
Much like we use json marshalling to compute the hash, we could just json serialization to compute the delta here.
No response
Are you sure this issue hasn't been raised already?
Have you read the Code of Conduct?
The text was updated successfully, but these errors were encountered: