You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make uv resolve gpcca-fast without compiling PETSc (#86)
petsc4py/slepc4py compute their metadata dynamically at build time, so any
bare `uv sync`/`uv run`/`uv lock` compiled PETSc from source just to resolve
the dependency universe — and that source build fails on machines without a
system BLAS on the linker path (e.g. isolated CI/uv build envs), where PETSc
configure errors with "Could not find a functional BLAS".
Add [[tool.uv.dependency-metadata]] entries mirroring the deps petsc4py/
slepc4py inject at build time, so uv resolves them from static metadata
without ever building (resolves in ~5s). PETSc/SLEPc now compile only when
the gpcca-fast group is actually installed.
Also correct the (copied-from-CellRank) source-build recipe in the group
comment: the documented options provide no BLAS and fail here; document the
pre-built conda-forge/pixi path as the recommended install and a shared-BLAS
source build as the fallback.
uv.lock stays gitignored (library convention; hatch does not use it) — the
static metadata is what unblocks resolution, so no lockfile is required.
Local checks remain petsc-free via `hatch test` (features dev+test), which
never pulls this dependency group.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments