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

We need to deal with compatibility between this kit and CBFlib #19

Open
yayahjb opened this issue May 27, 2021 · 3 comments
Open

We need to deal with compatibility between this kit and CBFlib #19

yayahjb opened this issue May 27, 2021 · 3 comments

Comments

@yayahjb
Copy link
Collaborator

yayahjb commented May 27, 2021

This kit has a link to a 2018 CBFlib 0.9.6 kit. The 2021 CBFlib 0.9.7 kit i]with hdf5 1.12 support and many fewer warnings is nearly done. Keeping an obsolete version going is in nobody's interests. How do we resolve this both for the near term and the long term.

@graeme-winter
Copy link

@yayahjb the intention behind this was to contrbute towards conda install dials - we can conda install cctbx however this does not include the dependencies necessary for dxtbx. @ndevenish identified that within dials we only really depend on the pycbf bindings rather than directly on CBFlib -> made this release kit for conda based on the most recent release of CBFlib.

One of the key requirements of conda is that packages are made from releases rather than the current state of a branch - it is also the case that these should be as close as possible in name, intent etc. to the source of the code as possible hence naming this pycbf and versioning accordingly - it is my understanding that this is entirely within the spirit of both conda and the licensing used for CBFlib.

I would anticipate an update to this package following an updated release of CBFlib however if there are hard dependencies on HDF5 1.12 libraries this may prove to be more complex.

I hope this helps to clarify the situation. While this version may be obsolete it does allow conda install pycbf in a way which was previously impossible, so it is evidently in some people's interests.

@ndevenish
Copy link
Member

ndevenish commented May 29, 2021

Graeme is correct - a key requirement of conda-forge is that it build off of a direct release, rather than whatever the main branch commit is at the time. 0.9.6 is at time of writing this the current "official" version - so the only one that we can build from.

We'll of course be happy to update to 0.9.7 when it's available.

Meanwhile, python3 has never been officially supported by pycbf - there was last year some debian effort to get pycbf working (see dials/cbflib#18), but they ran into the same SWIG_PYTHON_STRICT_BYTE_CHAR issues that we did - dials/cbflib#19 and #2 (both the same changes) should fix this cleanly, but implicitly cause a minor API break if people have routed around the problem - like we did in cctbx/dxtbx@44b6d72. To maintain initial compatibility with 0.9.6, we decided not to put this in, though did put in #4 for some improvement - functions that take char * can now accept either bytes or str.

Regarding HDF5 - the pycbf subset without it seemed a good target for initial distribution - it's 100% certainty that if anyone is using it, they've compiled it themselves, and we've also never compiled the HDF5 parts in dials or cctbx - so starting with a working minimum seem reasonably safe. Since this is explicitly not intended for linking to in a compiled sense - there's no risk of anyone using it for that, and if/when a full conda-forge cbflib package is available we can just switch to linking to that directly, keeping the python/non-python parts separate. (the cbf_H5* functions have never been exposed in pycbf, but I don't know if the higher level library interacts with HDF5 directly).

As previously offered, we are happy to discuss the possibility of assisting with maintenance and porting.

@yayahjb
Copy link
Collaborator Author

yayahjb commented May 29, 2021 via email

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

3 participants