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