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.