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

Support sundials<= 6.5 in cantera 3.0 #33

Closed
Naikless opened this issue Nov 9, 2023 · 5 comments
Closed

Support sundials<= 6.5 in cantera 3.0 #33

Naikless opened this issue Nov 9, 2023 · 5 comments
Labels
question Further information is requested

Comments

@Naikless
Copy link

Naikless commented Nov 9, 2023

Comment:

As discussed here, being able to use older versions of sundials can be useful to increase compatibility with other packages, such as scikits.odes.

There are feedstocks that support more than one version of sundials, e.g. pycvodes which provides versions for both sundials 6.4 and 6.6.

Currently, Cantera 3.0 as provided by conda-forge is pinned to sundials 6.6.*

Can/Should this be relaxed?

@Naikless Naikless added the question Further information is requested label Nov 9, 2023
@bryanwweber
Copy link
Member

Thanks for providing the example! I looked at their recipe and I just see that sundials is not specified to a particular version. I don't have conda installed at the moment, so can you just confirm that it's the same version of pycvodes that supports both versions of sundials?

@conda-forge/core Sorry to ping you all, not sure who else to ask. Is there a policy for supporting multiple versions of compiled dependencies (sundials in this case)? I assume we'll have to recompile/relink against the other versions of sundials that we want to support, is that the case? Thanks!

@h-vetinari
Copy link
Member

Is there a policy for supporting multiple versions of compiled dependencies (sundials in this case)?

If it's necessary during a transition, then that's OK. Just not forever -- eventually, consuming packages are expected to move to the newest supported version.

I assume we'll have to recompile/relink against the other versions of sundials that we want to support, is that the case?

You can build cantera for both versions of sundials by removing the ==6.6 everywhere in meta.yaml, then adding:

sundials:
  - "6.5"
  - "6.6"

in conda_build_config.yaml and then letting the bot rerender the recipe. That should build everything against both sundials versions (which doubles your CI jobs too).

@Naikless
Copy link
Author

I don't have conda installed at the moment, so can you just confirm that it's the same version of pycvodes that supports both versions of sundials?

This is the output of conda search -i conda-forge::pycvodes=0.14.2:

Loading channels: done
pycvodes 0.14.2 py310h201682a_0
-------------------------------
file name   : pycvodes-0.14.2-py310h201682a_0.conda
name        : pycvodes
version     : 0.14.2
build       : py310h201682a_0
build number: 0
size        : 391 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py310h201682a_0.conda
md5         : 645b33196900b5f5ce1f4f5b40ba2bdf
timestamp   : 2022-12-06 17:32:06 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.21.6,<2.0a0
  - python >=3.10,<3.11.0a0
  - python_abi 3.10.* *_cp310
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py310h201682a_1
-------------------------------
file name   : pycvodes-0.14.2-py310h201682a_1.conda
name        : pycvodes
version     : 0.14.2
build       : py310h201682a_1
build number: 1
size        : 391 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py310h201682a_1.conda
md5         : 4a9d8778ff7d6d424448d10a0b6f2cc0
timestamp   : 2022-12-06 19:01:24 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.21.6,<2.0a0
  - python >=3.10,<3.11.0a0
  - python_abi 3.10.* *_cp310
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py310h201682a_2
-------------------------------
file name   : pycvodes-0.14.2-py310h201682a_2.conda
name        : pycvodes
version     : 0.14.2
build       : py310h201682a_2
build number: 2
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py310h201682a_2.conda
md5         : 9d2fcc90aed55d352c949b9855f66feb
timestamp   : 2022-12-06 15:31:49 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.21.6,<2.0a0
  - python >=3.10,<3.11.0a0
  - python_abi 3.10.* *_cp310
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py310h275d71c_2
-------------------------------
file name   : pycvodes-0.14.2-py310h275d71c_2.conda
name        : pycvodes
version     : 0.14.2
build       : py310h275d71c_2
build number: 2
size        : 391 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py310h275d71c_2.conda
md5         : 834952a07604a233f76725429645c714
timestamp   : 2023-10-09 12:53:51 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.22.4,<2.0a0
  - python >=3.10,<3.11.0a0
  - python_abi 3.10.* *_cp310
  - setuptools
  - sundials >=6.6.1,<6.7.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vc14_runtime >=14.29.30139


