-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Wheel support - Initial implementation, DO NOT MERGE #406
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
One further note - distlib 0.1.0 (the current PyPI version) does not work here, as it has a bug in setting script |
We probably want to allow failures with 2.5 as we're planning to drop - can you add that change in this PR. |
OK, but can I clarify what you want here - just remove 2.5 from .travis.yml, or do you want an explicit version check in the code? |
I was meaning edit .travis.yml to set failures to be allowed on 2.5 http://about.travis-ci.org/docs/user/build-configuration/#Rows-That-are-Allowed-To-Fail After we actually write the drop notes, etc we can drop 2.5 from the matrix. |
OK, nice. I didn't know that was possible. Thanks. |
as already mentioned, we could use distlib from pip, and just include pip.
or we vendorize pkg_resources into pip that supports dist-info.
but it is your intention to include them, right? and have some kind of process for updating them, even if it's just documented, and not scripted. |
On 13 March 2013 01:10, Marcus Smith [email protected] wrote:
Yep, on the list.
Nope, that would not work. pip.exe calls pip-script.py which does "from Long term solution is to transition off older tools that don't understand
Yes, I wasn't sure how acceptable just documenting the process would be. |
hmm, why not just "vendorize" pkg_resources as a top-level module then? |
scratch that... that's only going to work circumstantially based on the order of sys.path being right. |
Precisely. Better might be to just stop using console_scripts in pip's Vinay's distlib wrappers don't need pkg_resources, so maybe switching pip's Daniel pointed out that the wheel PEP's intention regarding scripts is that Paul. |
hmm, I fear making virtualenv cluttered with these new install features, if we can't make it work across the board right now. |
The only issue here is one for pip - does it want to have a runtime My preference would be to simplify virtualenv by removing the existing |
well, you're seriously considering supporting 2 pathways.. one for Setuptools, and one for Distribute.
I'm +1 on not supporting the isolated "virtualenv.py" use case, and the code simplification that could lead to. |
Excellent. Some implications of that, just to be sure we're talking about the same thing:
|
I'm talking about the simplification independent of wheel changes. i.e. doing that first. |
Ah, OK. I haven't even looked at that - two reasons:
Basically support for no virtualenv_support is essentially free because we use the bootstraps at the moment. There's no value desupporting it unless we drop the bootstraps, and if we do that we need an alternative install process. In my view, that's wheels. I'm not going to write my own code to install from a sdist when the bootstraps do that now. |
my experience with it's gnarliness, came in trying to fix #327,and then I gave up out of fear. (btw, we really need to update the docs about how that doesn't actually work) if you can get Setuptools/PJ to add dist-info, that would be great.... or better yet, get the 2 projects to remerge again. |
in large part, you're wanting to add this so windows virtualenv creation can be faster, and have it be a distribute-only option, but doesn't distribute have a bug on windows, that setuptools doesn't have, so that doesn't deflate this plan a bit at the moment? https://bitbucket.org/tarek/distribute/issue/143/easy_install-opens-new-console-cant-read |
|
given the Distribute/Setuptools merge announcement, I would say shelve this until that's released, and then all this will be easier to consider. |
setuptools/distribute has now merged. |
My current plan is to put the supplied pip wheel onto sys.path, then use pip.main to do the install. There are still some issues to iron out, though, as to install from a wheel, pip currently needs features of setuptools that don't seem to work when pip/setuptools are running from a wheel (i.e., a zipfile). Closing this pull request - I will open a new one when the above plan actually works... |
This is an initial implementation of wheel support for virtualenv.
If distlib is available (either installed, or as a wheel in virtualenv_support or any extra search dir) then it will be used to install whichever of pip, distribute and/or setuptools have been requested as part of the initial install.
At present, no wheels are supplied by default - as none of the above projects distribute their code in wheel format, the wheels must be built manually and this is too complex to implement within the current simple
refresh-support-files.py
script. (A more complex script could be written, but this has its own risks and issues).Notes:
.dist-info
format, there are issues using pip and setuptools installed from wheels (possible resolution - require use of distribute if wheels are in use?)