Skip to content
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

Looking for forward/backward guarantees between versions #479

Open
ryanthompson591 opened this issue Aug 16, 2022 · 1 comment
Open

Looking for forward/backward guarantees between versions #479

ryanthompson591 opened this issue Aug 16, 2022 · 1 comment

Comments

@ryanthompson591
Copy link

I'm unable to find information about forwards/backwards compatibility expectations between versions of cloudpickle.

For example if I dump data encoded in version 1.4 of cloud pickle should version 1.5 of cloudpickle be able to decode it?

From my reading it seems like there should be expectation, is that right? If so ideally that could be marked in the readme.

Relate issue:
#126

@pierreglaser
Copy link
Member

Provided that the only thing that changes in the two hypothetical de-serialization environment you're thinking about, the only reason (I'm seeing) that would cause loading files created using an old version of cloudpickle using a newer one would be a change in behavior/signature of objects reconstructors used by cloudpickle between the two versions. This situation has happened in the past - we've tackled the most recent cases by following some form of deprecation cycle of old pickle files, see #368: so in that case, an 'old' pickle file relying on removed/deprecated function would remain compatible for loading using cloudpickle for a few more minor releases, although this deprecation is best-effort only. It would be worth adding a paragraph about this in the docs, that currently only discuss the case of larger environment changes (different Python versions, a case we don't have control over since cloudpickle relies on python internals, that can change over time).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants