-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
MAINT, REL: Prepare for SciPy 1.13.0 "final" (proposing to skip RC2 for Numpy 2 series support) #20375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MAINT, REL: Prepare for SciPy 1.13.0 "final" (proposing to skip RC2 for Numpy 2 series support) #20375
Conversation
Co-Authored-By: Elmar Zander <elmar.zander@googlemail.com>
* add missing dict methods to DOK and tests * turn off some dict dunders for dok_array * tweak tests
* BUG: Optimize: NewtonCG min crashes with xtol=0 The minimize function crashes if `xtol` is set to `0`. This is because the initial value of a loop variable is `2 * xtol`, which is intended to ensure the loop runs at least once. However, if `xtol = 0` then the loop never runs, a variable isn't instantiated that is used outside of the loop, and an `UnboundLocalError` is raised. To fix this, the initial value of the loop variable is set to the max float value. * BUG: Optimize: UnboundLocalError for xtol=0 NCG Corrected error from previous rework when switching to `np.linalg.norm` that introduced the possibility of the unbound variable error. * TST: Optimize: NewtonCF Minimize when xtol=0 Regression test for scipygh-20214 which addressed an issue in the Newton CG method which would raise an UnboundLocalVariable error if `xtol` was set to zero. It also ensures the method finds the solution in this case. * MAINT: Add comment to explain initial value Comment added to explain the purpose of setting `update_l1norm` to the max float value - this is to ensure the preceding while loop executes at least once. Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com> * TST: Test solution value as well as success This is for the `xtol=0` test in the Newton CG minimize method. * TST: Explicitly extract val from array --------- Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
* related to scipygh-20300, though awaits `conda-forge` testing on old MacOS versions for actual confirmation of fix * pulls in changes described at mreineck/pocketfft#11 and scipy/pocketfft#2 * I'm honestly not sure how much we gain by being conservative and not just turning the code path off entirely (mreineck/pocketfft@33ae5dc); perhaps there are some performance advantages or something, but if we have any more trouble with this we should obviously just do that (and I suspect that's what NumPy should do for numpy/numpy#25940) [skip cirrus] [skip circle]
See scipy#16930 for discussion. closes scipygh-16930
This was introduced in scipygh-20193; no longer needed with pybind11 2.12.0
linalg.svd with too large matrices may segfault if max(m, n)*max(m, n) > int_max on large-memory machines (on smaller memory machines it may fail with a MemoryError instead). The root cause is an integer overflow in indexing 2D arrays, deep in the LAPACK code. Thus, detect a possible error condition and bail out early.
Co-authored-by: Pearu Peterson <pearu.peterson@gmail.com>
…e in `scalar_search_wolfe2`
* Converting amos to std::complex * Define M_PI if not available (for windows) * Bump test tolerance --------- Co-authored-by: izaid <hi@irwinzaid.com> Co-authored-by: Albert Steppi <albert.steppi@gmail.com>
* Fixes scipy#20294. * Pull in new OpenBLAS binaries as discussed in the above issue, to solve a bug that affects downstream consumers like `scikit-learn`. * Some additional shims were needed: bumping `cibuildwheel` to improve GitHub actions MacOS M1 runner support, and `openblas_support` module needed an adjustment to process out an apparent syntax error in the pkg-config file for openblas that we pull in from upstream.
…ate.RBFInterpolator` (scipy#20364) * BUG: optimize: Fix wrong warning message if degree=-1 in interpolate.RBFInterpolator * BUG: optimize: add a comment for test
* Prepare for SciPy `1.13.0` "final" release instead of RC2 given urgency of supporting NumPy 2 series. * Remove note about SciPy `1.13.0` not being released yet in the release notes, and update the `1.13.0` release notes to reflect another bump in the OpenBLAS version vendored in for PyPI wheels. * The usual version bumps removing `rc2` version flags, and author/pr/issue list updates.
|
I agree with the looming urgency of the matter but I'd say please take your time so that we don't create a self-inflicting stress for you. No problem with skipping RC2 for me. |
* attempt wheel build since regular CI is passing (empty commit) [wheel build]
|
Regular CI was passing, full wheel build test started. |
|
All green with a few restarts. I'll let this sit overnight so there's a bit of time for comments or objections. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks Tyler! I added a couple of very minor comments, but those seem optional to fix and don't even require retesting.
doc/source/release/1.13.0-notes.rst
Outdated
| * `#19774 <https://github.com/scipy/scipy/issues/19774>`__: DOC: Detail what "concatenate" means in the context of \`spatial.transform.Rotation.concatenate\` | ||
| * `#19799 <https://github.com/scipy/scipy/issues/19799>`__: DOC: array types: update array validation guidance | ||
| * `#19813 <https://github.com/scipy/scipy/issues/19813>`__: BUG: typo in specfun.f? | ||
| * `#19819 <https://github.com/scipy/scipy/issues/19819>`__: BUG: In RPFInterpolator, wrong warning message if degree=-1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very minor, typo: RPFInterpolator -> RBFInterpolator (I fixed the issue title itself just now)
doc/source/release/1.13.0-notes.rst
Outdated
| - The Modified Akima Interpolation has been added to | ||
| ``interpolate.Akima1DInterpolator``, available via the new ``method`` | ||
| argument. | ||
| - New method ``BSpline.insert_knot`` inserts a knot into a ``BSpline` instance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very minor: missing a second backtick behind BSpline
| reformat_pkg_file(target_path=target_path) | ||
|
|
||
|
|
||
| def reformat_pkg_file(target_path): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: if you're pushing another comment, perhaps add a comment that this is simple typo that is already fixed upstream in openblas#4594
* Fix a few typos and add a missing comment based on code review. [docs only]
|
I addressed Ralf's comments and the docs build still passed after that. I manually re-read the diff and didn't find anything accidentally pulled in. I did notice one new test that seems to use the "old" rather than newer/scoped NumPy random machinery, and one new error message code path with a typo in the message, but I don't think those merit additional attention for now. |
|
alright, starting release process, what could possibly go wrong |
This PR contains a number of backports outlined below, and tentatively aims to position us to skip RC2 and just right to SciPy
1.13.0"final" because of the urgency of supporting the ecosystem around NumPy2.0.0support/wheels. I'll add a checklist item below for hearing objections/last-minute changes related to this acceleration of pace. Locally, this branch passed full suite alongside NumPy2.0.0rc1and the full doc build passed locally as well.Backports Included (so far):
pyproject.tomlwas already updated on rel branch)optimize.scalar_search_wolfe2#20350main, to mitigate risk)interpolate.RBFInterpolator#20364TODO: