uv/scripts/packages
konsti dfcceb6a1d
Build backend: Revamp include/exclude (#9525)
When building the source distribution, we always need to include
`pyproject.toml` and the module, when building the wheel, we always
include the module but nothing else at top level. Since we only allow a
single module per wheel, that means that there are no specific wheel
includes. This means we have source includes, source excludes, wheel
excludes, but no wheel includes: This is defined by the module root,
plus the metadata files and data directories separately.

Extra source dist includes are currently unused (they can't end up in
the wheel currently), but it makes sense to model them here, they will
be needed for any sort of procedural build step.

This results in the following fields being relevant for inclusions and
exclusion:

* `pyproject.toml` (always included in the source dist)
* project.readme: PEP 621
* project.license-files: PEP 639
* module_root: `Path`
* source_include: `Vec<Glob>`
* source_exclude: `Vec<Glob>`
* wheel_exclude: `Vec<Glob>`
* data: `Map<KnownDataName, Path>`

An opinionated choice is that that wheel excludes always contain the
source excludes: Otherwise you could have a path A in the source tree
that gets included when building the wheel directly from the source
tree, but not when going through the source dist as intermediary,
because A is in source excludes, but not in the wheel excludes. This has
been a source of errors previously.

In the process, I fixed a bug where we would skip directories and only
include the files and were missing license due to absolute globs.
2024-12-01 11:32:35 +00:00
..
anyio_local Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -05:00
black_editable Editable installs for uv tool (#5454) 2024-07-26 16:30:15 -04:00
built-by-uv Build backend: Revamp include/exclude (#9525) 2024-12-01 11:32:35 +00:00
dependent_locals Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -05:00
deptry_reproducer Set absolute URLs prior to uploading to PyPI (#5038) 2024-07-13 17:29:21 +00:00
hatchling_dynamic Avoid prepare_metadata_for_build_wheel calls for Hatch packages with dynamic dependencies (#2645) 2024-03-25 22:26:51 +00:00
hatchling_editable Rename scripts/editable-installs to scripts/packages (#2644) 2024-03-25 03:56:00 +00:00
keyring_test_plugin Publish: Warn when keyring has no password (#8827) 2024-11-27 20:54:49 +01:00
poetry_editable Move maturin test coverage into CI (#3714) 2024-05-21 19:17:48 +00:00
root_editable Rename scripts/editable-installs to scripts/packages (#2644) 2024-03-25 03:56:00 +00:00
setup_cfg_editable Rename scripts/editable-installs to scripts/packages (#2644) 2024-03-25 03:56:00 +00:00
setup_py_editable Rename scripts/editable-installs to scripts/packages (#2644) 2024-03-25 03:56:00 +00:00
setuptools_editable Rename scripts/editable-installs to scripts/packages (#2644) 2024-03-25 03:56:00 +00:00
README.md Use prettier to format the documentation (#5708) 2024-08-02 08:58:31 -05:00

packages

A collection of packages used to test editable installs and bespoke behaviors in packaging setups and definitions.