Closed dhermes closed 5 months ago
Likely relevant here: https://gregoryszorc.com/blog/2023/10/30/my-user-experience-porting-off-setup.py/
(Having issues with sys.path
in setup.py
; it differs from within nox
and outside of nox
)
It seems like pip install --no-build-isolation .
is the trick here. (Though I think we should start listing numpy
as a build dependency.)
Any luck with supporting python 3.12?
@dhermes We would be very interested to get Python 3.12 support for bezier
. It currently blocks our internal library's upgrade to 3.12. It would be great if we could continue using bezier
, because we enjoy it.
I install locally with both Python 3.11 and 3.12, and compared unit test results. Both failed with the same few errors in test_triangle_triangle.py
which at least doesn't hint at Python 3.12 being (more) incompatible than 3.11.
@pd-nisse I have been quite busy recently but expect to have some free time soon to get this resolved. Thanks for the ping!
Luckily https://github.com/dhermes/bezier/pull/315#issuecomment-1785377348 seems to unlock the headscratching issue here.
As for failing functional tests, there may be accuracy issues (e.g. tests may need more wiggle room) for newer versions of NumPy. (A lot of code is dependent on the underlying C/C++/Fortran code AS WELL AS the compiler AS WELL AS the flags used to create redistributable binary wheels.) I'll be sure to look into it when I get this PR working!
@dhermes thanks for the news and great update!
Why do you plan to remove 3.9
support at the same time? Looking at EOL schedule it's not until Nov 2025.
https://devguide.python.org/versions/
[edit:] I just realize we can just pin the dependency to an older version for python 3.9 so we should be good.
Why do you plan to remove
3.9
support at the same time? Looking at EOL schedule it's not until Nov 2025. https://devguide.python.org/versions/
@pd-nisse My policy has been to support the 3 most recent Python versions. I unfortunately don't have much free time for maintaining this these days. (Separate but relevant, the Python packaging story around binary packages has had a lot of churn the last few years so things can be hard to keep up with.)
I'm happy to consider adding back 3.9 support if I hear enough requests from users, but
For related policies, see SPEC 0 — Minimum Supported Dependencies:
Support for Python versions be dropped 3 years after their initial release.
See Status of Python versions doc for release dates:
I install locally with both Python 3.11 and 3.12, and compared unit test results. Both failed with the same few errors in
test_triangle_triangle.py
which at least doesn't hint at Python 3.12 being (more) incompatible than 3.11.
@pd-nisse Got all tests green is this PR, but made sure to upgrade to NumPy 2.0 first (via #319 + #320)
I'll be fixing up .github/workflows/wheels.yaml
to ensure I can actually create wheels and source dist artifacts (to do a release) and then I'll be doing a release.
@pd-nisse https://pypi.org/project/bezier/2024.6.20/ is released and supports 3.12
Awesome, thanks for the quick turnaround @dhermes 🙇 I'll test it out on my side!
@dhermes I tested it with our project, but ran into issue because it now requires numpy>=2.0.0
. Some of our other dependencies have constraint numpy<2.0.0
😢
Is your constraint a hard requirement? I'm wondering if it could be loosened.
@pd-nisse Have you tried installing with --no-deps
so you can manage your own NumPy?
Given the usage of Cython-ized binary extension (_speedup.c
), I'm not entirely sure it's possible to support NumPy 1.x and 2.x at the same time. (I think some parts of the NumPy ABI may have changed.)
Hello @pd-nisse,
@dhermes I tested it with our project, but ran into issue because it now requires
numpy>=2.0.0
. Some of our other dependencies have constraintnumpy<2.0.0
😢 Is your constraint a hard requirement? I'm wondering if it could be loosened.
Can you share a list of those packages?
I'm wondering if it wouldn't be easier to add support for numpy>=2.0.0
to them.
Hey there, quick update: I was able to resolve it on my side. I tested our own package with numpy>=2.0.0
and all tests complete. So for Python 3.11 and lower, I continue using bezier==2023.7.28
with numpy<2.0.0
. For Python 3.12 and higher, I use bezier==2024.6.20
and numpy>=2.0.0
.
Thanks again for all the help!
Cheers @pd-nisse! Onward and upward to newer and bigger things!
Also remove support for Python 3.9