Skip to content

Declare external build dependencies using PEP 725 - #1091

Open
garth-wells wants to merge 1 commit into
mainfrom
garth/external-dependencies
Open

garth-wells wants to merge 1 commit into
mainfrom
garth/external-dependencies

Conversation

@garth-wells

Copy link
Copy Markdown
Member

Closes #986.

PEP 735 dependency groups were implemented in #1060. Add the remaining external dependency declarations using the draft PEP 725 format and PEP 804 identifiers: CMake and a C++ compiler for both build layouts, BLAS/LAPACK for the combined build, and the installed Basix C++ library for the Python-only build. CMake continues to enforce C++20 support.

Document the build/host distinction and correct the claim that pip fetches all C++ dependencies. Both external-dependency PEPs remain drafts; this makes requirements available in source metadata without promising automatic system-package installation. The Basix C++ GitHub identifier is valid but is not yet in the prototype central registry, so ecosystem mappings may need to be supplied separately.

Validation:

  • Parsed both tables with the PEP 725 reference implementation; checked registered identifiers against the prototype PEP 804 registry and mappings for Ubuntu 24.04, Homebrew and conda-forge.
  • Built the combined source distribution and wheel, and the Python-only wheel, in Developer mode; verified both tables survive in the combined source distribution.
  • Ran quadrature and Lagrange tests against each newly built wheel.
  • Ruff check/format, Gersemi check and git diff whitespace checks.

Comment thread INSTALL.md

### External dependency metadata

Both `pyproject.toml` files declare non-Python build dependencies in an

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ask LLM to cut this back, not needed.

This branch has not been deployed

No deployments
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

Successfully merging this pull request may close these issues.

Implement PEP735 dependency groups and PEP804 external dependencies

2 participants