Skip to content

Fix nutils version specs in requirements#759

Merged
MakisH merged 2 commits intodevelopfrom
fix-nutils-version-specs
Apr 1, 2026
Merged

Fix nutils version specs in requirements#759
MakisH merged 2 commits intodevelopfrom
fix-nutils-version-specs

Conversation

@fsimonis
Copy link
Copy Markdown
Member

@fsimonis fsimonis commented Apr 1, 2026

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 ==7 requests 7.0

@MakisH Please have a look how bad this is with respect to the systemtests.

Checklist:

  • I added a summary of any user-facing changes (compared to the last release) in the changelog-entries/<PRnumber>.md.
  • I will remember to squash-and-merge, providing a useful summary of the changes of this PR.

Copy link
Copy Markdown
Member

@MakisH MakisH left a comment

Choose a reason for hiding this comment

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

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)

@MakisH MakisH marked this pull request as ready for review April 1, 2026 14:44
@MakisH MakisH merged commit fd8e438 into develop Apr 1, 2026
7 of 9 checks passed
@MakisH MakisH deleted the fix-nutils-version-specs branch April 1, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants