JuliaIO / JLD.jl

Saving and loading julia variables while preserving native types
MIT License
278 stars 55 forks source link

[urgent-fix-breakage] JLD depends on H5Zblosc #305

Closed mkitti closed 2 years ago

mkitti commented 2 years ago

@musm, We probably should have added the H5Zblosc dependency in 0.12.4 because dropping Blosc support is breaking for JLD.jl.

musm commented 2 years ago

This applies for hdf5 v.16 which we haven't released yet. Let's first get the appropriate HDF5 pr in and tagged then merge this.

mkitti commented 2 years ago

This needs to be merged before we release HDF5 0.16.x so no one ends up in a broken state with JLD 0.12.4, HDF5 0.16.0 , and no H5Zblosc like I just did. We're talking about JLD data corruption.

musm commented 2 years ago

Right, the problem was I too early added the v0.16 HDF5 dependency, in order to test the PRs in the HDF5.jl repo and that's already been tagged here on JLD.

musm commented 2 years ago

Hmm wouldn't be better to tag an intermediary release of JLD v0.12.5 with v0.16 removed. Right now this change would break across all versions since H5Zblosc is not tagged.

I think the best course of action is to tag v0.12.5 of JLD with HDF5 v0.16 removed and this PR reverted. Then after that, tag and release all the new HDF5 work then finally bump JLD here.

musm commented 2 years ago

I think the best course of action is to tag v0.12.5 of JLD with HDF5 v0.16 removed and this PR reverted. Then after that, tag and release all the new HDF5 work then finally bump JLD here.

So JLD 0.12.5 will be released with HDF5 0.16 removed. That should give enough time for it to propagated downstream to effectively make JLD 0.12.4 non-existent.

Then we need to sync the release of JLD 0.12.6 with HDF5 0.16 added to Project.toml (ideally first triggering the JLD 0.12.6 release and then the HDF5 v0.16 release right after) so they both get merged in the same package manager round.

The issue with tagging this release in that H5zblosc is not tagged yet and until we merge the appropriate HDF5 prs no one would be able to install JLD since it would complain about missing the H5zblosc filter package. I need a little extra time to go over the PR again and check final issues before making the v0.16 HDF5 release.

mkitti commented 2 years ago

We have to yank 0.12.4 I think for it to work as you suggest because the solution of installing JLD 0.12.4 and HDF5 0.16 withou H5Zblosc still exists.

We should release 0.12.6 that depends on both HDF5 0.16 and H5Zblosc. We can do that before we release HDF5 0.16 or H5Zblosc. No one will be able to install 0.12.6 from the registry until HDF5 0.16 and H5Zblosc are available. That's perfect.

If 0.12.3 is the only installable version of JLD, then that is what people will get from the registry when they request it (given that we yank 0.12.4)

musm commented 2 years ago

JLD 0.12.4 and HDF5 0.16 withou H5Zblosc still exists.

It exists, but how realistic a scenario would that occur, especially after all said changes are implemented? Yeah there'd be an issue with 0.12.4, but given v0.12.6, I'd hope no one would run into it.

Can you yank a version? I'm not aware if that is a possibility after a release.