Hello community,

here is the log from the commit of package python-setuptools_scm for 
openSUSE:Factory checked in at 2017-10-02 16:43:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-setuptools_scm (Old)
 and      /work/SRC/openSUSE:Factory/.python-setuptools_scm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-setuptools_scm"

Mon Oct  2 16:43:11 2017 rev:9 rq:528594 version:1.15.6

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-setuptools_scm/python-setuptools_scm.changes  
    2017-07-04 11:57:58.236946708 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-setuptools_scm.new/python-setuptools_scm.changes
 2017-10-02 16:43:12.551016028 +0200
@@ -1,0 +2,37 @@
+Sun Sep 24 21:52:54 UTC 2017 - [email protected]
+
+- specfile:
+  * removed no-generic-python.patch, included upstream
+
+- update to version 1.15.6:
+  * fix #174 by normalizing windows path using windows apis
+
+- changes from version 1.15.6:
+  * fix #171 by unpinning the py version to allow a fixed one to get
+    installed
+
+- changes from version 1.15.5:
+  * fix #167 by correctly respecting preformatted version metadata
+    from PKG-INFO/EGG-INFO
+
+- changes from version 1.15.4:
+  * fix issue #164: iterate all found entry points to avoid erros when
+    pip remakes egg-info
+  * enhance self-use to enable pip install from github again
+
+- changes from version 1.15.3:
+  * bring back correctly getting our version in the own sdist,
+    finalizes #114
+  * fix issue #150: strip local components of tags
+
+- changes from version 1.15.2:
+  * fix issue #128: return None when a scm specific parse fails in a
+    worktree to ease parse reuse
+
+- changes from version 1.15.1:
+  * fix issue #126: the local part of any tags is discarded when
+    guessing new versions
+  * minor performance optimization by doing fewer git calls in the
+    usual cases
+
+-------------------------------------------------------------------

Old:
----
  no-generic-python.patch
  setuptools_scm-1.15.0.tar.gz

New:
----
  setuptools_scm-1.15.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-setuptools_scm.spec ++++++
--- /var/tmp/diff_new_pack.y2GxIN/_old  2017-10-02 16:43:13.114936743 +0200
+++ /var/tmp/diff_new_pack.y2GxIN/_new  2017-10-02 16:43:13.118936181 +0200
@@ -19,15 +19,13 @@
 %bcond_with test
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-setuptools_scm
-Version:        1.15.0
+Version:        1.15.6
 Release:        0
 Summary:        Manage your versions by scm tags
 License:        MIT
 Group:          Development/Languages/Python
 Url:            https://github.com/pypa/setuptools_scm
 Source:         
https://files.pythonhosted.org/packages/source/s/setuptools_scm/setuptools_scm-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM use sys.executable for running python in 
test_regressions.py
-Patch0:         no-generic-python.patch
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  python-rpm-macros
@@ -51,7 +49,6 @@
 
 %prep
 %setup -q -n setuptools_scm-%{version}
-%patch0 -p1
 
 %build
 %python_build

++++++ setuptools_scm-1.15.0.tar.gz -> setuptools_scm-1.15.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/.hgtags 
new/setuptools_scm-1.15.6/.hgtags
--- old/setuptools_scm-1.15.0/.hgtags   2016-10-20 23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/.hgtags   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-1092123ef78598eade56aa9c57e484f3670c8da8 v1.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/.travis.yml 
new/setuptools_scm-1.15.6/.travis.yml
--- old/setuptools_scm-1.15.0/.travis.yml       2016-10-20 23:55:22.000000000 
+0200
+++ new/setuptools_scm-1.15.6/.travis.yml       2017-06-15 21:24:23.000000000 
+0200
@@ -6,7 +6,7 @@
 - '3.3'
 - '3.4'
 - '3.5'
-- '3.6-dev'
+- '3.6'
 env:
 - TOXENV=py-test
 
@@ -16,13 +16,17 @@
       env: TOXENV=flake8
     - python: '3.5'
       env: TOXENV=flake8
+    - python: '2.7'
+      env: SELFINSTALL=1
+    - python: '3.5'
+      env: SELFINSTALL=1
 cache:
   files:
   - $HOME/.pip/cache
   - $Home/.cache/pip
 install: pip install tox
 script:
-- tox -e $TOXENV
+- python testing/runtests_travis.py
 
 
 
@@ -42,4 +46,4 @@
   - <<: *pypi
     on:
       tags: true
-    distributions: "bdist_egg"
\ No newline at end of file
+    distributions: "bdist_egg"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/CHANGELOG.rst 
new/setuptools_scm-1.15.6/CHANGELOG.rst
--- old/setuptools_scm-1.15.0/CHANGELOG.rst     2016-10-20 23:55:22.000000000 
+0200
+++ new/setuptools_scm-1.15.6/CHANGELOG.rst     2017-06-15 21:24:23.000000000 
+0200
@@ -1,3 +1,42 @@
+
+v1.15.6
+=======
+
+* fix #171 by unpinning the py version to allow a fixed one to get installed
+
+v1.15.5
+=======
+
+* fix #167 by correctly respecting preformatted version metadata
+  from PKG-INFO/EGG-INFO
+
+v1.15.4
+=======
+
+* fix issue #164: iterate all found entry points to avoid erros when pip 
remakes egg-info
+* enhance self-use to enable pip install from github again
+
+v1.15.3
+=======
+
+* bring back correctly getting our version in the own sdist, finalizes #114
+* fix issue #150: strip local components of tags
+
+v1.15.2
+=======
+
+* fix issue #128: return None when a scm specific parse fails in a worktree to 
ease parse reuse
+
+
+v1.15.1
+=======
+
+* fix issue #126: the local part of any tags is discarded
+  when guessing new versions
+* minor performance optimization by doing fewer git calls
+  in the usual cases
+
+
 v1.15.0
 =======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/PKG-INFO 
