From 293bd4493a040631bdcaba06a9df2da2ef67aa7f Mon Sep 17 00:00:00 2001 From: Miguel Salazar de Troya Date: Wed, 22 Apr 2026 13:38:19 +0200 Subject: [PATCH] build: declare pymbolic and platformdirs, drop pycparser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Firedrake imports pymbolic (firedrake/mg/kernels.py, firedrake/slate/slac/kernel_builder.py, pyop2/codegen/rep2loopy.py, pyop2/types/dat.py) and platformdirs (firedrake/scripts/firedrake_clean.py, the firedrake-clean console script), but neither was declared in [project.dependencies]. They were pulled in transitively via loopy and pytools, so uv sync / poetry treated them as unused and removed them, breaking the installed environment (issue #4961). Also drop pycparser from [project.dependencies] — it is not imported anywhere in firedrake/, pyop2/, or tsfc/. petsc4py is intentionally left out of this change; it remains commented alongside the other TODO RELEASE entries and will be declared when the next PETSc release pin is applied. Fixes #4961 Co-Authored-By: Claude Opus 4.7 (1M context) --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 16988b9366..d97dc857c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,10 +35,11 @@ dependencies = [ # "petsc4py==3.24.5", "petsctools @ git+https://github.com/firedrakeproject/petsctools.git@main", "pkgconfig", + "platformdirs", "progress", + "pymbolic", # TODO RELEASE "pyadjoint-ad @ git+https://github.com/dolfin-adjoint/pyadjoint@master", - "pycparser", "pytools[siphash]", "requests", "scipy",