Skip to content

A better upgrade path from distribute #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ghost opened this issue May 28, 2013 · 6 comments
Closed

A better upgrade path from distribute #4

ghost opened this issue May 28, 2013 · 6 comments

Comments

@ghost
Copy link

ghost commented May 28, 2013

Originally reported by: jaraco (Bitbucket: jaraco, GitHub: jaraco)


Currently, the README indicates that to upgrade from distribute, one must uninstall distribute first. In fact, it may not even say that explicitly enough.

Upgrades from setuptools work nicely. I'd like to explore an approach that will make a nicer transition from distribute as well.

Here's what I have in mind:

Create a new release of distribute 0.7. Installation of distribute 0.7 will:

  1. Not supply any packages or modules.
  2. Depend on setuptools 0.7.
  3. Allow upgrade over distribute 0.6.
  4. If necessary (I hope it's not), remove the faked setuptools metadata.

This ticket is to explore the viability of such an approach.


@ghost
Copy link
Author

ghost commented May 29, 2013

Original comment by ncoghlan (Bitbucket: ncoghlan, GitHub: ncoghlan):


We should also ping the Fedora and Debian package maintainers to explain the upcoming switch.

@ghost
Copy link
Author

ghost commented Jun 2, 2013

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


I've created a new branch 'distribute-legacy' which contains an empty package for 'distribute 0.7' which depends on 'setuptools>=0.7'. I've confirmed that this package works to upgrade an existing Distribute 0.6 installation, so I've uploaded this to Downloads for testing by others. This solves (1) through (3) above.

Regarding (4), it does leave behind the following files:

  • site-packages/setuptools-0.6c11.egg-info - this fake egg-info remains from the previous Distribute install. I don't believe this would cause problems, but I can't be certain.
  • site-packages/setuptools.pth - this file simply references distribute-0.7.egg, which has no modules or packages.

So unless I hear otherwise, I'll assume these lingering metadata files will not be an issue.

Thus, the usage to upgrade distribute 0.6.x to setuptools 0.7 is simply to easy_install distribute 0.7.

Will this approach be suitable for providing an easy upgrade path for users of Distribute? What other pitfalls might exist? When should this package be uploaded to PyPI (note that based on the dependency_links, it could be released immediately).

One thing this does not allow is a roll-back to Distribute 0.6 (as Distribute 0.6 doesn't allow an installation over setuptools 0.7). This issue would be encountered when re-initializing a virtualenv that's been upgraded.

I'm inclined to say that downgrades (including virtualenv re-initialization) are not supported.

Comments, feedback, and criticism welcome.

@ghost
Copy link
Author

ghost commented Jun 24, 2013

Original comment by tseaver (Bitbucket: tseaver, GitHub: tseaver):


Given that the 'distribute 0.7' release is no longer on the cheeseshop, maybe we need to be re-opening this issue? Also, where are the problems reported against that release?

@ghost
Copy link
Author

ghost commented Jun 25, 2013

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


In pip 986, we discovered an issue whereby pip couldn't upgrade Distribute 0.6 using Distribute 0.7.

@ghost
Copy link
Author

ghost commented Jun 25, 2013

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Since then, I've uploaded Distribute 0.7.3 which bundles setuptools 0.8 for bootstrapping purposes. It does support upgrading for older pip clients, but those environments are left without the easy_install script(s). However, it seems this may be the smoothest transition available for older pip clients. Soon, the latest pip will be released and will be recommended for installation prior to upgrading distribute for the best possible experience.

@ghost
Copy link
Author

ghost commented Aug 25, 2013

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


The latest pip (1.4) supports upgrading Distribute to Setuptools 0.8+. The distribute 0.7 wrapper remains available as a convenience for users wishing to use that technique with easy_install. Any other issues with upgrades should file a separate ticket with the specifics of any challenges encountered.

@ghost ghost added major task labels Mar 29, 2016
@ghost ghost closed this as completed Mar 29, 2016
jaraco added a commit that referenced this issue Jul 9, 2020
jaraco pushed a commit that referenced this issue Dec 7, 2020
use spaces, fixed indentation, format using autopep8
jaraco added a commit that referenced this issue Feb 4, 2023
jaraco added a commit that referenced this issue Jul 8, 2023
* Create SECURITY.md

Signed-off-by: Joyce <[email protected]>

* Remove the security contact from the README, as it's now redundant.

Closes jaraco/tidelift#3.

---------

Signed-off-by: Joyce <[email protected]>
Co-authored-by: Joyce <[email protected]>
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

0 participants