I’m thinking (and correct me if I’m wrong here) that Brett’s message might be 
motivated more by a desire to standardize and centralize effort by first 
assessing what the issue is.  The way I see it, we have a few major issues in 
play and a bunch of options

- Python 2 support (venv is python 3 only and we are supporting python 2 over 
in pipenv for the next year and a half at least)
        - Would mean additional logic and complexity and support for both 
virtualenv and venv anywhere we need to use a virtualenv (whereas virtualenv 
just supports both to begin with)
        - Added complexity, higher maintenance cost, some benefit to users but 
high probability of new bugs in our code at least
- activate_this.py (which provides critical inline activation for us when 
people invoke "pipenv run" from the command line)
- Inability of venv to accurately determine the real python prefix when invoked 
inside another virtual environment 
(https://github.com/pypa/virtualenv/issues/1095, 
https://bugs.python.org/issue30811)
        - pipenv is often called inside a virtualenv to create a new virtualenv
        - virtualenv is the primary container on CI/build systems like travis
- Someone mentioned an issue with pip installation on one of the trackers I 
follow, but I’m not clear on the details there and I couldn’t find anything 
relevant quickly

IMO it makes total sense to focus core development on venv, with a 
compatibility library (i.e. virtualenv?) to extend functionality through 2020.  
I know there was some talk of reworking virtualenv but Donald has been focused 
on warehouse and I’m not sure when that will change.  Having dedicated 
maintainership of someone who could provide compatibility shims on top of venv 
with injection of activate_this.py and some functionality to handle the prefix 
issues would be a big help, but I’m not sure how many of the open PRs will 
actually accomplish that. 

Perhaps if venv had all of these things, we could just publish a backport for 
it and that would provide a transition path

Dan Ryan
gh: @techalchemy // e: d...@danryan.co

From: Tzu-ping Chung [mailto:uranu...@gmail.com] 
Sent: Friday, September 07, 2018 5:42 PM
To: Brett Cannon
Cc: Alex Becker; sorin.sbar...@gmail.com; distutils-sig@python.org
Subject: [Distutils] Re: Adopting virtualenv package maintenance


On 08/9/2018, at 02:23, Brett Cannon <br...@python.org> wrote:


On Fri, 7 Sep 2018 at 11:18 Nathaniel Smith <n...@pobox.com> wrote:
On Fri, Sep 7, 2018, 10:48 Brett Cannon <br...@python.org> wrote:

On Thu, 6 Sep 2018 at 13:44 Alex Becker <alcubec...@gmail.com> wrote:
Another +1 to the utility of a maintainer. I am also working on package 
management and have found that venv is not a full replacement for 
virtualenv--for example I don't believe the environment can be entered 
programatically, while virtualenv provides activate_this.py which can be 
exec'd. I'm sure there are many other limitations, so I don't think python can 
give up on virtualenv soon.

But are those inherent limitations of venv or simply a lack of a provided API 
or library to have the equivalent abilities? I assume there's a difference 
between keeping virtualenv running versus developing a small library on top of 
venv to backfill some things.

I guess venv being in the stdlib means that any limitations it has are going to 
keep limiting "python -m venv" for quite a while.

Depends on the type of limitation. Alex mentioned an activate_this.py script 
that makes activation a generic thing. That doesn't strike me as something that 
requires changes in the stdlib and instead something on PyPI that provided the 
equivalent for venv (and potentially also being in the stdlib).

Just want to mention that adding activate_this.py to venv has been proposed, 
and rejected.
https://bugs.python.org/issue21496

Also there is an interpolation problem when you want to create a venv out of a 
virtualenv.
https://bugs.python.org/issue30811

While I agree with Vinay that this isn’t really a venv problem, it does still 
require a solution
in some way. If venv doesn’t change, virtualenv needs to.

No matter what the future of virtualenv is (rewritten on top of venv or not), I 
think it is at
least reasonable to say that virtualenv needs *some* work, and someone needs to 
work on
it? Because virtualenv is still being used at a very high volume while we are 
exchanging words,
and there are a lot of simple improvements people can benefit from right now.



 

If we want to work around these limits on something other than the Python 
release cycle, then it means training users to not run "python -m venv", and 
instead run "python -m somethingelse".
 

So long as that's necessary, the "somethingelse" might as well be "virtualenv", 
which is what everyone is already trained to do anyway...

There have been plans at various points to rewrite virtualenv on top of venv, 
and as far as I know the limiting factor was time/energy, not that they hit 
some intrinsic limitation. 

As is everything in open source. ;) I'm just trying to understand if there's 
something that specifically needs to change in venv long-term or not.
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/MIF3VTCHQIKRNS2UJEGTSBTW2SMCWTT4/

--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/SIKOLHAXJPTXJDR6VJCKD523PXB3FQ43/

Reply via email to