pycvodes 0.14.2 py311h232c3ab_0
-------------------------------
file name   : pycvodes-0.14.2-py311h232c3ab_0.conda
name        : pycvodes
version     : 0.14.2
build       : py311h232c3ab_0
build number: 0
size        : 396 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py311h232c3ab_0.conda
md5         : d7a3f4ad2f138de303466e625c1638ea
timestamp   : 2022-12-06 17:35:50 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.23.5,<2.0a0
  - python >=3.11,<3.12.0a0
  - python_abi 3.11.* *_cp311
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py311h232c3ab_1
-------------------------------
file name   : pycvodes-0.14.2-py311h232c3ab_1.conda
name        : pycvodes
version     : 0.14.2
build       : py311h232c3ab_1
build number: 1
size        : 398 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py311h232c3ab_1.conda
md5         : ce6ce8591e944d16d7114b822a166921
timestamp   : 2022-12-06 19:00:57 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.23.5,<2.0a0
  - python >=3.11,<3.12.0a0
  - python_abi 3.11.* *_cp311
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py311h232c3ab_2
-------------------------------
file name   : pycvodes-0.14.2-py311h232c3ab_2.conda
name        : pycvodes
version     : 0.14.2
build       : py311h232c3ab_2
build number: 2
size        : 396 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py311h232c3ab_2.conda
md5         : b953aceba261cba45e425c4296db2940
timestamp   : 2022-12-06 15:28:28 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.23.5,<2.0a0
  - python >=3.11,<3.12.0a0
  - python_abi 3.11.* *_cp311
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py312h586abc3_2
-------------------------------
file name   : pycvodes-0.14.2-py312h586abc3_2.conda
name        : pycvodes
version     : 0.14.2
build       : py312h586abc3_2
build number: 2
size        : 395 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py312h586abc3_2.conda
md5         : efb2d7721a40e6e76830e45f5a10551c
timestamp   : 2023-10-09 12:56:31 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.26.0,<2.0a0
  - python >=3.12,<3.13.0a0
  - python_abi 3.12.* *_cp312
  - setuptools
  - sundials >=6.6.1,<6.7.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vc14_runtime >=14.29.30139


pycvodes 0.14.2 py38h06063f0_0
------------------------------
file name   : pycvodes-0.14.2-py38h06063f0_0.conda
name        : pycvodes
version     : 0.14.2
build       : py38h06063f0_0
build number: 0
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py38h06063f0_0.conda
md5         : ad4b1f491c4f0c3870273a6b665b7253
timestamp   : 2022-12-06 17:30:20 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.8,<3.9.0a0
  - python_abi 3.8.* *_cp38
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py38h06063f0_1
------------------------------
file name   : pycvodes-0.14.2-py38h06063f0_1.conda
name        : pycvodes
version     : 0.14.2
build       : py38h06063f0_1
build number: 1
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py38h06063f0_1.conda
md5         : bae2efd95e384ff9efff48bda5ab760c
timestamp   : 2022-12-06 18:56:55 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.8,<3.9.0a0
  - python_abi 3.8.* *_cp38
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py38h06063f0_2
------------------------------
file name   : pycvodes-0.14.2-py38h06063f0_2.conda
name        : pycvodes
version     : 0.14.2
build       : py38h06063f0_2
build number: 2
size        : 391 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py38h06063f0_2.conda
md5         : 09de26aa45a71b86a3c5226e59a57fee
timestamp   : 2022-12-06 15:46:55 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.8,<3.9.0a0
  - python_abi 3.8.* *_cp38
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py38ha2654e6_2
------------------------------
file name   : pycvodes-0.14.2-py38ha2654e6_2.conda
name        : pycvodes
version     : 0.14.2
build       : py38ha2654e6_2
build number: 2
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py38ha2654e6_2.conda
md5         : 77152444a0e20ea2b7bfe2d43548bb58
timestamp   : 2023-10-09 12:58:46 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.22.4,<2.0a0
  - python >=3.8,<3.9.0a0
  - python_abi 3.8.* *_cp38
  - setuptools
  - sundials >=6.6.1,<6.7.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vc14_runtime >=14.29.30139


