[Distutils] Bootstrap script for package management tool in Python 2.7 (Was: Re: [Python-Dev] At least one package management tool for 2.7)

anatoly techtonik techtonik at gmail.com
Mon Mar 29 17:32:44 CEST 2010


On Mon, Mar 29, 2010 at 5:18 PM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
>>
>>> Again, any new code work will not happen because 2.7 is due in less
>>> than a week. Things are happening in Distutils2.
>>
>> That doesn't solve the problem. Bootstrap script can be written in one
>> day. What we need is a consensus whatever this script is welcomed in
>> 2.7 or not? Who is the person to make the decision?
>
> Guido makes all final decisions.
>
> But before he does, in general, we work all together to find a
> consensus, because he can't take part in all
> discussions. In this process, I am the guy in charge for packaging
> matters in the stdlib, and I am trying to write the PEPs that reflects
> those consensus. But anyone is welcome to champion a PEP as long as we
> discuss it a bit here, and we agree that a new PEP is required.
>
> Feel free to make more points here in distutils-SIG about your idea,
> to explain the advantages of doing it
> and gain traction.

So far I haven't seen any counter arguments against _bootstrap script_
itself. I see that the difference between "package management tool"
and "bootstrap script" should be defined more clearly. But I do not
know how.

> But there are no chance at all this will be accepted for 2.7. It's a
> long process (not writing a script, but deciding if it's the best way
> to go)

Ok. It seemed so simple, so that I do not even know if I able to
propose anything at all. It takes an enormous amount of time and
effort to keep discussion focused.

>>> Now, for the "best practice" documentation, I think the guide is the
>>> best plce to look at.
>>
>> Let's refer to original user story:
>> "I installed Python and need a quick way to install my packages on top of it."
>> "I execute `easy_install something` as said in installation manual,
>> but nothing/error happens."
>
> Have you read : http://guide.python-distribute.org/installation.html ?
> How could we change it to help this user story ?

1. Provide a less "boring" version for users who are not interested in
details of package management history
2. It doesn't describe what command on windows should I use (and I am
on windows) to "wget" distribute_setup.py
3. Too complicated for a user

To completely get the picture - imagine a typical student who learns
English as a second language. If the person has weak language skill -
he will skip directly to examples, believe me. Even I do this. And
your examples are not crossplatform, and this complicates things even
more.

"packaging ecosystem manipulation", "combination of tool used for
ecosystem isolation and two other tools", argumentation that
"Distribute was created because the Setuptools package is no longer
maintained". It is all aimed at Python developers, probably with
bachelor's degree. I speak on behalf of user that doesn't know
anything about Python besides that it should be installed along with
some API package to turn on support for youtube video sharing.

>> The scope of my proposal is a bootstrap script that instructs user how
>> to install the package management tool of user's choice if this tool
>> is not yet installed on user system (this is the case with new Python
>> installation).  If you'll come up with a better way of package
>> management - you will update this bootstrap script with relevant
>> information in future Python releases.
>
> Sounds like a simple installation instruction, I can't see the benefit
> of adding a script for that.

Of course! Because you are a developer. You need to be a user or at
least QA engineer to see it. =)

For now in its simplest minimal form that is possible to create in a
day for 2.7 it is an simple text instruction. This will surely can be
ready for 2.7. But in future distributions, i.e. in Python 2.7
non-beta, it may be able to download required package management tool
automatically if user agrees, unpack it to %TEMP% and execute
"setup.py install".

> Plus, we can't make a choice for Python 2.7. Some people use
> easy_install, some people use pip,
> some use another tool. You use easy_install, fine, install it.

Some people just blindly follow the instructions and they are disappointed if:
1. it doesn't work
2. if the thing need to be done quickly and instruction is too long
3. if instruction is too long and it still doesn't work

> Once PEP 376 is finished and accepted, we might provide a basic script
> in the stdlib though.

I can see immediate benefit in this script now, but I can not predict
if it will be actual 5 years later. =)

> [..]
>> If there will be no bootstrap script in 2.7, I won't have any
>> motivation to continue discussion until 2.8 deadline is near. Of
>> course I will be disappointed, because I will have to explain
>> everything to 2.7 users again and again instead of letting them
>> execute one command and follow its instructions.
>
> Frankly, I am not understanding why you are pushing so hard to include
> this script one week before 2.7b1 without any previous discussion.  I
> am sorry if you feel disappointed about this.

I can't comment anything about it. It is too subjective, like no time,
no Python 2.7 installation until alpha 4 (because I want to see yet
another trivial patch with hijacked discussion included there), not
being able to get back to problem, because installing `setuptools` for
me as a developer is faster than describing user problems. I could
also add that mailing lists are archaic to my taste, Python lists are
too flooded, it is hard to follow up on threads, that there are always
much more ideas that I able to type at any given moment.
-- 
anatoly t.


More information about the Distutils-SIG mailing list