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

Firedrake TS import fails when used in Firedrake 2024-12 and latest Docker Hub image #23

Closed
vojtamolda opened this issue Dec 5, 2024 · 1 comment

Comments

@vojtamolda
Copy link
Contributor

Hello here!

I recently run into a problem with the 2024-12 tagged Docker Hub release of the Firedrake image. It doesn't work with the latest master commit 1186966 of the Firedrake TS package here.

The exact steps to reproduce the issue are below. Here's the stack trace I'm getting:

>>> import firedrake_ts
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/__init__.py", line 1, in <module>
    from .ts_solver import DAEProblem, DAESolver
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/ts_solver.py", line 10, in <module>
    from firedrake_ts.solving_utils import check_ts_convergence, _TSContext
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/solving_utils.py", line 6, in <module>
    from firedrake_configuration import get_config
ModuleNotFoundError: No module named 'firedrake_configuration'

From a quick look it seems like the firedrake_configuration package was removed and is not longer around. Firedrake project is in some kind of a transition towards being pip-installable.

Steps to reproduce the failure

First step is to pull and run the "official" Firedrake image from Docker Hub:

$> docker pull firedrakeproject/firedrake:2024-12
2024-12: Pulling from firedrakeproject/firedrake
Digest: sha256:5b11ae36694ec087d750e77d71b92d6504550bbf83c3d8b28ed2a05a3fd2ee26
Status: Image is up to date for firedrakeproject/firedrake:2024-12
docker.io/firedrakeproject/firedrake:2024-12

$> docker run -it firedrakeproject/firedrake:2024-12
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
firedrake@b00812a5f8df:~$

After starting the container one needs to fix a small issue where the Firedrake image can't import itself 🫨 because it's not in the venv Python path. This of course brings out the question of how they actually test their releases, but that's a story for another (rainy) day. Afterwards it's possible to activate the virtual environemnt baked into the image and install the latest commit of firedrake_ts through pip.

Once all that is done import firedrake_ts fails with the weird import error mentioned above.

firedrake@b00812a5f8df:~$ export PYTHONPATH=/home/firedrake/firedrake/src/firedrake

firedrake@b00812a5f8df:~$ source firedrake/bin/activate

(firedrake) firedrake@b00812a5f8df:~$ pip install git+https://github.com/IvanYashchuk/firedrake-ts.git@1186966053ff7ce04b80bc15c02f91f35c0ba476#egg=firedrake_ts
Collecting firedrake_ts
  Cloning https://github.com/IvanYashchuk/firedrake-ts.git (to revision 1186966053ff7ce04b80bc15c02f91f35c0ba476) to /tmp/pip-install-2y05weg7/firedrake-ts_0cb92f1b4e66409ba4a1f48a58cff3c0
  Running command git clone --filter=blob:none --quiet https://github.com/IvanYashchuk/firedrake-ts.git /tmp/pip-install-2y05weg7/firedrake-ts_0cb92f1b4e66409ba4a1f48a58cff3c0
  Running command git rev-parse -q --verify 'sha^1186966053ff7ce04b80bc15c02f91f35c0ba476'
  Running command git fetch -q https://github.com/IvanYashchuk/firedrake-ts.git 1186966053ff7ce04b80bc15c02f91f35c0ba476
  Resolved https://github.com/IvanYashchuk/firedrake-ts.git to commit 1186966053ff7ce04b80bc15c02f91f35c0ba476
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: firedrake_ts
  Building wheel for firedrake_ts (pyproject.toml) ... done
  Created wheel for firedrake_ts: filename=firedrake_ts-0.2-py3-none-any.whl size=11086 sha256=f5170e021b73c160b134a473666dde8e4c6605f54dafb12101dd0c0287b3a11e
  Stored in directory: /home/firedrake/.cache/pip/wheels/1f/8e/fe/338987c0df2e413adf3075c50dbb27dceca22cccc51c88598d
Successfully built firedrake_ts
Installing collected packages: firedrake_ts
Successfully installed firedrake_ts-0.2

(firedrake) firedrake@b00812a5f8df:~$ python
Python 3.12.3 (main, Nov  6 2024, 18:32:19) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import firedrake_ts
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/__init__.py", line 1, in <module>
    from .ts_solver import DAEProblem, DAESolver
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/ts_solver.py", line 10, in <module>
    from firedrake_ts.solving_utils import check_ts_convergence, _TSContext
  File "/home/firedrake/firedrake/lib/python3.12/site-packages/firedrake_ts/solving_utils.py", line 6, in <module>
    from firedrake_configuration import get_config
ModuleNotFoundError: No module named 'firedrake_configuration'
@IvanYashchuk
Copy link
Owner

I was traveling and noticed this issue too late. It's great that you were able to figure out the fix. Thank you!

(fixed in #24)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants