Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
2f3f754
feat(packagesettings): activate `source` field and add `source_resolv…
LalatenduMohanty Aug 13, 2026
6cfcf38
Merge pull request #1305 from LalatenduMohanty/multual_exclusivity_va…
mergify[bot] Aug 14, 2026
8fdedf1
feat(packagesettings): error when `source` and legacy settings are bo…
LalatenduMohanty Aug 15, 2026
375ec7c
Merge pull request #1307 from LalatenduMohanty/multual_exclusivity_va…
mergify[bot] Aug 26, 2026
6894169
Merge pull request #1319 from python-wheel-build/main
LalatenduMohanty Sep 4, 2026
91476ff
Merge pull request #1323 from python-wheel-build/main
LalatenduMohanty Sep 10, 2026
e697629
feat(resolver): dispatch configured source resolvers
LalatenduMohanty Sep 10, 2026
b3de3e3
fix(cooldown): apply global cooldown and pin exemption to source reso…
LalatenduMohanty Sep 10, 2026
a8984bc
Merge pull request #1325 from LalatenduMohanty/feat/1292-source-resol…
LalatenduMohanty Sep 10, 2026
68c7d52
fix(resolver): delegate hook source providers
LalatenduMohanty Sep 10, 2026
16fcfe4
Merge pull request #1326 from LalatenduMohanty/fix/1324
LalatenduMohanty Sep 11, 2026
8b94678
feat(sources): dispatch configured source downloads
LalatenduMohanty Sep 21, 2026
384d743
Merge pull request #1338 from LalatenduMohanty/feat/1293-download-dis…
LalatenduMohanty Oct 13, 2026
5eae3b4
chore(sync): merge main into new-resolver-config
LalatenduMohanty Oct 13, 2026
6537698
Merge pull request #1367 from LalatenduMohanty/sync/pr-1366-main
LalatenduMohanty Oct 13, 2026
5c9ed71
feat(sources): replace download tuple with DownloadedSource dataclass
LalatenduMohanty Sep 22, 2026
448cfef
Merge pull request #1344 from LalatenduMohanty/feat/1331-typed-downlo…
LalatenduMohanty Oct 15, 2026
ac8f01d
fix(packagesettings): reject cross-level source conflicts
smoparth Oct 14, 2026
ba2613e
Merge pull request #1369 from python-wheel-build/codex/issue-1368-val…
LalatenduMohanty Oct 22, 2026
ff5216c
fix(sources): honor resolver sdist build strategy
jlarkin09 Oct 22, 2026
f1ee225
Merge pull request #1385 from jlarkin09/codex/1206-build-sdist-pep517
rd4398 Oct 23, 2026
c5e3a28
fix(sources): prepare Git checkouts by download kind
smoparth Oct 23, 2026
a7bc164
Merge pull request #1389 from smoparth/codex/issue-1205-prepare-git-c…
LalatenduMohanty Oct 23, 2026
c9cc5dd
fix(resolver): honor configured prebuilt wheel resolvers
smoparth Oct 23, 2026
e8286a1
Merge pull request #1393 from smoparth/codex/issue-1208-prebuilt-reso…
LalatenduMohanty Oct 27, 2026
69bc40a
fix(wheels): reuse the exact wheel the local mirror serves
LalatenduMohanty Oct 27, 2026
ecacab5
Merge pull request #1398 from LalatenduMohanty/fix/1397-reuse-mirrore…
LalatenduMohanty Oct 27, 2026
74c672a
chore(sync): merge main into new-resolver-config
LalatenduMohanty Oct 27, 2026
dfe4944
Merge pull request #1399 from LalatenduMohanty/sync/new-resolver-conf…
LalatenduMohanty Oct 27, 2026
9c07619
fix(resolver): let hook profiles set their own index URL
LalatenduMohanty Oct 28, 2026
0d88414
refactor(resolver): remove unused cooldown code from source resolvers
LalatenduMohanty Oct 28, 2026
2f61a09
Merge pull request #1405 from LalatenduMohanty/codex/issue-1373-hook-…
LalatenduMohanty Oct 28, 2026
c9e9959
refactor(resolver): pass version and URL to source downloads
LalatenduMohanty Oct 28, 2026
2d88bca
Merge pull request #1406 from LalatenduMohanty/issue-1384-resolved-so…
rd4398 Oct 28, 2026
fb7b165
feat(resolver): let hook profiles work with only a download hook
LalatenduMohanty Oct 28, 2026
8809c85
fix(find-updates): honor configured source resolvers
jlarkin09 Oct 28, 2026
2cecb06
Merge pull request #1409 from LalatenduMohanty/issue-1387-hook-standa…
LalatenduMohanty Oct 28, 2026
87cbfb9
fix(download-sequence): replay configured source downloads
smoparth Oct 28, 2026
f87af3d
Merge pull request #1410 from smoparth/codex/issue-1209-source-download
LalatenduMohanty Oct 30, 2026
fc1f464
test(e2e): build packages with configured sources end to end
LalatenduMohanty Oct 30, 2026
449c496
Merge pull request #1412 from LalatenduMohanty/issue-1403-build-sourc…
LalatenduMohanty Oct 30, 2026
12e0902
docs: target 0.103.0 in version notes
LalatenduMohanty Oct 30, 2026
5103e8b
Merge pull request #1415 from LalatenduMohanty/docs-version-0.103.0
LalatenduMohanty Oct 30, 2026
93c2e3f
Merge pull request #1408 from jlarkin09/codex/1401-find-updates-sourc…
LalatenduMohanty Oct 30, 2026
8eabbbf
feat(list-overrides): surface source config in details output
rd4398 Oct 30, 2026
ccd98cc
Merge pull request #1413 from rd4398/list-overrides
rd4398 Oct 30, 2026
5494a60
fix(sources): exclude `.git` from configured tarball sdists
LalatenduMohanty Oct 30, 2026
bc443f2
Merge pull request #1417 from LalatenduMohanty/fix-tarball-sdist-excl…
LalatenduMohanty Nov 1, 2026
7d5a61d
chore(sync): merge main into new-resolver-config
LalatenduMohanty Nov 2, 2026
4b888fe
test(bootstrapper): fix a race in the resolver test
LalatenduMohanty Nov 2, 2026
ff8d768
Merge pull request #1429 from LalatenduMohanty/sync/new-resolver-conf…
LalatenduMohanty Nov 2, 2026
3fc6de3
fix(build-sequence): validate recorded source providers
smoparth Nov 2, 2026
cbe25db
Merge pull request #1433 from smoparth/codex/issue-1418-source-provid…
LalatenduMohanty Nov 2, 2026
78f119d
fix(sources): reuse matching Git checkouts
LalatenduMohanty Nov 2, 2026
06bfa55
Merge pull request #1437 from LalatenduMohanty/fix-1431-reuse-git-che…
LalatenduMohanty Nov 2, 2026
88da44f
fix(sources): save sdists with a standard filename
LalatenduMohanty Nov 2, 2026
1523bda
Merge pull request #1438 from LalatenduMohanty/fix-1430-standard-sdis…
LalatenduMohanty Nov 2, 2026
c625217
feat(package): honor configured source resolvers
jenlevy Oct 28, 2026
7cd77ac
Merge pull request #1407 from jenlevy/issue-1400/display-and-resolve-…
LalatenduMohanty Nov 2, 2026
6bab2ee
fix(sources): canonicalize Git checkout paths
smoparth Nov 3, 2026
602e0a2
Merge pull request #1441 from python-wheel-build/codex/issue-1434-can…
LalatenduMohanty Nov 3, 2026
30c637e
fix(sources): reuse checkouts and infer source preparation kinds
LalatenduMohanty Nov 4, 2026
dbabba4
fix(package): redact credentials from displayed source URLs
LalatenduMohanty Nov 4, 2026
824225c
fix(resolver): restore the empty resolution warning
LalatenduMohanty Nov 3, 2026
70a0a7f
docs(resolver): correct source reuse and replay descriptions
LalatenduMohanty Nov 3, 2026
554977d
Merge pull request #1449 from LalatenduMohanty/review-fixes-andre-1414
rd4398 Nov 4, 2026
511b050
docs(resolver): make architecture guide easier to read
LalatenduMohanty Nov 3, 2026
ecbf617
Merge pull request #1450 from LalatenduMohanty/docs/resolver-architec…
LalatenduMohanty Nov 4, 2026
f3ae3a3
fix(pkgmetadata): accept LicenseRef anywhere in SPDX expressions
mprpic Nov 4, 2026
2d34b1a
fix(pkgmetadata): validate SPDX expressions with packaging
mprpic Nov 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion docs/concepts/bootstrapper-architecture.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ Bootstrap Phase Flow

Every package passes through a sequence of phases. Source packages
traverse the full pipeline; prebuilt wheels skip the build phases.
``pypi-prebuilt`` and ``hook-prebuilt`` use the selected source resolver to
download a fresh wheel in ``PrepareSource``. The legacy ``pre_built`` setting
keeps its existing wheel download path. Both routes update the local mirror
and record the package as prebuilt in the graph and build order.
When a local wheel is already available, bootstrap reuses it before asking
the selected provider to resolve a fresh wheel.

.. code-block:: text

Expand Down Expand Up @@ -57,7 +63,8 @@ the contract every phase must satisfy:
* - ``Start``
- Add to dependency graph; deduplicate already-seen packages
* - ``PrepareSource``
- Download source or prebuilt wheel; read build-system deps
- Download source or prebuilt wheel; prepare archives or checkouts;
read build-system deps
* - ``PrepareBuild``
- Install build-system deps; discover backend and sdist deps
* - ``Build``
Expand All @@ -67,6 +74,10 @@ the contract every phase must satisfy:
* - ``Complete``
- Clean up build directories (terminal phase)

.. versionchanged:: 0.103.0
``PrepareSource`` passes the downloaded artifact kind through preparation,
so Git checkouts can be prepared without unpacking them.

Each phase wraps a ``WorkItem`` dataclass that accumulates per-package
state (resolved version, build environment, build result, etc.) as it
moves through the pipeline.
Expand Down
10 changes: 10 additions & 0 deletions docs/concepts/hooks-and-overrides.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,16 @@ a Python module.
See :doc:`/reference/hooks` for the complete list of hooks and their
arguments.

.. versionchanged:: 0.103.0

Configured ``hook-sdist`` and ``hook-prebuilt`` profiles support typed
download results with explicit artifact kinds. See :ref:`download_source_hook`
for the contract, legacy path defaults, and a migration example.

``prepare_source`` selects an archive or Git default using the downloaded
artifact kind. Package overrides remain active. See :ref:`prepare_source_hook`
for their arguments and the public Git checkout helper.

Global Hooks
------------

Expand Down
19 changes: 19 additions & 0 deletions docs/concepts/package-settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,25 @@ Settings Loading Flow
``PackageBuildInfo`` objects are created lazily the first time a
package is queried and cached for the rest of the run.

``PackageSettings`` validates source settings when it loads each package.
A package-level ``source`` cannot be combined with an explicitly set
variant ``pre_built`` or ``wheel_server_url``. A variant-level ``source``
cannot be combined with package-level ``download_source`` or
``resolver_dist``. An explicit ``pre_built: false`` also conflicts;
an omitted ``pre_built`` does not.

``PackageBuildInfo.pre_built`` follows the selected ``source`` resolver's
``resolves_prebuilt_wheel`` capability. Without ``source``, it reads the
legacy variant ``pre_built`` setting. Configured prebuilt resolvers download
fresh wheels through their ``download()`` contract; legacy prebuilt packages
keep the wheel downloader.

.. versionchanged:: 0.103.0
Configured prebuilt source resolvers now select the prebuilt pipeline
during bootstrap and later builds.
Source and legacy settings mixed across package and variant levels
now raise a validation error when package settings load.

Directory Structure
-------------------

Expand Down
Loading
Loading