Build backend: Make preview default and add configuration docs (#12804)

Add configuration documentation for the build backend and make it the
preview default.

The build backend should generally work with default configuration
unless you want specific features such as flat layout or module
renaming, there is only a dedicated configuration, but no concept or
guide page for the build backend. Once the build backend is stable, we
can update the guide documentation to explain that uv defaults to its
own build backend, but other build backends are also supported.

The uv build backend becomes the default in preview, giving it more
exposure from users and preparing it to make it the default proper. The
current documentation retains warnings that the build backend is in
preview.

To see current uses of `uv_build` on GitHub:
https://github.com/search?q=path%3A**%2Fpyproject.toml+uv_build%3E%3D0&type=code

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
This commit is contained in:
konsti 2025-05-05 15:52:31 +02:00 committed by GitHub
parent 1cfc67d266
commit 5386701cc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 248 additions and 6 deletions

View file

@ -1,5 +1,5 @@
/// Available project build backends for use in `pyproject.toml`.
#[derive(Clone, Copy, Debug, PartialEq, Default, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, serde::Deserialize)]
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
@ -11,7 +11,6 @@ pub enum ProjectBuildBackend {
#[cfg_attr(feature = "schemars", schemars(skip))]
/// Use uv as the project build backend.
Uv,
#[default]
#[serde(alias = "hatchling")]
#[cfg_attr(feature = "clap", value(alias = "hatchling"))]
/// Use [hatchling](https://pypi.org/project/hatchling) as the project build backend.