On Thursday, June 22, 2023 at 12:49:29 PM UTC-7 Francesco Biscani wrote:

On Fri, 9 Jun 2023 at 02:02, Matthias Koeppe <matthia...@gmail.com> wrote:

building binary wheels to be distributed on PyPI (in addition to the source 
distributions) will be one of the key steps in order to make it very 
user-friendly -- i.e., on par with doing "pip install scipy" on standard 
platforms.

It is normal practice of Python projects to create binary wheels and make 
them available on PyPI. There is sufficient mainstream infrastructure (such 
as https://github.com/pypa/cibuildwheel) that makes it easy.


What is your plan for dealing with sage's non-Python dependencies?

Binary wheels which bundle compiled non-Python dependencies using tools 
such as auditwheel are extremely fragile, as there is nothing preventing 
the user from installing a package which might bundle a different version 
of the same library, resulting in hard-to-debug erratic runtime errors due 
to ABI inconsistencies, symbol collisions, etc.


That's of course a valid concern and a well known weakness of Python 
packaging. In general, there is no mechanism to prevent users from shooting 
themselves in the foot. We can, however:
(1) keep the non-Python library dependencies of each of our distribution 
packages minimal (that's one of the reasons why the plan includes 
distribution packages that are keyed to a single library or set of 
libraries, like sagemath-flint); 
(2) test to ensure consistency with the published binary wheels of upstream 
packages (for example, gmpy2 for the gmp, mpfr, mpc libraries);
(3) work with upstream projects so that they have a consistent process for 
building wheel packages;
(4) avoid/remove sage-specific library glue when there are already dominant 
packages in the Python ecosystem that do this job (for 
example, https://github.com/sagemath/sage/pull/35368 replaces a custom 
Cython interface to the cbc library by the upstream cylp library).


-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/dab4c686-8791-4280-903c-5a982181a352n%40googlegroups.com.

Reply via email to