new/setuptools_scm-1.15.6/PKG-INFO
--- old/setuptools_scm-1.15.0/PKG-INFO  2016-10-20 23:55:36.000000000 +0200
+++ new/setuptools_scm-1.15.6/PKG-INFO  2017-06-15 21:24:45.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: setuptools_scm
-Version: 1.15.0
+Version: 1.15.6
 Summary: the blessed package to manage your versions by scm tags
 Home-page: https://github.com/pypa/setuptools_scm/
 Author: Ronny Pfannschmidt
@@ -26,7 +26,6 @@
         1. Add :code:`'setuptools_scm'` to the :code:`setup_requires` parameter
         2. Add the :code:`use_scm_version` parameter and set it to ``True``
         
-        
            E.g.:
         
            .. code:: python
@@ -39,18 +38,47 @@
                    ...,
                )
         
+           Arguments to ``get_version()`` (see below) may be passed as a
+           dictionary to ``use_scm_version``. For example:
+        
+           .. code:: python
+        
+               from setuptools import setup
+               setup(
+                   ...,
+                   use_scm_version = {"root": "..", "relative_to": __file__},
+                   setup_requires=['setuptools_scm'],
+                   ...,
+               )
+        
+        
+        3. Access the version number in your package via :code:`pkg_resources`
+        
+           E.g. (`PEP-0396 <https://www.python.org/dev/peps/pep-0396>`_):
+        
+           .. code:: python
+        
+              from pkg_resources import get_distribution, DistributionNotFound
+              try:
+                  __version__ = get_distribution(__name__).version
+              except DistributionNotFound:
+                 # package is not installed
+                 pass
+        
         
         Programmatic usage
         ------------------
         
-        In order to use setuptools_scm from code
-        that one directory deeper than the project's root, you can use:
+        In order to use ``setuptools_scm`` from code that one directory deeper
+        than the project's root, you can use:
         
         .. code:: python
         
             from setuptools_scm import get_version
             version = get_version(root='..', relative_to=__file__)
         
+        See `setup.py Usage`_ above for how to use this within setup.py.
+        
         
         Usage from sphinx
         -----------------
@@ -61,8 +89,8 @@
         .. code:: python
         
             from pkg_resources import get_distribution
-            release = pkg_resources('myproject').version
-            # for the example take major/minor
+            release = get_distribution('myproject').version
+            # for example take major/minor
             version = '.'.join(release.split('.')[:2])
         
         The underlying reason is, that services like readthedocs sometimes 
change
@@ -94,15 +122,18 @@
         :code:`no distance and clean`:
             :code:`{tag}`
         :code:`distance and clean`:
-            :code:`{next_version}.dev{distance}+n{revision hash}`
+            :code:`{next_version}.dev{distance}+{scm letter}{revision hash}`
         :code:`no distance and not clean`:
             :code:`{tag}+dYYYMMMDD`
         :code:`distance and not clean`:
-            :code:`{next_version}.dev{distance}+n{revision hash}.dYYYMMMDD`
+            :code:`{next_version}.dev{distance}+{scm letter}{revision 
hash}.dYYYMMMDD`
         
         The next version is calculated by adding ``1`` to the last numeric 
component
         of the tag.
         
+        For git projects, the version relies on `git describe 
<https://git-scm.com/docs/git-describe>`_,
+        so you will see an additional ``g`` prepended to the ``{revision 
hash}``.
+        
         Semantic Versioning (SemVer)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/README.rst 
new/setuptools_scm-1.15.6/README.rst
--- old/setuptools_scm-1.15.0/README.rst        2016-10-20 23:55:22.000000000 
+0200
+++ new/setuptools_scm-1.15.6/README.rst        2017-06-15 21:24:23.000000000 
+0200
@@ -18,7 +18,6 @@
 1. Add :code:`'setuptools_scm'` to the :code:`setup_requires` parameter
 2. Add the :code:`use_scm_version` parameter and set it to ``True``
 
-
    E.g.:
 
    .. code:: python
@@ -31,18 +30,47 @@
            ...,
        )
 
+   Arguments to ``get_version()`` (see below) may be passed as a
+   dictionary to ``use_scm_version``. For example:
+
+   .. code:: python
+
+       from setuptools import setup
+       setup(
+           ...,
+           use_scm_version = {"root": "..", "relative_to": __file__},
+           setup_requires=['setuptools_scm'],
+           ...,
+       )
+
+
+3. Access the version number in your package via :code:`pkg_resources`
+
+   E.g. (`PEP-0396 <https://www.python.org/dev/peps/pep-0396>`_):
+
+   .. code:: python
+
+      from pkg_resources import get_distribution, DistributionNotFound
+      try:
+          __version__ = get_distribution(__name__).version
+      except DistributionNotFound:
+         # package is not installed
+         pass
+
 
 Programmatic usage
 ------------------
 
-In order to use setuptools_scm from code
-that one directory deeper than the project's root, you can use:
+In order to use ``setuptools_scm`` from code that one directory deeper
+than the project's root, you can use:
 
 .. code:: python
 
     from setuptools_scm import get_version
     version = get_version(root='..', relative_to=__file__)
 
+See `setup.py Usage`_ above for how to use this within setup.py.
+
 
 Usage from sphinx
 -----------------
@@ -53,8 +81,8 @@
 .. code:: python
 
     from pkg_resources import get_distribution
-    release = pkg_resources('myproject').version
-    # for the example take major/minor
+    release = get_distribution('myproject').version
+    # for example take major/minor
     version = '.'.join(release.split('.')[:2])
 
 The underlying reason is, that services like readthedocs sometimes change
@@ -86,15 +114,18 @@
 :code:`no distance and clean`:
     :code:`{tag}`
 :code:`distance and clean`:
-    :code:`{next_version}.dev{distance}+n{revision hash}`
+    :code:`{next_version}.dev{distance}+{scm letter}{revision hash}`
 :code:`no distance and not clean`:
     :code:`{tag}+dYYYMMMDD`
 :code:`distance and not clean`:
-    :code:`{next_version}.dev{distance}+n{revision hash}.dYYYMMMDD`
+    :code:`{next_version}.dev{distance}+{scm letter}{revision hash}.dYYYMMMDD`
 
 The next version is calculated by adding ``1`` to the last numeric component
 of the tag.
 
+For git projects, the version relies on `git describe 
<https://git-scm.com/docs/git-describe>`_,
+so you will see an additional ``g`` prepended to the ``{revision hash}``.
+
 Semantic Versioning (SemVer)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/appveyor.yml 
new/setuptools_scm-1.15.6/appveyor.yml
--- old/setuptools_scm-1.15.0/appveyor.yml      2016-10-20 23:55:22.000000000 
+0200
+++ new/setuptools_scm-1.15.6/appveyor.yml      2017-06-15 21:24:23.000000000 
+0200
@@ -1,22 +1,22 @@
 environment:
   matrix:
     - PYTHON: "C:\\Python27"
-      TOX_ENV: "py27"
+      TOX_ENV: "py-test"
 
     - PYTHON: "C:\\Python27-x64"
-      TOX_ENV: "py27"
+      TOX_ENV: "py-test"
 
     - PYTHON: "C:\\Python33"
-      TOX_ENV: "py33"
+      TOX_ENV: "py-test"
       
     - PYTHON: "C:\\Python33-x64"
-      TOX_ENV: "py33"
+      TOX_ENV: "py-test"
 
     - PYTHON: "C:\\Python34"
-      TOX_ENV: "py34"
+      TOX_ENV: "py-test"
 
     - PYTHON: "C:\\Python34-x64"
-      TOX_ENV: "py34"
+      TOX_ENV: "py-test"
 
 init:
   - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/default.nix 
new/setuptools_scm-1.15.6/default.nix
--- old/setuptools_scm-1.15.0/default.nix       2016-10-20 23:55:22.000000000 
+0200
+++ new/setuptools_scm-1.15.6/default.nix       2017-06-15 21:24:23.000000000 
+0200
@@ -4,6 +4,12 @@
   name = "setuptools_scm";
   src = ./.;
   version = "git";
-  buildInputs = [setuptools pip pytest pkgs.git pkgs.mercurial];
+  buildInputs = [
+    setuptools
+    pip
+    pytest
+    pkgs.git
+    pkgs.mercurial
+  ];
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setup.cfg 
new/setuptools_scm-1.15.6/setup.cfg
--- old/setuptools_scm-1.15.0/setup.cfg 2016-10-20 23:55:36.000000000 +0200
+++ new/setuptools_scm-1.15.6/setup.cfg 2017-06-15 21:24:45.000000000 +0200
@@ -1,6 +1,9 @@
 [bdist_wheel]
 universal = 1
 
+[metadata]
+license_file = LICENSE
+
 [devpi:upload]
 formats = sdist,bdist_wheel
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setup.py 
new/setuptools_scm-1.15.6/setup.py
--- old/setuptools_scm-1.15.0/setup.py  2016-10-20 23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setup.py  2017-06-15 21:24:23.000000000 +0200
@@ -15,25 +15,39 @@
 import setuptools
 
 
-PROBLEMATIC_COMMANDS = 'install', 'develop', 'easy_install', 'bdist_egg'
-
-if not os.path.isdir('setuptools_scm.egg-info'):
-    print(__doc__)
-
-    if any(c in sys.argv for c in PROBLEMATIC_COMMANDS):
-        sys.exit('please run `python setup.py egg_info` first')
-
-
 def scm_config():
+    here = os.path.dirname(os.path.abspath(__file__))
+    egg_info = os.path.join(here, 'setuptools_scm.egg-info')
+    has_entrypoints = os.path.isdir(egg_info)
+
+    sys.path.insert(0, here)
+    from setuptools_scm.hacks import parse_pkginfo
+    from setuptools_scm.git import parse as parse_git
     from setuptools_scm.version import (
+
         guess_next_dev_version,
         get_local_node_and_date,
     )
-    return dict(
+
+    def parse(root):
+        try:
+            return parse_pkginfo(root)
+        except IOError:
+            return parse_git(root)
+
+    config = dict(
         version_scheme=guess_next_dev_version,
         local_scheme=get_local_node_and_date,
     )
 
+    if has_entrypoints:
+        return dict(use_scm_version=config)
+    else:
+        from setuptools_scm import get_version
+        return dict(version=get_version(
+            root=here, parse=parse, **config))
+
+
 with open('README.rst') as fp:
     long_description = fp.read()
 
@@ -42,8 +56,6 @@
     name='setuptools_scm',
     url='https://github.com/pypa/setuptools_scm/',
     zip_safe=True,
-    # pass here since entrypints are not yet registred
-    use_scm_version=scm_config,
     author='Ronny Pfannschmidt',
     author_email='[email protected]',
     description=('the blessed package to manage your versions by scm tags'),
@@ -63,13 +75,10 @@
         .hg = setuptools_scm.hg:parse
         .git = setuptools_scm.git:parse
 
-        # those are left here for backward compatibility in the 1.x series
-        .hg_archival.txt = setuptools_scm.hg:parse_archival
-        PKG-INFO = setuptools_scm.hacks:parse_pkginfo
-
         [setuptools_scm.parse_scm_fallback]
         .hg_archival.txt = setuptools_scm.hg:parse_archival
         PKG-INFO = setuptools_scm.hacks:parse_pkginfo
+        pip-egg-info = setuptools_scm.hacks:parse_pip_egg_info
 
         [setuptools_scm.files_command]
         .hg = setuptools_scm.hg:FILES_COMMAND
@@ -103,4 +112,5 @@
 )
 
 if __name__ == '__main__':
+    arguments.update(scm_config())
     setuptools.setup(**arguments)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/__init__.py 
new/setuptools_scm-1.15.6/setuptools_scm/__init__.py
--- old/setuptools_scm-1.15.0/setuptools_scm/__init__.py        2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/__init__.py        2017-06-15 
21:24:23.000000000 +0200
@@ -8,7 +8,7 @@
 
 from .utils import trace
 from .version import format_version, meta, ScmVersion
-from .discover import find_matching_entrypoint
+from .discover import iter_matching_entrypoints
 
 PRETEND_KEY = 'SETUPTOOLS_SCM_PRETEND_VERSION'
 
@@ -32,9 +32,10 @@
 
 
 def _version_from_entrypoint(root, entrypoint):
-    ep = find_matching_entrypoint(root, entrypoint)
-    if ep:
-        return ep.load()(root)
+    for ep in iter_matching_entrypoints(root, entrypoint):
+        version = ep.load()(root)
+        if version:
+            return version
 
 
 def dump_version(root, version, write_to, template=None):
@@ -79,7 +80,8 @@
             root, 'setuptools_scm.parse_scm_fallback')
     else:
         # include fallbacks after dropping them from the main entrypoint
-        version = version_from_scm(root)
+        version = version_from_scm(root) or _version_from_entrypoint(
+            root, 'setuptools_scm.parse_scm_fallback')
 
     if version:
         return version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/discover.py 
new/setuptools_scm-1.15.6/setuptools_scm/discover.py
--- old/setuptools_scm-1.15.0/setuptools_scm/discover.py        2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/discover.py        2017-06-15 
21:24:23.000000000 +0200
@@ -3,11 +3,11 @@
 from .utils import trace
 
 
-def find_matching_entrypoint(path, entrypoint):
+def iter_matching_entrypoints(path, entrypoint):
     trace('looking for ep', entrypoint, path)
     for ep in iter_entry_points(entrypoint):
         if os.path.exists(os.path.join(path, ep.name)):
             if os.path.isabs(ep.name):
                 trace('ignoring bad ep', ep)
             trace('found ep', ep)
-            return ep
+            yield ep
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/git.py 
new/setuptools_scm-1.15.6/setuptools_scm/git.py
--- old/setuptools_scm-1.15.0/setuptools_scm/git.py     2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/git.py     2017-06-15 
21:24:23.000000000 +0200
@@ -4,7 +4,7 @@
 import warnings
 
 FILES_COMMAND = 'git ls-files'
-DEFAULT_DESCRIBE = 'git describe --tags --long --match *.*'
+DEFAULT_DESCRIBE = 'git describe --dirty --tags --long --match *.*'
 
 
 def _normalized(path):
@@ -77,24 +77,37 @@
     """
     if not has_command('git'):
         return
-    wd = GitWorkdir(root)
+
+    wd = GitWorkdir.from_potential_worktree(root)
+    if wd is None:
+        return
     if pre_parse:
         pre_parse(wd)
-    rev_node = wd.node()
-    dirty = wd.is_dirty()
-
-    if rev_node is None:
-        return meta('0.0', distance=0, dirty=dirty)
 
     out, err, ret = do_ex(describe_command, root)
     if ret:
+        # If 'git describe' failed, try to get the information otherwise.
+        rev_node = wd.node()
+        dirty = wd.is_dirty()
+
+        if rev_node is None:
+            return meta('0.0', distance=0, dirty=dirty)
+
         return meta(
             '0.0',
             distance=wd.count_all_nodes(),
-            node=rev_node,
+            node='g' + rev_node,
             dirty=dirty,
         )
 
+    # 'out' looks e.g. like 'v1.5.0-0-g4060507' or
+    # 'v1.15.1rc1-37-g9bd1298-dirty'.
+    if out.endswith('-dirty'):
+        dirty = True
+        out = out[:-6]
+    else:
+        dirty = False
+
     tag, number, node = out.rsplit('-', 2)
     number = int(number)
     if number:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/hacks.py 
new/setuptools_scm-1.15.6/setuptools_scm/hacks.py
--- old/setuptools_scm-1.15.0/setuptools_scm/hacks.py   2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/hacks.py   2017-06-15 
21:24:23.000000000 +0200
@@ -10,4 +10,15 @@
     data = data_from_mime(pkginfo)
     version = data.get('Version')
     if version != 'UNKNOWN':
-        return meta(version)
+        return meta(version, preformatted=True)
+
+
+def parse_pip_egg_info(root):
+    pipdir = os.path.join(root, 'pip-egg-info')
+    if not os.path.isdir(pipdir):
+        return
+    items = os.listdir(pipdir)
+    trace('pip-egg-info', pipdir, items)
+    if not items:
+        return
+    return parse_pkginfo(os.path.join(pipdir, items[0]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/hg.py 
new/setuptools_scm-1.15.6/setuptools_scm/hg.py
--- old/setuptools_scm-1.15.0/setuptools_scm/hg.py      2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/hg.py      2017-06-15 
21:24:23.000000000 +0200
@@ -7,7 +7,7 @@
 
 def _hg_tagdist_normalize_tagcommit(root, tag, dist, node):
     dirty = node.endswith('+')
-    node = node.strip('+')
+    node = 'h' + node.strip('+')
     revset = ("(branch(.) and tag({tag!r})::. and file('re:^(?!\.hgtags).*$')"
               " - tag({tag!r}))").format(tag=tag)
     if tag != '0.0':
@@ -26,6 +26,8 @@
     if not has_command('hg'):
         return
     l = do('hg id -i -t', root).split()
+    if not l:
+        return
     node = l.pop(0)
     tags = tags_to_versions(l)
     # filter tip in degraded mode on old setuptools
@@ -56,14 +58,17 @@
 
 def archival_to_version(data):
     trace('data', data)
+    node = data.get('node', '')[:12]
+    if node:
+        node = 'h' + node
     if 'tag' in data:
         return meta(data['tag'])
     elif 'latesttag' in data:
         return meta(data['latesttag'],
                     distance=data['latesttagdistance'],
-                    node=data['node'][:12])
+                    node=node)
     else:
-        return meta('0.0', node=data.get('node', '')[:12])
+        return meta('0.0', node=node)
 
 
 def parse_archival(root):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/integration.py 
new/setuptools_scm-1.15.6/setuptools_scm/integration.py
--- old/setuptools_scm-1.15.0/setuptools_scm/integration.py     2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/integration.py     2017-06-15 
21:24:23.000000000 +0200
@@ -2,7 +2,7 @@
 
 from .version import _warn_if_setuptools_outdated
 from .utils import do
-from .discover import find_matching_entrypoint
+from .discover import iter_matching_entrypoints
 from . import get_version
 
 
@@ -14,7 +14,10 @@
         value = {}
     if getattr(value, '__call__', None):
         value = value()
-    if os.path.exists('PKG-INFO'):
+    # this piece of code is a hack to counter the mistake in root finding
+    matching_fallbacks = iter_matching_entrypoints(
+        '.', 'setuptools_scm.parse_scm_fallback')
+    if any(matching_fallbacks):
         value.pop('root', None)
     dist.metadata.version = get_version(**value)
 
@@ -23,7 +26,8 @@
     if not path:
         path = '.'
     abs = os.path.abspath(path)
-    ep = find_matching_entrypoint(abs, 'setuptools_scm.files_command')
+    ep = next(iter_matching_entrypoints(
+        abs, 'setuptools_scm.files_command'), None)
     if ep:
         command = ep.load()
         try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/setuptools_scm/version.py 
new/setuptools_scm-1.15.6/setuptools_scm/version.py
--- old/setuptools_scm-1.15.0/setuptools_scm/version.py 2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm/version.py 2017-06-15 
21:24:23.000000000 +0200
@@ -1,5 +1,6 @@
 from __future__ import print_function
 import datetime
+import warnings
 import re
 from .utils import trace
 
@@ -23,6 +24,7 @@
     trace('ep', (group, callable_or_name))
     if isinstance(callable_or_name, str):
         for ep in iter_entry_points(group, callable_or_name):
+            trace("ep found:", ep.name)
             return ep.load()
     else:
         return callable_or_name
@@ -30,8 +32,12 @@
 
 def tag_to_version(tag):
     trace('tag', tag)
+    if '+' in tag:
+        warnings.warn("tag %r will be stripped of the local component" % tag)
+        tag = tag.split('+')[0]
     # lstrip the v because of py2/py3 differences in setuptools
     # also required for old versions of setuptools
+
     version = tag.rsplit('-', 1)[-1].lstrip('v')
     if parse_version is None:
         return version
@@ -49,7 +55,10 @@
 class ScmVersion(object):
     def __init__(self, tag_version,
                  distance=None, node=None, dirty=False,
+                 preformatted=False,
                  **kw):
+        if kw:
+            trace("unknown args", kw)
         self.tag = tag_version
         if dirty and distance is None:
             distance = 0
@@ -58,6 +67,7 @@
         self.time = datetime.datetime.now()
         self.extra = kw
         self.dirty = dirty
+        self.preformatted = preformatted
 
     @property
     def exact(self):
@@ -78,24 +88,45 @@
         return self.format_with(dirty_format if self.dirty else clean_format)
 
 
-def meta(tag, distance=None, dirty=False, node=None, **kw):
+def _parse_tag(tag, preformatted):
+    if preformatted:
+        return tag
     if SetuptoolsVersion is None or not isinstance(tag, SetuptoolsVersion):
         tag = tag_to_version(tag)
-    trace('version', tag)
+    return tag
+
 
+def meta(tag, distance=None, dirty=False, node=None, preformatted=False, **kw):
+    tag = _parse_tag(tag, preformatted)
+    trace('version', tag)
     assert tag is not None, 'cant parse version %s' % tag
-    return ScmVersion(tag, distance, node, dirty, **kw)
+    return ScmVersion(tag, distance, node, dirty, preformatted, **kw)
 
 
 def guess_next_version(tag_version, distance):
-    version = str(tag_version)
-    if '.dev' in version:
-        prefix, tail = version.rsplit('.dev', 1)
-        assert tail == '0', 'own dev numbers are unsupported'
-        return '%s.dev%s' % (prefix, distance)
-    else:
-        prefix, tail = re.match('(.*?)(\d+)$', version).groups()
-        return '%s%d.dev%s' % (prefix, int(tail) + 1, distance)
+    version = _strip_local(str(tag_version))
+    bumped = _bump_dev(version) or _bump_regex(version)
+    suffix = '.dev%s' % distance
+    return bumped + suffix
+
+
+def _strip_local(version_string):
+    public, sep, local = version_string.partition('+')
+    return public
+
+
+def _bump_dev(version):
+    if '.dev' not in version:
+        return
+
+    prefix, tail = version.rsplit('.dev', 1)
+    assert tail == '0', 'own dev numbers are unsupported'
+    return prefix
+
+
+def _bump_regex(version):
+    prefix, tail = re.match('(.*?)(\d+)$', version).groups()
+    return '%s%d' % (prefix, int(tail) + 1)
 
 
 def guess_next_dev_version(version):
@@ -109,7 +140,7 @@
     if version.exact or version.node is None:
         return version.format_choice("", "+d{time:%Y%m%d}")
     else:
-        return version.format_choice("+n{node}", "+n{node}.d{time:%Y%m%d}")
+        return version.format_choice("+{node}", "+{node}.d{time:%Y%m%d}")
 
 
 def get_local_dirty_tag(version):
@@ -126,6 +157,8 @@
 def format_version(version, **config):
     trace('scm version', version)
     trace('config', config)
+    if version.preformatted:
+        return version.tag
     version_scheme = callable_or_entrypoint(
         'setuptools_scm.version_scheme', config['version_scheme'])
     local_scheme = callable_or_entrypoint(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools_scm-1.15.0/setuptools_scm.egg-info/PKG-INFO 
new/setuptools_scm-1.15.6/setuptools_scm.egg-info/PKG-INFO
--- old/setuptools_scm-1.15.0/setuptools_scm.egg-info/PKG-INFO  2016-10-20 
23:55:36.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm.egg-info/PKG-INFO  2017-06-15 
21:24:45.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: setuptools-scm
-Version: 1.15.0
+Version: 1.15.6
 Summary: the blessed package to manage your versions by scm tags
 Home-page: https://github.com/pypa/setuptools_scm/
 Author: Ronny Pfannschmidt
@@ -26,7 +26,6 @@
         1. Add :code:`'setuptools_scm'` to the :code:`setup_requires` parameter
         2. Add the :code:`use_scm_version` parameter and set it to ``True``
         
-        
            E.g.:
         
            .. code:: python
@@ -39,18 +38,47 @@
                    ...,
                )
         
+           Arguments to ``get_version()`` (see below) may be passed as a
+           dictionary to ``use_scm_version``. For example:
+        
+           .. code:: python
+        
+               from setuptools import setup
+               setup(
+                   ...,
+                   use_scm_version = {"root": "..", "relative_to": __file__},
+                   setup_requires=['setuptools_scm'],
+                   ...,
+               )
+        
+        
+        3. Access the version number in your package via :code:`pkg_resources`
+        
+           E.g. (`PEP-0396 <https://www.python.org/dev/peps/pep-0396>`_):
+        
+           .. code:: python
+        
+              from pkg_resources import get_distribution, DistributionNotFound
+              try:
+                  __version__ = get_distribution(__name__).version
+              except DistributionNotFound:
+                 # package is not installed
+                 pass
+        
         
         Programmatic usage
         ------------------
         
-        In order to use setuptools_scm from code
-        that one directory deeper than the project's root, you can use:
+        In order to use ``setuptools_scm`` from code that one directory deeper
+        than the project's root, you can use:
         
         .. code:: python
         
             from setuptools_scm import get_version
             version = get_version(root='..', relative_to=__file__)
         
+        See `setup.py Usage`_ above for how to use this within setup.py.
+        
         
         Usage from sphinx
         -----------------
@@ -61,8 +89,8 @@
         .. code:: python
         
             from pkg_resources import get_distribution
-            release = pkg_resources('myproject').version
-            # for the example take major/minor
+            release = get_distribution('myproject').version
+            # for example take major/minor
             version = '.'.join(release.split('.')[:2])
         
         The underlying reason is, that services like readthedocs sometimes 
change
@@ -94,15 +122,18 @@
         :code:`no distance and clean`:
             :code:`{tag}`
         :code:`distance and clean`:
-            :code:`{next_version}.dev{distance}+n{revision hash}`
+            :code:`{next_version}.dev{distance}+{scm letter}{revision hash}`
         :code:`no distance and not clean`:
             :code:`{tag}+dYYYMMMDD`
         :code:`distance and not clean`:
-            :code:`{next_version}.dev{distance}+n{revision hash}.dYYYMMMDD`
+            :code:`{next_version}.dev{distance}+{scm letter}{revision 
hash}.dYYYMMMDD`
         
         The next version is calculated by adding ``1`` to the last numeric 
component
         of the tag.
         
+        For git projects, the version relies on `git describe 
<https://git-scm.com/docs/git-describe>`_,
+        so you will see an additional ``g`` prepended to the ``{revision 
hash}``.
+        
         Semantic Versioning (SemVer)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools_scm-1.15.0/setuptools_scm.egg-info/SOURCES.txt 
new/setuptools_scm-1.15.6/setuptools_scm.egg-info/SOURCES.txt
--- old/setuptools_scm-1.15.0/setuptools_scm.egg-info/SOURCES.txt       
2016-10-20 23:55:36.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm.egg-info/SOURCES.txt       
2017-06-15 21:24:45.000000000 +0200
@@ -1,5 +1,4 @@
 .gitignore
-.hgtags
 .travis.yml
 CHANGELOG.rst
 LICENSE
@@ -25,6 +24,7 @@
 setuptools_scm.egg-info/top_level.txt
 setuptools_scm.egg-info/zip-safe
 testing/conftest.py
+testing/runtests_travis.py
 testing/test_basic_api.py
 testing/test_functions.py
 testing/test_git.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools_scm-1.15.0/setuptools_scm.egg-info/entry_points.txt 
new/setuptools_scm-1.15.6/setuptools_scm.egg-info/entry_points.txt
--- old/setuptools_scm-1.15.0/setuptools_scm.egg-info/entry_points.txt  
2016-10-20 23:55:36.000000000 +0200
+++ new/setuptools_scm-1.15.6/setuptools_scm.egg-info/entry_points.txt  
2017-06-15 21:24:45.000000000 +0200
@@ -9,13 +9,10 @@
         .hg = setuptools_scm.hg:parse
         .git = setuptools_scm.git:parse
 
-        # those are left here for backward compatibility in the 1.x series
-        .hg_archival.txt = setuptools_scm.hg:parse_archival
-        PKG-INFO = setuptools_scm.hacks:parse_pkginfo
-
         [setuptools_scm.parse_scm_fallback]
         .hg_archival.txt = setuptools_scm.hg:parse_archival
         PKG-INFO = setuptools_scm.hacks:parse_pkginfo
+        pip-egg-info = setuptools_scm.hacks:parse_pip_egg_info
 
         [setuptools_scm.files_command]
         .hg = setuptools_scm.hg:FILES_COMMAND
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/conftest.py 
new/setuptools_scm-1.15.6/testing/conftest.py
--- old/setuptools_scm-1.15.0/testing/conftest.py       2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/conftest.py       2017-06-15 
21:24:23.000000000 +0200
@@ -52,14 +52,26 @@
         self(self.add_command)
         self.commit(reason=reason)
 
-    @property
-    def version(self):
+    def get_version(self, **kw):
         __tracebackhide__ = True
         from setuptools_scm import get_version
-        version = get_version(root=str(self.cwd))
+        version = get_version(root=str(self.cwd), **kw)
         print(version)
         return version
 
+    @property
+    def version(self):
+        __tracebackhide__ = True
+        return self.get_version()
+
+
[email protected]_fixture(autouse=True)
+def debug_mode():
+    from setuptools_scm import utils
+    utils.DEBUG = True
+    yield
+    utils.DEBUG = False
+
 
 @pytest.fixture
 def wd(tmpdir):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/runtests_travis.py 
new/setuptools_scm-1.15.6/testing/runtests_travis.py
--- old/setuptools_scm-1.15.0/testing/runtests_travis.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/setuptools_scm-1.15.6/testing/runtests_travis.py        2017-06-15 
21:24:23.000000000 +0200
@@ -0,0 +1,17 @@
+
+from subprocess import call
+
+import os
+
+if os.environ.get('TOXENV'):
+    # normal tox run, lets jsut have tox do its job
+    import tox
+    tox.cmdline()
+elif os.environ.get('SELFINSTALL'):
+    # self install testing needs some clarity
+    # so its being executed without any other tools running
+    call('python setup.py sdist', shell=True)
+    call('easy_install dist/*', shell=True)
+    import pkg_resources
+    dist = pkg_resources.get_distribution('setuptools_scm')
+    assert set(dist.version) == set(".0"), dist.version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/test_basic_api.py 
new/setuptools_scm-1.15.6/testing/test_basic_api.py
--- old/setuptools_scm-1.15.0/testing/test_basic_api.py 2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/test_basic_api.py 2017-06-15 
21:24:23.000000000 +0200
@@ -30,6 +30,9 @@
     wd.write('PKG-INFO', 'Version: 0.1')
     assert wd.version == '0.1'
 
+    # replicate issue 167
+    assert wd.get_version(version_scheme="1.{0.distance}.0".format) == '0.1'
+
 
 def assert_root(monkeypatch, expected_root):
     """
