[Python-ideas] More "ensure*" packages
Steve Dower
steve.dower at python.org
Fri Aug 14 17:57:53 CEST 2015
On 14Aug2015 0422, M.-A. Lemburg wrote:
> On 13.08.2015 19:06, Steve Dower wrote:
>> I'd like to propose expanding the list of 3rd-party packages we bundle and install by default.
>> (Obviously this does not apply to platforms that repackage Python and can do whatever they want, but
>> on Windows and Mac we are fully responsible for these.)
>>
>> Currently, we bundle pip (and some of its dependencies - let's avoid that particular discussion
>> right now please, it's on python-dev) and install it by default in a way that lets users easily
>> update to the latest version. Including pip in the standard library would lock users into a specific
>> version for the lifetime of that Python version, which would be a bad thing.
>>
>> From my point-of-view, this has been very successful in Python 2.7, 3.4 and will also be successful
>> in 3.5. For Python 3.6, I'd like to do a similar thing with:
>>
>> * requests
>> * tkinter (including tcl/tk, IDLE, and other dependencies)
>
> requests is already installed as part of pip, along with a whole
> set of other packages (but not exposed at the top-level), so
> moving it to its own ensure package wouldn't really change much
> in terms of approach.
>
> The problem I see with requests is that they sometimes
> have glitches in their releases causing them not to be usable,
> so the version that gets "ensured" would need some extra testing
> by whoever manages the list of packages.
I'm interested in this. What sort of glitches are we talking about here?
Are they not caught by the requests team's tests? Why would someone else
be able to test it better than them?
I'd certainly be okay with locking in the version at rc1 time to give
people a chance for wider testing. I'd be very nervous about updating
any bundled package on the day that the final release is built.
> Also notes that the pre-packaged
> version in pip is not managed by the package manager (because
> it doesn't see it), so you will sooner or later end up with multiple
> requests package copies in your site-packages.
pip has decided to vendor requests to avoid issues like this. It's
unfortunate, but it is the best way to ensure that you can update
requests securely even if you get a broken version.
> Not sure about tkinter. Requiring newbies to run an ensure script
> to be able to run IDLE doesn't sound like a good idea.
>
Maybe I misunderstand how the ensure scripts work on other platforms? On
Windows (and in the makefile), the installation runs it for them. Only
people who edit the makefile and build from source would have to run it
manually, and I'm fairly sure you don't get to claim to be a newbie at
that point :)
Of course, if distros disable the ensure scripts, it's on them to make
sure their users have access to the packages they need. Distros can
already remove Idle/tkinter if they want to.
Cheers,
Steve
More information about the Python-ideas
mailing list