tests.egg_info: Test absolute egg-base install
Make sure this copies the appropriate metadata into EGG-INFO.  This
test currently fails, but the next commit fixes setuptools so it will
pass.
egg_info: Search egg-base for files to add to the manifest
Before this commit, this:

  $ mkdir -p /tmp/xyz/{home,lib,scripts,data,egg}
  $ cat >/tmp/xyz/home/.pydistutils.cfg <<EOF
  > [egg_info]
  > egg-base = /tmp/xyz/egg
  > EOF
  $ export PYTHONPATH=/tmp/xyz/lib
  $ export HOME=/tmp/xyz/home
  $ setup.py install --home=/tmp/xyz/home --install-lib=/tmp/xyz/lib \
  >   --install-scripts=/tmp/xyz/scripts --install-data=/tmp/xyz/data

drops a lot of metadata, installing only SOURCES.txt and zip-safe
under EGG-INFO.  The problem is that the metadata files are written to
egg-base, but egg-base is not searched when creating the manifest
because it's outside of the current directory.  Work around this by
explicitly searching egg-base with distutils.filelist.findall (which
is really the version monkeypatched in by setuptools/__init__.py).

Since findall records relative paths, prefix the returned paths with
egg-base, so the include_pattern looking for the absolute
ei_cmd.egg_info will match them.
egg_info: Split manifest_maker._add_egg_info into its own method

On Sat, Oct 11, 2014 at 04:23:37PM -0000, Jason R. Coombs wrote [1]:
> I suggest implementing the functionality as a separate method with a
> docstring explaining the purpose.

so that's what we have here. The docstring is adapted from the
cbd4f603 (egg_info: Search egg-base for files to add to the manifest,
2014-10-16) commit message.

It's a lot of docs for a single command (although there is a newsted
list comprehension), so I'm fine if you drop this commit before
merging. The motivation behind the lines would still be available in
the version control history:

  $ hg blame -c setuptools/command/egg_info.py | grep -A1 ei_cmd.egg_base
  cbd4f6038604: if ei_cmd.egg_base != os.curdir:
  cbd4f6038604: self.filelist.allfiles.extend([
  cbd4f6038604: os.path.join(ei_cmd.egg_base, path)
  cbd4f6038604: for path in distutils.filelist.findall(ei_cmd.egg_base)])
  80108b046cb6: self.filelist.include_pattern("*", prefix=ei_cmd.egg_info)
  $ hg log -vr cbd4f6038604
  changeset: 3163:cbd4f6038604
  ...
  description:
  egg_info: Search egg-base for files to add to the manifest
  Before this commit, this:

    $ mkdir -p /tmp/xyz/{home,lib,scripts,data,egg}
    $ cat >/tmp/xyz/home/.pydistutils.cfg <<EOF
  ...

[1]: https://bitbucket.org/pypa/setuptools/pull-request/85/egg_info-search-egg-base-for-files-to-add/diff#comment-3418032
Update changelog
Edit docstring for imperative form
Remove superfluous list construction.
Extract variables to capture substeps.
Move invocation bypass into function itself, pertinent to the docstring.
Use os.pathsep. Fixes failure on Windows
Added tag 8.1b1 for changeset 1af3a5f24f7d
Add a warning when version is parsed as legacy
Restore iterating over Version objects for compat with buildout
Merge pull request #16 from dstufft/fix-buildout

Restore iterating over Version objects for compat with buildout
Merge with 8.0.1
Add more compatability shims to SetuptoolsVersion

* Enables indexing the SetuptoolsVersion objects, triggering the
  legacy behavior warning.
* Enables comparing the SetuptoolsVersion object to a tuple, again
  triggering the legacy behavior warning.
Merge pull request #17 from dstufft/fix-buildout-again

Add more compatability shims to SetuptoolsVersion
Merge with 8.0.2
Define a __hash__ on the packaging.version.Version subclasses

In Python 3.x a subclass will not inherent the __hash__ method from
the parent classes if the subclass defines a __eq__ method. This
means that without defining our own __hash__ the SetuptoolsVersion
classes are unhashable.
Merge pull request #18 from dstufft/hashable-versions

Define a __hash__ on the packaging.version.Version subclasses
Merge with 8.0.3