@@ -45,9 +48,9 @@
     setuptools_scm.get_version()
 
 
-def test_root_parameter_pass_by(monkeypatch):
-    assert_root(monkeypatch, '/tmp')
-    setuptools_scm.get_version(root='/tmp')
+def test_root_parameter_pass_by(monkeypatch, tmpdir):
+    assert_root(monkeypatch, tmpdir)
+    setuptools_scm.get_version(root=tmpdir.strpath)
 
 
 def test_pretended(monkeypatch):
@@ -56,9 +59,9 @@
     assert setuptools_scm.get_version() == pretense
 
 
-def test_root_relative_to(monkeypatch):
-    assert_root(monkeypatch, '/tmp/alt')
-    __file__ = '/tmp/module/file.py'
+def test_root_relative_to(monkeypatch, tmpdir):
+    assert_root(monkeypatch, tmpdir.join('alt').strpath)
+    __file__ = tmpdir.join('module/file.py').strpath
     setuptools_scm.get_version(root='../alt', relative_to=__file__)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/test_functions.py 
new/setuptools_scm-1.15.6/testing/test_functions.py
--- old/setuptools_scm-1.15.0/testing/test_functions.py 2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/test_functions.py 2017-06-15 
21:24:23.000000000 +0200
@@ -14,6 +14,7 @@
     ('1.1', '1.2.dev0'),
     ('1.2.dev', '1.2.dev0'),
     ('1.1a2', '1.1a3.dev0'),
