Hi Olaf,

On 28/04/16 14:59, Olaf Walter wrote:

Dear easybuilders,

we jumped to eb 2.7, and our Python builds became incompatible. We think the cause is:

https://github.com/hpcugent/easybuild-easyblocks/pull/817

https://github.com/hpcugent/easybuild-easyblocks/issues/651

From the Python docs at https://docs.python.org/2/c-api/unicode.html:

Note that UCS2 and UCS4 Python builds are not binary compatible. Please keep this in mind when writing extensions or interfaces.

From the python.py easyblock:

# Need to be careful to match the unicode settings to the underlying python

The reasoning seems to be that the eb Python should be compatible with Python packages provided by the OS.

IMHO, this is less important than ensuring binary compatibility between Python releases that are built by different easybuild releases.

Actually I think, one of the benefits of easybuild is that the resulting binaries are not so much dependent on the underlying OS version. The introduced change achieves the opposite.


Can you elaborate on what you mean by "our Python builds became incompatible"?

What is incompatible with what, exactly?

The change you're pointing out only affects things if you reinstall the Python module itself; it does not affect installing individual Python packages.

One of the reasons why we use easybuild is to create reproducible software builds. For that scenario, would you recommend sticking with a frozen easybuild release? Please let me know what you think.


EasyBuild releases are backwards compatible with the releases before that (as long as the major version number (i.e. 2, now) is the same), with the exception of bug fixes.

For more strict reproducibility, you should probably stick to the same EasyBuild version, but then you'll miss out on new features, enhancements (like the significant speedups we've been working on for EasyBuild itself), and various bug fixes...


regards,

Kenneth

Reply via email to