-
Notifications
You must be signed in to change notification settings - Fork 143
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
Allow scipy>=1.13 #270
Allow scipy>=1.13 #270
Conversation
Old versions of setuptools depend on the `pkgutil` standard library module, which is slated to be removed.
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.
Hi Kale,
Thank you a lot for contributing to pymanopt!
@@ -15,6 +15,9 @@ jobs: | |||
- "3.8" | |||
- "3.9" | |||
- "3.10" | |||
- "3.11" | |||
- "3.12" | |||
- "3.x" |
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.
What does 3.x
mean, and why do you need it?
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.
3.x
does not pass. Can you remove it?
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.
3.x
means "the most recent version of python". Right now, 3.x
is specifically 3.12.3
, which is the same as 3.12
. So getting rid of 3.x
wouldn't solve the problem, because the 3.12
test would fail for the same reason.
I looked into the failure, though, and I'm pretty sure it was caused by a too-old version of setuptools
.
Python 3.12 requires setuptools>=66.1.0
(see pypa/setuptools#3685), but the version of setuptools
used for CI was pinned to 65.6.3
. Note that this is actually the same problem I tried to address in d6bbca6, but in that commit I only updated the setuptools
version used to install pymanopt
itself. I didn't notice that there was another pin specifically for CI. I just pushed a commit that updates this pin; hopefully that will work.
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.
Thanks a lot for having looked at this!
I looked into #269 a little more closely, and I found that the test suite passes with scipy 1.13, but not with 1.12. I think this is due to the fact that 1.13 includes a fix for scipy/scipy#16792.
Given this, I adjusted the scipy dependency version specifier to allow <=1.9 or >=1.13. (More specifically, I excluded versions 1.10, 1.11, and 1.12.) This allows pymanopt to be successfully installed for python 3.12.
I also configured GitHub Actions to run the test suite on the most recent version of python, which should hopefully catch errors like this sooner in the future.