pycvodes 0.14.2 py38hbcc6845_1
------------------------------
file name   : pycvodes-0.14.2-py38hbcc6845_1.conda
name        : pycvodes
version     : 0.14.2
build       : py38hbcc6845_1
build number: 1
size        : 378 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py38hbcc6845_1.conda
md5         : 2b29c94636b83c813d742b555d7b9149
timestamp   : 2022-12-06 18:59:30 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - pypy3.8 >=7.3.9
  - python >=3.8,<3.9.0a0
  - python_abi 3.8 *_pypy38_pp73
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py39h65b29b0_1
------------------------------
file name   : pycvodes-0.14.2-py39h65b29b0_1.conda
name        : pycvodes
version     : 0.14.2
build       : py39h65b29b0_1
build number: 1
size        : 379 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39h65b29b0_1.conda
md5         : 094e59042cc17db7a72ac7cc3427fe2e
timestamp   : 2022-12-06 18:56:09 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - pypy3.9 >=7.3.9
  - python >=3.9,<3.10.0a0
  - python_abi 3.9 *_pypy39_pp73
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py39h8b3eb99_2
------------------------------
file name   : pycvodes-0.14.2-py39h8b3eb99_2.conda
name        : pycvodes
version     : 0.14.2
build       : py39h8b3eb99_2
build number: 2
size        : 395 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39h8b3eb99_2.conda
md5         : 7ffbe79ca9382a6c491298e1e00c3f9e
timestamp   : 2023-10-09 12:50:50 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.22.4,<2.0a0
  - python >=3.9,<3.10.0a0
  - python_abi 3.9.* *_cp39
  - setuptools
  - sundials >=6.6.1,<6.7.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vc14_runtime >=14.29.30139


pycvodes 0.14.2 py39hebb7d7f_2
------------------------------
file name   : pycvodes-0.14.2-py39hebb7d7f_2.conda
name        : pycvodes
version     : 0.14.2
build       : py39hebb7d7f_2
build number: 2
size        : 379 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39hebb7d7f_2.conda
md5         : 1843282af300e5f6e5a52bf8421a9c12
timestamp   : 2023-10-09 12:58:45 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.22.4,<2.0a0
  - pypy3.9 >=7.3.13
  - python >=3.9,<3.10.0a0
  - python_abi 3.9 *_pypy39_pp73
  - setuptools
  - sundials >=6.6.1,<6.7.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vc14_runtime >=14.29.30139


pycvodes 0.14.2 py39hf9d5b36_0
------------------------------
file name   : pycvodes-0.14.2-py39hf9d5b36_0.conda
name        : pycvodes
version     : 0.14.2
build       : py39hf9d5b36_0
build number: 0
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39hf9d5b36_0.conda
md5         : 2f42d8f61ce641cd593fab9ddd729495
timestamp   : 2022-12-06 17:31:59 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.9,<3.10.0a0
  - python_abi 3.9.* *_cp39
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py39hf9d5b36_1
------------------------------
file name   : pycvodes-0.14.2-py39hf9d5b36_1.conda
name        : pycvodes
version     : 0.14.2
build       : py39hf9d5b36_1
build number: 1
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39hf9d5b36_1.conda
md5         : 457ea609d7000081b6fbfd9ed5e2c09b
timestamp   : 2022-12-06 18:57:58 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.9,<3.10.0a0
  - python_abi 3.9.* *_cp39
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139


pycvodes 0.14.2 py39hf9d5b36_2
------------------------------
file name   : pycvodes-0.14.2-py39hf9d5b36_2.conda
name        : pycvodes
version     : 0.14.2
build       : py39hf9d5b36_2
build number: 2
size        : 392 KB
license     : BSD-2-Clause
subdir      : win-64
url         : https://conda.anaconda.org/conda-forge/win-64/pycvodes-0.14.2-py39hf9d5b36_2.conda
md5         : 1fc0a1e5d9a84bd89e795338d08f5fd4
timestamp   : 2022-12-06 15:28:50 UTC
dependencies:
  - libblas >=3.9.0,<4.0a0
  - liblapack >=3.9.0,<4.0a0
  - numpy >=1.20.3,<2.0a0
  - python >=3.9,<3.10.0a0
  - python_abi 3.9.* *_cp39
  - setuptools
  - sundials >=6.4.1,<6.5.0a0
  - ucrt >=10.0.20348.0
  - vc >=14.2,<15
  - vs2015_runtime >=14.29.30139

@bryanwweber
Copy link
Member

Thanks for the reply @h-vetinari!

If it's necessary during a transition, then that's OK. Just not forever -- eventually, consuming packages are expected to move to the newest supported version.

This is being asked for here to support a second dependency which hasn't yet been built for SUNDIALS 6.6 (specifically scikits.odes). I suspect our answer is to not add this support right now, since we are only using this dependency for a single example 🤔

@Naikless

This is the output of...

Thanks for the example! I don't see how they have configured to build for multiple SUNDIALS versions 🤔 It doesn't appear in their recipe nor in any of the other configuration or templates that I can see. Odd.

@bryanwweber
Copy link
Member

We've decided that this is not something we want to pursue at this time, so I'm going to close this issue. Thanks for opening it @Naikless!

@bryanwweber bryanwweber closed this as not planned Won't fix, can't repro, duplicate, stale Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants