fix: don't error when a global build-frontend is set on pyodide (#2945)

Since #2609, the pyodide platform required the 'pyodide-build' frontend,
but a global build-frontend setting (TOML or CIBW_BUILD_FRONTEND)
overrides the platform default, so previously-working configs like
build-frontend = "build" failed with a ConfigurationError. Even
"default" failed, since it was mapped to "build" before the check.

Resolve "default" to the platform default, and warn and use
pyodide-build when another frontend is set on pyodide, matching
pre-#2609 behavior where the frontend name only affected verbosity
flags.

Assisted-by: ClaudeCode:claude-opus-4.8
This commit is contained in:
Henry Schreiner
2026-07-23 11:40:11 -04:00
committed by GitHub
parent 1520daf8ae
commit b7cac6dfef
4 changed files with 40 additions and 12 deletions
+3 -3
View File
@@ -483,9 +483,9 @@ files (from workspaces) are not supported.
On Android, the "pip" frontend is not supported.
On Pyodide, `build-frontend` must be `pyodide-build`, which is the default for that
platform. See [Pyodide build frontend support](platforms.md#pyodide-build-frontend) for
details.
On Pyodide, `pyodide-build` is the default and only supported frontend; setting
another frontend produces a warning and uses `pyodide-build` instead. See
[Pyodide build frontend support](platforms.md#pyodide-build-frontend) for details.
You can specify extra arguments to pass to the build frontend using the
optional `args` option.
+1 -1
View File
@@ -190,7 +190,7 @@ The `--libdir` option specifies the directory containing cross-compiled shared l
### Build frontend support {: #pyodide-build-frontend}
The pyodide platform builds wheels by shelling out to `pyodide build`, via the `pyodide-build` [`build-frontend`](options.md#build-frontend), which itself is a meta build frontend and passes through commands to pypa/build with specialised handling. This is the only supported frontend for this platform, and is used by default.
The pyodide platform builds wheels by shelling out to `pyodide build`, via the `pyodide-build` [`build-frontend`](options.md#build-frontend), which itself is a meta build frontend and passes through commands to pypa/build with specialised handling. This is the only supported frontend for this platform, and is used by default. A global [`build-frontend`](options.md#build-frontend) setting naming another frontend is ignored with a warning on this platform.
[`build-verbosity`](options.md#build-verbosity) is passed through to `pyodide build` as `-v`/`-vv`. It is capped at `-vv`. `pyodide build` has no `-vvv` flag.