-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
VersionedSchema -> ObjectSchema #583
Conversation
Rather than rely on VersionedSchema to do version introspection, we will do it in the object deserializers
Handling unknowns gracefully by just ignoring them is excellent life advice that extends far beyond the Prefect library. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, wait on @cicdw input for merging
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made two absolutely trivial suggested changes (spelling), otherwise this looks good to me!
Co-Authored-By: jlowin <[email protected]>
Co-Authored-By: jlowin <[email protected]>
Two spelling errors on "older"... can't be a coincidence. My keyboard is out to get me. |
Create sqlite db on startup if it does not exist
Thanks for contributing to Prefect!
Please describe your work and make sure your PR:
CHANGELOG.md
(if appropriate)docs/outline.toml
for API reference docs (if appropriate)What does this PR change?
VersionedSchema
. The intent of this class was to create an explicit way of managing schemas across various versions of Prefect, allowing any Prefect version to work with objects from any other version. Unfortunately, it required too much work. To implement cross-version serialization, every single object would have to be reissued for any version of Prefect that introduced a schema change. Instead, we take out the versioning features and continue to use this base class (renamedObjectSchema
) for its useful automatic-deserialization functionality. We leave the__version__
field in place as a useful bit of informationWhy is this PR important?
Once flows are deployed, the version of Prefect used by the Flow may differ from versions of Prefect it communicates with. It's important that objects can be exchanged between the two versions no matter what.