+    ('23.24.post2+deadbeef', '23.24.post3.dev0'),
     ])
 def test_next_tag(tag, expected):
     version = pkg_resources.parse_version(tag)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/test_git.py 
new/setuptools_scm-1.15.6/testing/test_git.py
--- old/setuptools_scm-1.15.0/testing/test_git.py       2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/test_git.py       2017-06-15 
21:24:23.000000000 +0200
@@ -19,21 +19,25 @@
     assert wd.version == '0.1.dev0'
 
     wd.commit_testfile()
-    assert wd.version.startswith('0.1.dev1+')
+    assert wd.version.startswith('0.1.dev1+g')
     assert not wd.version.endswith('1-')
 
     wd('git tag v0.1')
     assert wd.version == '0.1'
 
     wd.write('test.txt', 'test2')
-    assert wd.version.startswith('0.2.dev0+')
+    assert wd.version.startswith('0.2.dev0+g')
 
     wd.commit_testfile()
-    assert wd.version.startswith('0.2.dev1+')
+    assert wd.version.startswith('0.2.dev1+g')
 
     wd('git tag version-0.2')
     assert wd.version.startswith('0.2')
 
+    wd.commit_testfile()
+    wd('git tag version-0.2.post210+gbe48adfpost3+g0cc25f2')
+    assert wd.version.startswith('0.2')
+
 
 @pytest.mark.issue(108)
 @pytest.mark.issue(109)
