Open moorepants opened 1 year ago
The problem is that this recipe isn't noarch, so each Python version has to be built separately. The reason is that we depend on gmpy for convenience, but gmpy cannot be installed on Windows, and noarch packages do not support selectors in dependencies. If there's a way to get the best of both worlds here I would love to use it. There have been a lot of issues like this in the past that wouldn't be issues if this package were noarch.
One option would be to just remove gmpy as a dependency. People would have to install it manually, and most people probably don't know to do that. Installing it significantly improves the performance of some SymPy operations, which is why it's listed as a hard dependency here.
Either way, I think there is probably a way to trigger a build for an older version if you need 3.11 support. The latest version is built for 3.11 https://github.com/conda-forge/sympy-feedstock/pull/49.
I don't need to trigger the older build, but sometimes I'm in an conda env and I need an older version. 1.10 isn't that old and 3.11 isn't that new, so it was surprising it wasn't compatible.
I'll close this, it is clear why it is.
I guess the only option would be put gmpy in run_constrainted instead of as a hard dep.
To be completely fair, SymPy 1.9 was never even tested against Python 3.11 https://github.com/sympy/sympy/wiki/Release-Notes-for-1.9. It almost certainly does work just fine, though (new Python releases haven't broken SymPy in serious ways in a long time). In general, I'd say if you want to downgrade SymPy, you should just create a new environment for it. Conda is really good at doing that, and it's much cleaner than messing with your main environment so much.
conda-forge is working on an approach to make package like this that depend on platform-specific dependencies be able to still be noarch https://github.com/conda-forge/conda-forge.github.io/pull/1839.
I guess after #51 this will stop being an issue. We still don't have noarch builds for older versions so if that's important we will need to backport builds for them.
Solution to issue cannot be found in the documentation.
Issue
I tried to downgrade to SymPy 1.10 in a Python 3.11 conda env using mamba and I got:
It isn't clear to me where this
<3.10.0a0
comes from, as it isn't in the recipe. There is no reason I shouldn't be able to install older versions. SymPy 1.10 should work with Python 3.11 (at least mostly). Can we remove these upper pins?Installed packages
Environment info