Commit Graph

60 Commits

Author SHA1 Message Date
Erik Rose ee9d6fb2c3 Modernize recommendations to not call setuptools-level things directly. 2015-10-19 23:40:00 -04:00
Erik Rose 925e4b4466 Fix false hash mismatches when installing a package that has a cached wheel.
This would occur when, for example, installing from a requirements file that references a certain hashed sdist, a common situation.

As of pip 7, pip always tries to build a wheel for each requirement (if one wasn't provided directly) and installs from that. The way this was implemented, InstallRequirement.link pointed to the cached wheel, which obviously had a different hash than the index-sourced archive, so spurious mismatch errors would result.

Now we no longer read from the wheel cache in hash-checking mode.

Make populate_link(), rather than the `link` setter, responsible for mapping InstallRequirement.link to a cached wheel. populate_link() isn't called until until prepare_files(). At that point, when we've examined all InstallRequirements and their potential --hash options, we know whether we should be requiring hashes and thus whether to use the wheel cache at all.

The only place that sets InstallRequirement.link other than InstallRequirement itself is pip.wheel, which does so long after hashes have been checked, when it's unpacking the wheel it just built, so it won't cause spurious hash mismatches.
2015-10-19 23:40:00 -04:00
Erik Rose 76983f363a Restore documentation about alternate hash algorithms in URLs. 2015-10-12 12:09:49 -04:00
Erik Rose 6f828c351f Correct and clarify docs and comments. 2015-10-10 22:44:12 -04:00
Erik Rose 7a0a97c081 Merge 'develop' into 'hashing' to bring the latter up to date. 2015-10-08 13:37:19 -04:00
Erik Rose d477ae6c5c Add warning about `python setup.py install`. 2015-10-08 00:36:14 -04:00
Erik Rose 09008bf190 Add `pip hash` command. 2015-10-08 00:36:03 -04:00
Erik Rose 14506f8261 Document hash-checking mode. 2015-10-07 16:35:27 -04:00
Erik Rose 4f6737407b Correct the level of the Wheel Cache heading.
Previously, Hash Verification, Editable Installs, Controlling setup_requires, and Build System Interface were all getting placed under it.
2015-10-07 16:31:41 -04:00
Marcus Smith b9095440c9 add comment about the order of requirements file preprocessing 2015-10-03 21:30:26 -07:00
Marcus Smith 0ac55a06f5 Merge pull request #2929 from dougthor42/develop
Add example requirements.txt file to pip_install.rst
2015-09-17 09:47:18 -07:00
Douglas Thor 91f0e8b291 Removed example file section for external/unverified packages
[ci skip]
2015-09-17 09:43:27 -07:00
Douglas Thor 950009031f Updated pip_install.rst to reflect comments made by @qwcode
[ci ckip]
2015-09-16 15:04:51 -07:00
Marcus Smith 9259e2e66b refactor the "Fast & Local Installs" section to "Installing from local
packages".  With pip's index caching, and wheel caching,  the motivation
to find a way to speed up pip is not as pressing anymore, although it is
still true that people may need a local-only install for certain cases.
2015-09-10 21:30:38 -07:00
Marcus Smith dfcd9f9127 Merge pull request #3083 from qwcode/update_install_docs
updated install instructions (minus linux updates)
2015-09-07 19:00:10 -07:00
Marcus Smith 697178e3fc - a new "Do I need to install pip?" section
- a new subsection for the get-pip options
  (which now mentions --no-wheel and --no-setuptools)
- explain that get-pip.py installs setuptools and wheel, and why.
- mention support for Python3.5
2015-09-07 16:56:10 -07:00
Xavier Fernandez 9d4566ab5a Merge pull request #2949 from inirudebwoy/patch-1
Add more info about subdirectory component of path in docs
2015-09-03 22:46:56 +02:00
Donald Stufft 0f5d4286a5 Deprecate and Noop the PEP 438 functionality due to PEP 470 2015-09-02 23:47:05 -04:00
tim smith 447166e9e5 Grammar nits
"it's" always expands to "it is" and is never possessive
2015-08-19 23:13:53 -07:00
Kit Randel 8325c439b8 Provide link to constraints documentation. 2015-08-03 10:40:12 +12:00
Michael Klich bbe29b20c9 Add more info about subdirectory component of path
Subdirectory component was only mentioned in examples, and it's usage was not clear enough.
2015-07-02 10:53:47 +01:00
Douglas Thor bc758193a0 Added example requirements file.
[ci skip]
2015-06-24 16:07:25 -07:00
Douglas Thor 735367347f Update pip_install.rst
[ci skip]
2015-06-24 15:59:58 -07:00
Douglas Thor 50fe1ad62d Update pip_install.rst
[ci skip]
2015-06-24 15:58:10 -07:00
Robert Collins bb0b429a49 Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
2015-06-03 06:38:33 +12:00
Robert Collins 1d04615a37 Tweak requirement file documentation.
We're actually pinning down a fairly specific grammar now, so lets
make it official. All options are at the end, and only options get
quoting. I've also tweaked some of the existing examples to make the
existing grammar features (that I know people use) clearer - like
spaces between requirements and version specifiers.
2015-06-02 07:15:42 +12:00
Marcus Smith 1afd2e8494 docs updates related to environment markers 2015-06-02 06:50:16 +12:00
Marcus Smith b1cab1e31b docs and changelog about marker parsing changes 2015-05-09 14:43:35 -07:00
Robert Collins 6aec23cafe Issue #2675: Granular control over wheels/sdists
With wheel autobuilding in place a release blocker is some granular
way to opt-out of wheels for known-bad packages. This patch introduces
two new options: --no-binary and --only-binary to control what
archives we are willing to use on both a global and per-package basis.

This also closes #2084
2015-04-24 08:52:48 +12:00
Mark Kohler ee0f460f02 Add setup_requires caveat to repeatability section. 2015-04-22 16:00:14 -07:00
Robert Collins 08acb6670d Issue #2140: Build wheels automatically
Building wheels before installing elminates a cause of broken environments -
where install fails after we've already installed one or more packages.

If a package fails to wheel, we run setup.py install as normally.
2015-04-13 18:33:07 +12:00
Robert Collins 4926409340 Issue #2563: Read cached wheels from ~/.cache/pip
This won't put wheels into that directory, but will read them if they
are there. --no-cache-dir will disable reading such wheels.
2015-04-13 18:33:07 +12:00
Georgi Valkov 0da51b14d7 Remove misleading test cases and improve docs 2015-04-12 23:52:49 +02:00
Georgi Valkov 29f0c75c63 Do not shlex.split() and flatten value of global|install_options 2015-04-12 23:52:49 +02:00
Georgi Valkov 4a70730617 Replace all occurrences of install|global-options with install|global-option 2015-04-12 23:52:49 +02:00
Georgi Valkov b014668b30 Add --install-options and --global-options to the requirements file parser
This allows lines such as the following to exist in requirements files:

  INITools==0.2 --install-options="--prefix=/opt"
  virtualenv>=1 --global-options="--no-user-cfg"

In addition, the requirements file parser was overhauled with simplicity
and clarity in mind.
2015-04-12 23:52:49 +02:00
Donald Stufft 1d58e09588 Merge pull request #2645 from techtonik/patch-3
pip_install.rst: Fix backslashes in Windows path
2015-04-07 05:39:31 -04:00
Marcus Smith 6d839e2b14 Note that the current cycle handling is not a promise, and that broken environments are still possible. 2015-04-02 21:12:52 -07:00
Marcus Smith 30ea101678 more explanation of the install order 2015-04-01 21:21:19 -07:00
Marcus Smith dd27b19c1b fix broken section anchor 2015-04-01 16:57:15 -07:00
Robert Collins 17352765f0 Issue #2478 - topological install order.
This is needed for setup-requires, since without it its possible
to cause installation to fail in sort-circuit scenarios such as
the added functional test case demonstrates.
2015-04-01 12:33:17 +13:00
anatoly techtonik 6b28be6a76 pip_install.rst: Fix backslashes in Windows path 2015-03-18 15:41:10 +03:00
Donald Stufft 9981efdd89 Merge pull request #2302 from dstufft/document-cache
Document the default cache directories
(cherry picked from commit ef4b0a9bed)
2015-01-03 01:09:01 -05:00
Donald Stufft e65a22cd4f Document the default cache directories 2015-01-02 23:14:17 -05:00
Jan Pokorný 859acf124d
doc/install: fix typo in "from repo subdir" example
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2014-12-09 22:00:31 +01:00
Victor Stinner e498d83db1 Support markers in requirements
It's now possible to specify requirements markers in requirements.
Examples::

    futures; python_version < '2.7'
    mock; python_version < '3.3'
    nose
    ordereddict; python_version < '2.7'
    unittest2; python_version < '2.7'

The separator is "; ". For convinience, ";" alone is also supported, but
no in URLs. The ";" character is a legit and common character in an URL.
Example of valid URL without markers::

    http://foo.com/?p=bar.git;a=snapshot;h=v0.1;sf=tgz

Example of URL with markers::

    http://foo.com/?p=bar.git;a=snapshot;h=v0.1;sf=tgz; python_version < '3.3'
2014-11-20 10:52:08 -05:00
Chris Jerdonek c9c69ed052 Update docs to explain the "version" component of the egg name. 2014-10-01 07:14:49 -04:00
Donald Stufft 0e96b1af4b Switch versioning from X.Y.Z to X.Y dropping the leading 1 2014-09-17 22:05:31 -04:00
Donald Stufft d91e0d9e20 Clarify the requirements file format documentation - Thanks @thanatos 2014-09-11 09:53:30 -04:00
Donald Stufft bb6c11ed17 Merge pull request #1848 from daviewales/clarify-documentation
Clarify requirement specifier format
2014-06-25 23:47:14 -04:00