Issue #41 resolved

Drop support for Python 2.4 and 2.5

Jason R. Coombs
created an issue

There would be many advantages to dropping support for Python 2.4, particularly, it would enable the following important features:

  • context managers
  • absolute imports

Furthermore, much of the backward-compatibility code could be eliminated. Once #35 is completed, I'd like to explore dropping support for Python 2.4. Are there any steps that can be taken in advance to prepare for this transition? In particular, I'd like the remaining clients of Python 2.4 to continue to have a version of setuptools that's stable (e.g. Setuptools 0.9).

Comments (8)

  1. Omer Katz

    You should remove the custom upload command. It's incompetitable with the current distutils command. Try saving your credentials using the register command and then use the setuptools upload command (simply specify cmdclass={'upload': setuptools.command.upload.upload) and see that it blows up. The setuptools upload command expects a server-login section but distutils saves credentials in a different way. Should I report this so a patch for 0.9.x would be issued or does it not matter?

  2. Jason R. Coombs reporter

    I believe the upload command follows the same protocol as the Python 2.5 upload command. I believe the Python 2.5 upload command also expects a server-login section.

    If setuptools drops support for Python 2.4, it would definitely drop the upload command (which isn't used except on Python 2.4 at this point). In the meantime, the current implementation is probably sufficient. I guess it could start to honor the new Python 2.6 style for server/credentials in .pypi, though that's out of the scope for this ticket. You're welcome to report a separate ticket (against 1.1 would be fine) for the upload issue, but there's not an obvious solution to me.

  3. Omer Katz

    But why should we fix it against 1.1 if the intended backwards compatitable version is 0.9.x? That's the only question that is relevant regarding upload and this issue.

  4. Jason R. Coombs reporter

    I mentioned Setuptools 0.9 as an example because that was the stable version at the time I authored this ticket. Since then, 1.0 and 1.1 have been released with ongoing Python 2.4 compatibility, so they would be the versions to be maintained. In fact, the backward incompatibilities of 1.0 were minor, so I doubt 0.9 will get any additional maintenance (all Python 2.4+ users are encouraged to upgrade to 1.x).

    It might be the case that several other changes are added to setuptools before this ticket is enacted. There might even be additional backward-incompatible releases. What that means is that the version number that will ultimately remain for Python 2.4 compatibility is not yet known, but the new release will get a major version bump, and the Python 2.4 maintenance will proceed in version {N-1}.{max}.

  5. Jason R. Coombs reporter

    Travis-CI has recently dropped support for Python 2.5. Since setuptools relies heavily on Travis for continuous integration and because Python 2.5 environments seem to be rapidly dwindling, I'm going to drop support for both versions. I intend to maintain bug fixes and security fixes on the Python 2.4-compatible release for high-profile bugs.

  6. Jason R. Coombs reporter

    The 1.x line will maintain support for setuptools as long as needed. In consideration of this, I believe that an ez_setup.py for 1.x should be provided that will include only <2dev.

    I intend to be very cautious about this release due to the impact it will have on Python 2.4 and 2.5 users. Please do report any issues that may affect your environments as separate tickets.

  7. Log in to comment