Fix nutils version specs in requirements#759
Conversation
MakisH
left a comment
There was a problem hiding this comment.
The system tests show that the flow-over-heated-plate/solid-nutils passed. This run installed nutils 7.3 (previous runs were using 7.0), but using the cached treelog 1.0:
bottombar==1.0
mpi4py==4.1.1
numpy==1.26.4
nutils==7.3
pyprecice==3.3.1
setuptools==82.0.1
stringly==1.0b3
treelog==1.0
typing_extensions==4.15.0
Started on: Wed, 01 Apr 2026 14:02:07 +0000
Collecting setuptools (from -r requirements.txt (line 1))
Downloading setuptools-82.0.1-py3-none-any.whl.metadata (6.5 kB)
Collecting nutils~=7.3 (from -r requirements.txt (line 2))
Downloading nutils-7.3-py3-none-any.whl.metadata (6.5 kB)
Collecting numpy<2,>1 (from -r requirements.txt (line 3))
Downloading numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 2.5 MB/s eta 0:00:00
Collecting pyprecice~=3.0 (from -r requirements.txt (line 4))
Downloading pyprecice-3.3.1.tar.gz (172 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.2/172.2 kB 8.9 MB/s eta 0:00:00
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Collecting treelog<2,>=1.0b5 (from nutils~=7.3->-r requirements.txt (line 2))
Using cached treelog-1.0-py3-none-any.whl.metadata (374 bytes)
Collecting stringly<2,>=1.0b2 (from nutils~=7.3->-r requirements.txt (line 2))
Using cached stringly-1.0b3-py3-none-any.whl.metadata (2.1 kB)
Collecting bottombar==1.0 (from nutils~=7.3->-r requirements.txt (line 2))
Downloading bottombar-1.0-py3-none-any.whl.metadata (7.3 kB)
Collecting mpi4py (from pyprecice~=3.0->-r requirements.txt (line 4))
Using cached mpi4py-4.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_5_x86_64.whl.metadata (16 kB)
Collecting typing-extensions>=4.2 (from stringly<2,>=1.0b2->nutils~=7.3->-r requirements.txt (line 2))
Using cached typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Using cached setuptools-82.0.1-py3-none-any.whl (1.0 MB)
Downloading nutils-7.3-py3-none-any.whl (267 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 267.5/267.5 kB 11.6 MB/s eta 0:00:00
Downloading bottombar-1.0-py3-none-any.whl (6.9 kB)
Downloading numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.0/18.0 MB 64.0 MB/s eta 0:00:00
Using cached stringly-1.0b3-py3-none-any.whl (10 kB)
Using cached treelog-1.0-py3-none-any.whl (24 kB)
Using cached mpi4py-4.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_5_x86_64.whl (1.4 MB)
Using cached typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Building wheels for collected packages: pyprecice
Building wheel for pyprecice (pyproject.toml): started
Building wheel for pyprecice (pyproject.toml): finished with status 'done'
Created wheel for pyprecice: filename=pyprecice-3.3.1-cp312-cp312-linux_x86_64.whl size=679877 sha256=8d3dfc15a32e20dd744473262185fa8a2cff62950aa497e7941d522d8619e422
Stored in directory: /home/precice/.cache/pip/wheels/f5/ab/66/3eaa75a00c5e687e063c114dd2bc530f58860be06eacf622a1
Successfully built pyprecice
Installing collected packages: typing-extensions, setuptools, numpy, mpi4py, bottombar, treelog, stringly, pyprecice, nutils
Successfully installed bottombar-1.0 mpi4py-4.1.1 numpy-1.26.4 nutils-7.3 pyprecice-3.3.1 setuptools-82.0.1 stringly-1.0b3 treelog-1.0 typing-extensions-4.15.0
We could periodically flush the PIP cache and install new versions of all packages, but I would expect occasional numerical differences, which would be confusing if nothing changed in our packages. This is the usual question of how much of the environment should we fix when testing. If we want to catch compatibility issues before they reach users, we could have a separate periodically executed test that only checks for compatibility of bleeding edge packages (similar to the Arch-based tests in the core).
I think this PR is a good change for the tutorials. For the system tests, I don't see any issue.
(not sure if this is meant to still be a draft)
This PR fixes the requirements to allow using newer minor versions.
This allows the nutils maintainers to react to breaking future releases of their dependencies.
Concrete example is the 7.3 fixing the breaking treelog 2.0 release.
Note that
==7requests7.0@MakisH Please have a look how bad this is with respect to the systemtests.
Checklist:
changelog-entries/<PRnumber>.md.