Just implement it. You could also try editing wheel's own proof of
concept installer.
https://bitbucket.org/pypa/wheel/src/tip/wheel/install.py?at=default#cl-246

On Tue, Apr 14, 2015 at 3:20 PM, David Cournapeau <courn...@gmail.com> wrote:
>
>
> On Tue, Apr 14, 2015 at 9:27 AM, Daniel Holth <dho...@gmail.com> wrote:
>>
>> That's exactly what I would like to do. Then
>> distribution-1.0.data/sysconfdir/file in a wheel would install into
>> /etc/file in the default scheme, but would probably really wind up in
>> $VIRTUAL_ENV/etc/... for most of us web developers.
>
>
> $prefix would be set to sys.prefix and $eprefix to sys.exec_prefix to handle
> automatically.
>
> Should I work on a PEP for wheel 2.0, or a pip implementation first  ?
>
>>
>> IIRC extra package-1.0-data/* directories in wheel are undefined.
>
>
> pip will actually fail to install any wheel with an undefined directory
> package-1.0-data/* (unfortunately this is not detected before installing, so
> it ends up with a half installed package).
>
> David
>
>>
>> I
>> would have no problem putting fine-grained install schemes in 2.0 and
>> putting some of the other "wheel 2.0" features into wheel 3.
>> Incrementing the major version number would cause older pip to reject
>> the newer wheels, incrementing the minor version would produce a
>> warning.
>
>
>
>>
>>
>>
>> On Tue, Apr 14, 2015 at 8:56 AM, David Cournapeau <courn...@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > I am splitting up the previous thread into one thread / proposal to
>> > focus
>> > the discussion.
>> >
>> > Assuming the basis of this proposal does not sound too horrible, I would
>> > make a proof of concept in a pip branch, so that we can flush out the
>> > details and then write an actual spec (I guess an updated wheel format
>> > would
>> > need a new PEP ?).
>> >
>> > The goal of this thread is to flush out a more fine-grained installation
>> > scheme, so that wheels can install files anywhere they want (at least
>> > within
>> > sys.prefix/sys.exec_prefix). I see two issues:
>> >
>> > 1. defining what the scheme should be
>> > 2. how should it be implemented in wheel: there are different trade-offs
>> > depending on whether we want this feature to be part of wheel format 1.*
>> > or
>> > 2.0.
>> >
>> > First, my understanding of the current situation:
>> >
>> > * per the wheel PEP 427, anything in the wheel top directory and not in
>> > distribution-1.0.data is installed in site-package
>> > * every top directory in distribution-1.0.data/ needs to be mapped to
>> > the
>> > scheme as defined in distutils install command.
>> > * pip rejects any directory in distribution-1.0.data/ which is not in
>> > the
>> > scheme from 2.
>> >
>> > My suggestion for a better scheme would be to use an extended version of
>> > the
>> > various default directories defined by autotools. The extension would
>> > handle
>> > windows-specifics. More concretely:
>> >
>> > # Suggested variables
>> >
>> > The goal of supporting those variables is to take something that is
>> > flexible
>> > enough to support almost any installation scheme, without putting
>> > additional
>> > burden on the developer. People who do not want/need the flexibility
>> > will
>> > not need to do anything more than what they do today.
>> >
>> > The variables I would suggest are every variable defined in
>> >
>> > https://github.com/cournape/Bento/blob/master/bento/core/platforms/sysconfig.py#L10,
>> > except for destdir which is not relevant here.
>> >
>> > On unix, the defaults follow autotools, and on windows, I mapped almost
>> > everything relative to sys.exec_prefix, except for the
>> > bindir/sbindir/libexecdir which map to "$prefix\Scripts".
>> >
>> > The $sitedir variable would need to be updated to use the value from
>> > distutils instead of the hardcoded value I put in that file as well.
>> >
>> > # How to handle the augmented scheme
>> >
>> > Right now, if I wanted to install something in say $prefix/share/doc, I
>> > would need to put it in distribution-1.0.data/data/share/doc, but this
>> > prevents use from handling different platforms differently.
>> >
>> > OTOH, this is the only way I can see to make the new scheme backward
>> > compatible with pip versions who would not understand the new scheme. I
>> > don't have a good sense of what we should do there, the core pip team
>> > may
>> > have a better sense.
>> >
>> > For now, I would be happy to just make a proof of concept not caring
>> > about
>> > backward compatibility in a pip branch. Does that sound like a workable
>> > basis to flush out an actual proposal ?
>> >
>> > thanks,
>> > David
>> >
>> >
>> > _______________________________________________
>> > Distutils-SIG maillist  -  Distutils-SIG@python.org
>> > https://mail.python.org/mailman/listinfo/distutils-sig
>> >
>
>
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to