@@ -92,7 +96,13 @@
     assert integration.find_files(str(wd.cwd/'project')) == []
 
 
[email protected](128)
+def test_parse_no_worktree(tmpdir):
+    ret = git.parse(str(tmpdir))
+    assert ret is None
+
+
 def test_alphanumeric_tags_match(wd):
     wd.commit_testfile()
     wd('git tag newstyle-development-started')
-    assert wd.version.startswith('0.1.dev1+')
+    assert wd.version.startswith('0.1.dev1+g')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/test_mercurial.py 
new/setuptools_scm-1.15.6/testing/test_mercurial.py
--- old/setuptools_scm-1.15.0/testing/test_mercurial.py 2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/test_mercurial.py 2017-06-15 
21:24:23.000000000 +0200
@@ -1,5 +1,5 @@
 from setuptools_scm import format_version
-from setuptools_scm.hg import archival_to_version
+from setuptools_scm.hg import archival_to_version, parse
 from setuptools_scm import integration
 
 import pytest
@@ -12,9 +12,10 @@
     wd.commit_command = 'hg commit -m test-{reason} -u test -d "0 0"'
     return wd
 
+
 archival_mapping = {
     '1.0': {'tag': '1.0'},
-    '1.1.dev3+n000000000000': {
+    '1.1.dev3+h000000000000': {
         'latesttag': '1.0',
         'latesttagdistance': '3',
         'node': '0'*20,
@@ -90,7 +91,7 @@
         'latesttagdistance: 3\n'
     )
 
-    assert wd.version == '0.2.dev3+n000000000000'
+    assert wd.version == '0.2.dev3+h000000000000'
 
 
 @pytest.mark.issue('#72')
@@ -101,3 +102,9 @@
     wd.commit_testfile()
     wd('hg merge --tool :merge')
     assert wd.version is not None
+
+
[email protected](128)
+def test_parse_no_worktree(tmpdir):
+    ret = parse(str(tmpdir))
+    assert ret is None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/testing/test_regressions.py 
new/setuptools_scm-1.15.6/testing/test_regressions.py
--- old/setuptools_scm-1.15.0/testing/test_regressions.py       2016-10-20 
23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/testing/test_regressions.py       2017-06-15 
21:24:23.000000000 +0200
@@ -1,9 +1,12 @@
 import sys
+import subprocess
 
-import pytest
+from setuptools_scm import get_version
 from setuptools_scm.git import parse
 from setuptools_scm.utils import do_ex, do
 
+import pytest
+
 
 def test_pkginfo_noscmroot(tmpdir, monkeypatch):
     """if we are indeed a sdist, the root does not apply"""
@@ -16,19 +19,45 @@
         'from setuptools import setup;'
         'setup(use_scm_version={"root": ".."})')
 
-    _, stderr, ret = do_ex('python setup.py --version', p)
+    _, stderr, ret = do_ex((sys.executable, 'setup.py', '--version'), p)
     assert 'setuptools-scm was unable to detect version for' in stderr
     assert ret == 1
 
     p.join("PKG-INFO").write('Version: 1.0')
-    res = do('python setup.py --version', p)
+    res = do((sys.executable, 'setup.py', '--version'), p)
     assert res == '1.0'
 
     do('git init', p.dirpath())
-    res = do('python setup.py --version', p)
+    res = do((sys.executable, 'setup.py', '--version'), p)
     assert res == '1.0'
 
 
+def test_pip_egg_info(tmpdir, monkeypatch):
+    """if we are indeed a sdist, the root does not apply"""
+
+    # we should get the version from pkg-info if git is broken
+    p = tmpdir.ensure('sub/package', dir=1)
+    tmpdir.mkdir('.git')
+    p.join('setup.py').write(
+        'from setuptools import setup;'
+        'setup(use_scm_version={"root": ".."})')
+
+    with pytest.raises(LookupError):
+        get_version(root=p.strpath)
+
+    p.ensure('pip-egg-info/random.egg-info/PKG-INFO').write('Version: 1.0')
+    assert get_version(root=p.strpath) == '1.0'
+
+
[email protected](164)
+def test_pip_download(tmpdir, monkeypatch):
+    monkeypatch.chdir(tmpdir)
+    subprocess.check_call([
+        sys.executable, '-c',
+        'import pip;pip.main()', 'download', 'lz4==0.9.0',
+    ])
+
+
 def test_use_scm_version_callable(tmpdir, monkeypatch):
     """use of callable as use_scm_version argument"""
     monkeypatch.delenv("SETUPTOOLS_SCM_DEBUG")
@@ -45,7 +74,7 @@
 ''')
     p.join("PKG-INFO").write('Version: 1.0')
 
-    res = do('python setup.py --version', p)
+    res = do((sys.executable, 'setup.py', '--version'), p)
     assert res == '1.0'
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools_scm-1.15.0/tox.ini 
new/setuptools_scm-1.15.6/tox.ini
--- old/setuptools_scm-1.15.0/tox.ini   2016-10-20 23:55:22.000000000 +0200
+++ new/setuptools_scm-1.15.6/tox.ini   2017-06-15 21:24:23.000000000 +0200
@@ -8,7 +8,6 @@
 [testenv]
 usedevelop=True
 deps=
-    py==1.4.26
     pytest
 commands=
     test: py.test []


Reply via email to