warehouse
warehouse copied to clipboard
Support `X-PyPI-Is-Staged`
This PR is built on top of #17257 and implements the second stage of staged release.
The workflow is as follows:
- A user sends a request to
legacy/?:action=file_uploadwith the headerX-PyPI-Is-Stagedto initiate a stage release. If the header is set, the release fieldpublishedis set toFalse. - The user then can perform multiple requests to the same endpoint with the header set. (_restrictions on file immutability still apply - it is impossible to replace a previously uploaded file). While the header is set, the release has still not been published.
- With the last upload, the user MUST not send the header. This will publish the release.
A follow-up PR will add the possibility of publishing / un-stage a release via the user interface.
/cc @woodruffw @facutuesca
marked as draft until #17257 is merged