Skip to content
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: version bounds for 1.11.0rc1 #18591

Merged

Conversation

tylerjereddy
Copy link
Contributor

  • the version bounds are easy to mess up--the reference conversation from the last release is linked below:
    MAINT: version bounds for 1.10.0rc1/relnotes fixes #17569

  • the adjustment of version strings to include i.e., rc1 is normally left to the REL commit proper during the release process

Other vague things on my mind include:

  • doc version switcher adjustments (I think I can get away with delaying those until later in the process)
  • NumPy 2.0 coming sooner than later--I'm not sure this really requires any special action at the time of writing--I suspect producing a helpful error message with a major version change is the behavior we want for now
  • this branch may eventually need to support Python 3.12

@tylerjereddy tylerjereddy added the maintenance Items related to regular maintenance tasks label May 30, 2023
@tylerjereddy tylerjereddy added this to the 1.11.0 milestone May 30, 2023
* the version bounds are easy to mess up--the reference conversation
from the last release is linked below:
scipy#17569

* the adjustment of version strings to include i.e., `rc1` is normally
left to the `REL` commit proper during the release process
@tylerjereddy
Copy link
Contributor Author

There's a segfault on alpine in CI: scipy/linalg/tests/test_decomp.py", line 996 in test_random_complex didn't check if that has happened on main recently yet.

The prerelease failure is working as I currently intend it: meson.build:57:2: ERROR: Problem encountered: SciPy requires Cython < 3.0. If we plan to backport support for 3.x (or are confident enough as-is), I can remove that I suppose...

@ilayn
Copy link
Member

ilayn commented May 30, 2023

you can ignore that segfault. I couldn't pinpoint the exact time but when multiple workers are fired, it runs out of memory somehow in the linalg tests. I already reduced the numbers on certain tests but I think it is dying because there are too many tests in that module ~3k LOC file.

@h-vetinari
Copy link
Member

I think Cython 3 compatibility would be good to have also on the 1.11 branch. We should be pretty close already, hopefully any relevant patches would be small and easy to backport.

Copy link
Member

@rgommers rgommers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Cython <3.0 looks correct to me, we are likely to see more breakage there so should exclude it. The Python 3.12 support could go either way; I suggest allowing it already because it likely works and early adopters are starting to build for it from source.

pyproject.toml Outdated Show resolved Hide resolved
setup.py Outdated Show resolved Hide resolved
* allow Python `3.12` based on reviewer
feedback
@tylerjereddy
Copy link
Contributor Author

Revised to allow Python 3.12 support.

@rgommers
Copy link
Member

I think Cython 3 compatibility would be good to have also on the 1.11 branch. We should be pretty close already, hopefully any relevant patches would be small and easy to backport.

To expand on my answer: we add a <3.0 upper bound because we want pip install scipy with scipy being built from source to work. So we add upper bounds to all dependencies to achieve that. It does not mean that we won't be able to backport fixes for 3.0 compat from main to 1.11.x, and if Cython 3.0 gets released and we do a bugfix release from the 1.11.x branch after that, we can enable it just fine.

@rgommers rgommers merged commit fa053c5 into scipy:maintenance/1.11.x May 31, 2023
20 of 23 checks passed
@tylerjereddy tylerjereddy deleted the treddy_1_11_version_pins branch May 31, 2023 11:10
@h-vetinari
Copy link
Member

To expand on my answer [...]

This is what I meant as well. 👍

@@ -53,6 +53,9 @@ endif
if not cy.version().version_compare('>=0.29.35')
error('SciPy requires Cython >= 0.29.35')
endif
if not cy.version().version_compare('<3.0')
error('SciPy requires Cython < 3.0')
endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't actually work exactly as intended unfortunately, because .version_compare does not deal with pre-releases. So a 3.0.0b3 version will choke on this check. Now, that may be intended since those pre-releases aren't really supported. However, the 3.0 release is expected soon and it actually does work. So I think we should remove this check again. We'll keep it in pyproject.toml, so by default users who pip install scipy and get a from-source build will get the latest 0.29.x version. But if they are explicitly using 3.0, let's let them do that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Items related to regular maintenance tasks
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants