Draft Releases in PyPI

A year ago I proposed to this very forum an approach on how to implement Draft Releases. You can find the original proposal and its following discussion here.

Right now there is a PR implementing support for this in Warehouse. There’s also an accompanying Twine patch so that you can test out the full workflow locally. You can use your pip installation, as it requires no changes on the installation client.

I’m now looking for feedback in the proposed implementation, and I think I’d be better if we kept all the conversation around it there too.

Thank you


I’m really grateful to @alanbato for working on this.

Right now, there are ways for package maintainers to test and share draft versions of their upcoming releases, but they cause friction and confusion. So we want to add staged releases – a temporary state that a release can be in, where PyPI has it and can evaluate it, but hasn’t published it yet. And there are at least nine useful features or bugfixes in our process that we can start working on once we have this feature.

So, @alanbato is requesting feedback on a few specific items:

  • The draft hash value and how it’s calculated
  • The draft index
  • How draft releases are created
  • What changes are needed in order for this PR to be “mergeable”

and has more details, and a demo, at the PR. I’d appreciate if a few folks could give it a look.