Hello community, here is the log from the commit of package python-setuptools_scm for openSUSE:Factory checked in at 2018-08-15 10:32:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-setuptools_scm (Old) and /work/SRC/openSUSE:Factory/.python-setuptools_scm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-setuptools_scm" Wed Aug 15 10:32:45 2018 rev:16 rq:628792 version:3.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-setuptools_scm/python-setuptools_scm.changes 2018-08-02 14:56:05.332070556 +0200 +++ /work/SRC/openSUSE:Factory/.python-setuptools_scm.new/python-setuptools_scm.changes 2018-08-15 10:32:49.595685030 +0200 @@ -1,0 +2,19 @@ +Sat Aug 11 16:28:16 UTC 2018 - a...@gmx.de + +- update to version 3.1.0: + * fix #297 - correct the invocation in version_from_scm and + deprecate it as its exposed by accident + * fix #298 - handle git file listing on empty repositories + * fix #268 - deprecate ScmVersion.extra + +------------------------------------------------------------------- +Wed Aug 8 15:54:22 UTC 2018 - jeng...@inai.de + +- Use noun phrase in summary. + +------------------------------------------------------------------- +Tue Aug 7 07:19:37 UTC 2018 - tchva...@suse.com + +- Fix the multibuild code + +------------------------------------------------------------------- Old: ---- setuptools_scm-3.0.6.tar.gz New: ---- setuptools_scm-3.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-setuptools_scm.spec ++++++ --- /var/tmp/diff_new_pack.cFvF8k/_old 2018-08-15 10:32:50.143686021 +0200 +++ /var/tmp/diff_new_pack.cFvF8k/_new 2018-08-15 10:32:50.143686021 +0200 @@ -24,26 +24,30 @@ %else %bcond_with test %endif -Name: python-setuptools_scm -Version: 3.0.6 +Version: 3.1.0 Release: 0 -Summary: Manage your versions by scm tags +Summary: Python setuptools handler for 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 BuildRequires: %{python_module setuptools} +BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-setuptools -BuildRequires: fdupes BuildArch: noarch %if %{with test} +Name: python-setuptools_scm-%{flavor} +%else +Name: python-setuptools_scm +%endif +%if %{with test} # Testing requirements BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} +BuildRequires: %{python_module setuptools_scm = %{version}} BuildRequires: git BuildRequires: mercurial -Requires: this-is-only-for-build-envs %endif %if 0%{?suse_version} || 0%{?fedora_version} >= 24 Recommends: git @@ -52,8 +56,8 @@ %python_subpackages %description -The setuptools_scm package handles managing your python package versions -in scm metadata. It also handles file finders for the supperted scm's. +The setuptools_scm package handles managing one's Python package versions +in SCM metadata. It also handles file finders for the supperted SCMs. %prep %setup -q -n setuptools_scm-%{version} @@ -62,17 +66,21 @@ %python_build %install +%if !%{with test} %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif %if %{with test} %check -%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} -v -k 'not (test_pip_download or test_old_setuptools_fails or test_old_setuptools_allows_with_warnings or test_distlib_setuptools_works)' +%python_expand PYTHONPATH=%{$python_sitelib} py.test-%{$python_bin_suffix} -v -k 'not (test_pip_download or test_old_setuptools_fails or test_old_setuptools_allows_with_warnings or test_distlib_setuptools_works)' %endif %files %{python_files} %license LICENSE +%if !%{with test} %doc README.rst CHANGELOG.rst %{python_sitelib}/setuptools_scm* +%endif %changelog ++++++ setuptools_scm-3.0.6.tar.gz -> setuptools_scm-3.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/CHANGELOG.rst new/setuptools_scm-3.1.0/CHANGELOG.rst --- old/setuptools_scm-3.0.6/CHANGELOG.rst 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/CHANGELOG.rst 2018-08-09 08:35:22.000000000 +0200 @@ -1,3 +1,10 @@ +v3.1.0 +======= + +* fix #297 - correct the invocation in version_from_scm and deprecate it as its exposed by accident +* fix #298 - handle git file listing on empty repositories +* fix #268 - deprecate ScmVersion.extra + v3.0.6 ====== * fix #295 - correctly handle selfinstall from tarballs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/PKG-INFO new/setuptools_scm-3.1.0/PKG-INFO --- old/setuptools_scm-3.0.6/PKG-INFO 2018-07-31 18:28:10.000000000 +0200 +++ new/setuptools_scm-3.1.0/PKG-INFO 2018-08-09 08:35:58.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: setuptools_scm -Version: 3.0.6 +Version: 3.1.0 Summary: the blessed package to manage your versions by scm tags Home-page: https://github.com/pypa/setuptools_scm/ Author: Ronny Pfannschmidt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/__init__.py new/setuptools_scm-3.1.0/src/setuptools_scm/__init__.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/__init__.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/__init__.py 2018-08-09 08:35:22.000000000 +0200 @@ -24,8 +24,14 @@ def version_from_scm(root): + warnings.warn( + "version_from_scm is deprecated please use get_version", + category=DeprecationWarning, + ) + config = Configuration() + config.root = root # TODO: Is it API? - return _version_from_entrypoint(root, "setuptools_scm.parse_scm") + return _version_from_entrypoint(config, "setuptools_scm.parse_scm") def _call_entrypoint_fn(config, fn): @@ -35,7 +41,8 @@ warnings.warn( "parse functions are required to provide a named argument" " 'config' in the future.", - PendingDeprecationWarning, + category=PendingDeprecationWarning, + stacklevel=2, ) return fn(config.absolute_root) @@ -71,7 +78,7 @@ if pretended: # we use meta here since the pretended version # must adhere to the pep to begin with - return meta(tag=pretended, preformatted=True) + return meta(tag=pretended, preformatted=True, config=config) if config.parse: parse_result = _call_entrypoint_fn(config, config.parse) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/file_finder_git.py new/setuptools_scm-3.1.0/src/setuptools_scm/file_finder_git.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/file_finder_git.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/file_finder_git.py 2018-08-09 08:35:22.000000000 +0200 @@ -1,8 +1,11 @@ import os import subprocess import tarfile - +import logging from .file_finder import scm_find_files +from .utils import trace + +log = logging.getLogger(__name__) def _git_toplevel(path): @@ -14,6 +17,7 @@ universal_newlines=True, stderr=devnull, ) + trace("find files toplevel", out) return os.path.normcase(os.path.realpath(out.strip())) except subprocess.CalledProcessError: # git returned error, we are not in a git repo @@ -23,12 +27,8 @@ return None -def _git_ls_files_and_dirs(toplevel): - # use git archive instead of git ls-file to honor - # export-ignore git attribute - cmd = ["git", "archive", "--prefix", toplevel + os.path.sep, "HEAD"] - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=toplevel) - tf = tarfile.open(fileobj=proc.stdout, mode="r|*") +def _git_interpret_archive(fd, toplevel): + tf = tarfile.open(fileobj=fd, mode="r|*") git_files = set() git_dirs = {toplevel} for member in tf.getmembers(): @@ -40,6 +40,19 @@ return git_files, git_dirs +def _git_ls_files_and_dirs(toplevel): + # use git archive instead of git ls-file to honor + # export-ignore git attribute + cmd = ["git", "archive", "--prefix", toplevel + os.path.sep, "HEAD"] + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=toplevel) + try: + return _git_interpret_archive(proc.stdout, toplevel) + except Exception: + if proc.wait() != 0: + log.exception("listing git files failed - pretending there aren't any") + return (), () + + def git_find_files(path=""): toplevel = _git_toplevel(path) if not toplevel: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/git.py new/setuptools_scm-3.1.0/src/setuptools_scm/git.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/git.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/git.py 2018-08-09 08:35:22.000000000 +0200 @@ -108,7 +108,7 @@ dirty = wd.is_dirty() if rev_node is None: - return meta("0.0", distance=0, dirty=dirty) + return meta("0.0", distance=0, dirty=dirty, config=config) return meta( "0.0", @@ -116,6 +116,7 @@ node="g" + rev_node, dirty=dirty, branch=wd.get_branch(), + config=config, ) else: tag, number, node, dirty = _git_parse_describe(out) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/hacks.py new/setuptools_scm-3.1.0/src/setuptools_scm/hacks.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/hacks.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/hacks.py 2018-08-09 08:35:22.000000000 +0200 @@ -3,17 +3,17 @@ from .version import meta -def parse_pkginfo(root): +def parse_pkginfo(root, config=None): pkginfo = os.path.join(root, "PKG-INFO") trace("pkginfo", pkginfo) data = data_from_mime(pkginfo) version = data.get("Version") if version != "UNKNOWN": - return meta(version, preformatted=True) + return meta(version, preformatted=True, config=config) -def parse_pip_egg_info(root): +def parse_pip_egg_info(root, config=None): pipdir = os.path.join(root, "pip-egg-info") if not os.path.isdir(pipdir): return @@ -21,4 +21,4 @@ trace("pip-egg-info", pipdir, items) if not items: return - return parse_pkginfo(os.path.join(pipdir, items[0])) + return parse_pkginfo(os.path.join(pipdir, items[0]), config=config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/hg.py new/setuptools_scm-3.1.0/src/setuptools_scm/hg.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/hg.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/hg.py 2018-08-09 08:35:22.000000000 +0200 @@ -4,7 +4,7 @@ from .version import meta, tags_to_versions -def _hg_tagdist_normalize_tagcommit(root, tag, dist, node, branch): +def _hg_tagdist_normalize_tagcommit(config, tag, dist, node, branch): dirty = node.endswith("+") node = "h" + node.strip("+") @@ -19,14 +19,19 @@ tag=tag ) if tag != "0.0": - commits = do(["hg", "log", "-r", revset, "--template", "{node|short}"], root) + commits = do( + ["hg", "log", "-r", revset, "--template", "{node|short}"], + config.absolute_root, + ) else: commits = True trace("normalize", locals()) if commits or dirty: - return meta(tag, distance=dist, node=node, dirty=dirty, branch=branch) + return meta( + tag, distance=dist, node=node, dirty=dirty, branch=branch, config=config + ) else: - return meta(tag) + return meta(tag, config=config) def parse(root, config=None): @@ -40,12 +45,13 @@ return node = identity_data.pop(0) branch = identity_data.pop(0) + if "tip" in identity_data: + # tip is not a real tag + identity_data.remove("tip") tags = tags_to_versions(identity_data) - # filter tip in degraded mode on old setuptools - tags = [x for x in tags if x != "tip"] dirty = node[-1] == "+" if tags: - return meta(tags[0], dirty=dirty, branch=branch) + return meta(tags[0], dirty=dirty, branch=branch, config=config) if node.strip("+") == "0" * 12: trace("initial node", config.absolute_root) @@ -57,9 +63,7 @@ if tag == "null": tag = "0.0" dist = int(dist) + 1 - return _hg_tagdist_normalize_tagcommit( - config.absolute_root, tag, dist, node, branch - ) + return _hg_tagdist_normalize_tagcommit(config, tag, dist, node, branch) except ValueError: pass # unpacking failed, old hg @@ -80,20 +84,25 @@ return len(out.strip().splitlines()) - 1 -def archival_to_version(data): +def archival_to_version(data, config=None): trace("data", data) node = data.get("node", "")[:12] if node: node = "h" + node if "tag" in data: - return meta(data["tag"]) + return meta(data["tag"], config=config) elif "latesttag" in data: - return meta(data["latesttag"], distance=data["latesttagdistance"], node=node) + return meta( + data["latesttag"], + distance=data["latesttagdistance"], + node=node, + config=config, + ) else: - return meta("0.0", node=node) + return meta("0.0", node=node, config=config) -def parse_archival(root): +def parse_archival(root, config=None): archival = os.path.join(root, ".hg_archival.txt") data = data_from_mime(archival) - return archival_to_version(data) + return archival_to_version(data, config=config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm/version.py new/setuptools_scm-3.1.0/src/setuptools_scm/version.py --- old/setuptools_scm-3.0.6/src/setuptools_scm/version.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm/version.py 2018-08-09 08:35:22.000000000 +0200 @@ -141,18 +141,27 @@ self.distance = distance self.node = node self.time = datetime.datetime.now() - self.extra = kw + self._extra = kw self.dirty = dirty self.preformatted = preformatted self.branch = branch @property + def extra(self): + warnings.warn( + "ScmVersion.extra is deprecated and will be removed in future", + category=DeprecationWarning, + stacklevel=2, + ) + return self._extra + + @property def exact(self): return self.distance is None def __repr__(self): return self.format_with( - "<ScmVersion {tag} d={distance}" " n={node} d={dirty} b={branch} x={extra}>" + "<ScmVersion {tag} d={distance} n={node} d={dirty} b={branch}>" ) def format_with(self, fmt, **kw): @@ -162,7 +171,6 @@ distance=self.distance, node=self.node, dirty=self.dirty, - extra=self.extra, branch=self.branch, **kw ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/src/setuptools_scm.egg-info/PKG-INFO new/setuptools_scm-3.1.0/src/setuptools_scm.egg-info/PKG-INFO --- old/setuptools_scm-3.0.6/src/setuptools_scm.egg-info/PKG-INFO 2018-07-31 18:28:10.000000000 +0200 +++ new/setuptools_scm-3.1.0/src/setuptools_scm.egg-info/PKG-INFO 2018-08-09 08:35:58.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: setuptools-scm -Version: 3.0.6 +Version: 3.1.0 Summary: the blessed package to manage your versions by scm tags Home-page: https://github.com/pypa/setuptools_scm/ Author: Ronny Pfannschmidt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/testing/test_basic_api.py new/setuptools_scm-3.1.0/testing/test_basic_api.py --- old/setuptools_scm-3.0.6/testing/test_basic_api.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/testing/test_basic_api.py 2018-08-09 08:35:22.000000000 +0200 @@ -46,6 +46,11 @@ setuptools_scm.get_version() +def test_version_from_scm(wd): + with pytest.warns(DeprecationWarning, match=".*version_from_scm.*"): + setuptools_scm.version_from_scm(str(wd)) + + def test_root_parameter_pass_by(monkeypatch, tmpdir): assert_root(monkeypatch, tmpdir) setuptools_scm.get_version(root=tmpdir.strpath) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/testing/test_git.py new/setuptools_scm-3.1.0/testing/test_git.py --- old/setuptools_scm-3.0.6/testing/test_git.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/testing/test_git.py 2018-08-09 08:35:22.000000000 +0200 @@ -4,6 +4,7 @@ import pytest from datetime import date from os.path import join as opj +from setuptools_scm.file_finder_git import git_find_files @pytest.fixture @@ -28,6 +29,14 @@ assert parsed == (tag, number, node, dirty) +@pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/298") +def test_file_finder_no_history(wd, caplog): + file_list = git_find_files(str(wd.cwd)) + assert file_list == [] + + assert "listing git files failed - pretending there aren't any" in caplog.text + + @pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/281") def test_parse_call_order(wd): git.parse(str(wd.cwd), git.DEFAULT_DESCRIBE) @@ -54,7 +63,10 @@ wd.commit_testfile() wd("git tag version-0.2.post210+gbe48adfpost3+g0cc25f2") - assert wd.version.startswith("0.2") + with pytest.warns( + UserWarning, match="tag '.*' will be stripped of its suffix '.*'" + ): + assert wd.version.startswith("0.2") wd.commit_testfile() wd("git tag 17.33.0-rc") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/testing/test_mercurial.py new/setuptools_scm-3.1.0/testing/test_mercurial.py --- old/setuptools_scm-3.0.6/testing/test_mercurial.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/testing/test_mercurial.py 2018-08-09 08:35:22.000000000 +0200 @@ -1,7 +1,7 @@ from setuptools_scm import format_version from setuptools_scm.hg import archival_to_version, parse from setuptools_scm import integration - +from setuptools_scm.config import Configuration import pytest @@ -26,7 +26,8 @@ @pytest.mark.parametrize("expected,data", sorted(archival_mapping.items())) def test_archival_to_version(expected, data): - version = archival_to_version(data) + config = Configuration() + version = archival_to_version(data, config=config) assert ( format_version( version, version_scheme="guess-next-dev", local_scheme="node-and-date" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/testing/test_version.py new/setuptools_scm-3.1.0/testing/test_version.py --- old/setuptools_scm-3.0.6/testing/test_version.py 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/testing/test_version.py 2018-08-09 08:35:22.000000000 +0200 @@ -49,13 +49,20 @@ ], ) def test_tag_regex1(tag, expected): - Configuration().tag_regex = r"^(?P<prefix>v)?(?P<version>[^\+]+)(?P<suffix>.*)?$" - result = meta(tag) + config = Configuration() + config.tag_regex = r"^(?P<prefix>v)?(?P<version>[^\+]+)(?P<suffix>.*)?$" + if "+" in tag: + # pytest bug wrt cardinality + with pytest.warns(UserWarning): + result = meta(tag, config=config) + else: + result = meta(tag, config=config) + assert result.tag.public == expected @pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/286") def test_tags_to_versions(): config = Configuration() - versions = tags_to_versions(["1", "2", "3"], config=config) + versions = tags_to_versions(["1.0", "2.0", "3.0"], config=config) assert isinstance(versions, list) # enable subscription diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-3.0.6/tox.ini new/setuptools_scm-3.1.0/tox.ini --- old/setuptools_scm-3.0.6/tox.ini 2018-07-31 18:27:39.000000000 +0200 +++ new/setuptools_scm-3.1.0/tox.ini 2018-08-09 08:35:22.000000000 +0200 @@ -1,6 +1,9 @@ [tox] envlist=py{27,34,35,36,37}-test,flake8,check_readme,py{27,36}-selfcheck +[pytest] +filterwarnings=error + [flake8] max-complexity = 10 max-line-length = 88