-
Notifications
You must be signed in to change notification settings - Fork 150
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
Older versions of anndata throw unintuitive errors when trying to read newer formats #698
Comments
Hey, this is expected. What you're looking for would be forward compatibility. Sometime we update the format of an AnnData objects stored on disk. We can't really make older versions of the library know how to deal with this. We've actually added some internal features in the new version which should make having some form of forward compatibility easier in the future (even if it's just writing older versions of the schema). Is there a reason you'd need to keep using older versions of the library once this is released? Worst case we could make another release in the 0.7.x series with smaller forward compatible changes, but I'd need to know it's needed first. |
Thanks for your thoughtful response. This is indeed a big concern for us. We have a substantial amount of infrastructure that's using h5ads and we can't always upgrade everything in tandem. In addition, changes to the h5ad file format can break external tools, eg R code that is reading from these files using R hdf5 libraries. I understand it's useful to make changes to the h5ad file format periodically to make it better, but I'd suggest a few things to make sure doing so doesn't break the whole ecosystem:
Moving forward, I'd recommend:
|
Thanks for all the information! A number of the issues you raise are actually topics we're trying to address right now (and this release provides some solutions for), but it's very useful to get feedback on our approach.
Very aware of this. We're going for a fairly long release candidate version cycle (1 month at least) to make sure downstream packages have time to fix compatibility or at least pin dependencies/ error gracefully. Moving forward, we're looking at having selected set of tools to run integration tests against – but this will take some time/ resources.
The file format version is something that's new this version! How and when to warn users is an interesting issue though. This version throws a warning for very old anndata versions where we still have to "just know" how each element should be read in. But at how old do we need to warn (and how loudly)? Can be more explicit about this, #699
I am interested in having something more formal here. Possibly a bike shed schema? At the moment we have the on-disk format page in the docs. This does have information about every current encoding type (and has been updated for this release), but I haven't figured out a good way to present past encoding information. Recommendations welcome!
Will look into this. Another thing that has changed during this release cycle is us making a system for being able to have feature and bug fix branches. So, there may be unforeseen difficulties doing anything other than a commit off the last release. |
Thanks, @ivirshup for your detailed response! I should have started with: I know you're mostly single-handedly holding down the fort on anndata and we greatly appreciate your continued development here. I don't think we have a lot of spare capacity right now to help with implementation but would be happy to provide feedback on planning and PRs. |
Hey there, I recently noticed this issue. It's unfortunate and I think will stand in the way of wider AnnData adoption if not properly addressed, which would be a shame. I really like the AnnData abstraction and I'd like to see it stick around. Let me know if there's anything I can do, I'm a software engineer and I have some bandwidth to help contribute |
@ivirshup - you wrote in an earlier comment:
Other than introspecting on the encoding versions in the on-disk file format, is there a file format version that can be inspected for anndata 0.8? We want to be able to enforce anndata 0.8 for datasets being submitted to the cellxgene data portal in a future release. |
@ivirshup, one more consideration is adopting |
This issue has been automatically marked as stale because it has not had recent activity. |
I believe this has now been addressed for future versions of anndata through our encoding mechanism, so will close this. |
Not only future ones, #734 ended up in 0.9.0 |
Hi,
I wanted to get help on an error reading h5ads created by the
0.8.0rc
version of anndata. In my experience, h5ads that are created using0.8.0rc1
cannot be opened using olderanndata
versions.How to reproduce
In an environment with
0.8.0rc1
installed:In an environment with
0.7.*
installed (tested with 0.7.6 and 0.7.8)You get the following error:
I'm using
h5py==3.6.0
. Let me know if you need me to list anything else about my environment.Thanks!
The text was updated successfully, but these errors were encountered: