question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Draft release feature on main archive to allow testing a release before it goes live

See original GitHub issue

As per this discussion thread:

https://mail.python.org/pipermail/distutils-sig/2015-October/thread.html#27234

it would be very nice if there where better ergonomics around package uploads – in particular some way to upload a new release, and then take a look over it to double-check that everything is correct before you – as a second step – hit the button to make it “go live”. Glyph suggests that in particular he’d like to be able to actually run a test install against the uploaded data as an end-to-end test:

https://mail.python.org/pipermail/distutils-sig/2015-October/027259.html

which indeed sounds glorious, and I think the super-slick way to do this would be to provide a unique private index URL which gives a view of what pypi would look like after your release goes live, and could be used like

pip install --index-url https://pypi.python.org/tmp/SOMEPKG/acd1538afe267/ SOMEPKG

(https://mail.python.org/pipermail/distutils-sig/2015-October/027263.html)

The idea would be basically that any request to /tmp/SOMEPKG/acd1538afe267/WHATEVER would return the same thing as a request to /WHATEVER, except for requests that would be affected by the addition of the new release, would act as if the release had already been made.

The use of a unique URL for each trial upload means that this still plays nicely with caching/CDNs. The inclusion of the package name in the tmp URL allows people to double-check that if they see a URL like this, then they know that the files there were actually uploaded by someone who is trusted to upload that package. You’d want to expire them after some short-but-reasonable time (a few days?) to prevent them being abused as private indices by unscrupulous people, and also just for general hygiene, but that’s fine.

Obviously this is very much a post-“become PyPI” wishlist priority request.

Issue Analytics

  • State:open
  • Created 8 years ago
  • Reactions:11
  • Comments:62 (48 by maintainers)

github_iconTop GitHub Comments

4reactions
brainwanecommented, Jun 8, 2019

At the PyPA minisummit in early May (at PyCon North America), we discussed the desire to increase pip’s and PyPI’s strictness with regard to metadata. Part of that progress will require staged releases – a temporary state that a release can be in where PyPI has it but hasn’t published it yet. This will let project owners/maintainers review where their fresh releases are out of compliance, and help us provide soft warnings during the intermediate period where we’re warning maintainers/owners about failing strictness checks but not yet blocking releases on those new stricter checks. I think of this state/feature as “package preview”.

We’ll need database support for understanding the release state (“is this published or not”).

As I understand it, this is a feature we want and are soliciting help to implement.

3reactions
njsmithcommented, Nov 30, 2017

Not sure what argument you’re trying to make here 😃. No-one’s saying that we need this feature to prevent the end of the world – obviously we’ve survived this long without it. But that doesn’t mean it wouldn’t be nice to have? Wouldn’t you rather not have frustrated those people in your twitter mentions, if you had the option?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Draft release feature on main archive to allow testing a ...
Draft release feature on main archive to allow testing a release before it goes live.
Read more >
Prepare and roll out a release - Play Console Help
In the “Release overview” section, select View release dashboard. Select the Releases tab, then Edit. Review your draft release, make any necessary additional ......
Read more >
Management and lifecycle of a SharePoint modern page
Published When a page is approved, it is published and checked in as a "major" version and goes "live," meaning that anyone who...
Read more >
Release Email Archive: 2014 - ActionKit Manual
You'll see basic information on each draft and previews; if you see you need to make edits, click the title of any draft...
Read more >
Introduction to GitLab Flow
The development happens on the develop branch, moves to a release branch, and is finally merged into the main branch. Git flow is...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found