Bug 1672741 - python-setuptools_scm FTBFS on EPEL7
Summary: python-setuptools_scm FTBFS on EPEL7
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-setuptools_scm
Version: epel7
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-02-05 18:10 UTC by Miro Hrončok
Modified: 2019-02-25 02:31 UTC (History)
5 users (show)

Fixed In Version: python-setuptools_scm-1.17.0-1.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-02-25 02:31:43 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2019-02-05 18:10:26 UTC
python-setuptools_scm-1.10.1-2.el7 fails to build from source with 4 test failures:


=================================== FAILURES ===================================
____________________________ test_version_from_git _____________________________

wd = <conftest.Wd object at 0x7fe03e102630>

    def test_version_from_git(wd):
        assert wd.version == '0.0'
    
        wd.commit_testfile()
        assert wd.version.startswith('0.1.dev1+')
        assert not wd.version.endswith('1-')
    
        wd('git tag v0.1')
>       assert wd.version == '0.1'
E       assert 'v0.1' == '0.1'
E         - v0.1
E         ? -
E         + 0.1

testing/test_git.py:23: AssertionError
---------------------------- Captured stdout setup -----------------------------
cmd 'git init'
out b'Initialized empty Git repository in /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0/.git/\n'
cmd 'git config user.email test'
cmd 'git config user.name "a test"'
----------------------------- Captured stdout call -----------------------------
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out b'/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
ret 1
version 0.0
scm version <ScmVersion 0.0 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.0
local_version 
0.0
cmd 'git add .'
cmd 'git commit -m test-number-0'
out b'[master (root-commit) 2ad5f2c] test-number-0\n 1 file changed, 1 insertion(+)\n create mode 100644 test.txt\n'
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out b'/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out b'2ad5f2ce6985fd6692d7b362bd805a1e4a555ede\n'
cmd 'git describe --dirty --tags --long --match *.*'
err b'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out b'2ad5f2ce6985fd6692d7b362bd805a1e4a555ede\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=2ad5f2c d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev1
local_version +n2ad5f2c
0.1.dev1+n2ad5f2c
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out b'/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out b'2ad5f2ce6985fd6692d7b362bd805a1e4a555ede\n'
cmd 'git describe --dirty --tags --long --match *.*'
err b'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out b'2ad5f2ce6985fd6692d7b362bd805a1e4a555ede\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=2ad5f2c d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev1
local_version +n2ad5f2c
0.1.dev1+n2ad5f2c
cmd 'git tag v0.1'
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out b'/tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-of-mockbuild/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out b'2ad5f2ce6985fd6692d7b362bd805a1e4a555ede\n'
cmd 'git describe --dirty --tags --long --match *.*'
out b'v0.1-0-g2ad5f2c\n'
version v0.1
scm version <ScmVersion v0.1 d=None n=g2ad5f2c d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version v0.1
local_version 
v0.1
____________________ test_archival_to_version[1.2.2-data3] _____________________

expected = '1.2.2', data = {'tag': 'release-1.2.2'}

    @pytest.mark.parametrize('expected,data', sorted(archival_mapping.items()))
    def test_archival_to_version(expected, data):
        version = archival_to_version(data)
>       assert format_version(
            version,
            version_scheme='guess-next-dev',
            local_scheme='node-and-date') == expected
E       assert 'release-1.2.2' == '1.2.2'
E         - release-1.2.2
E         + 1.2.2

testing/test_mercurial.py:34: AssertionError
----------------------------- Captured stdout call -----------------------------
data {'tag': 'release-1.2.2'}
version release-1.2.2
scm version <ScmVersion release-1.2.2 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version release-1.2.2
local_version 
__________________ test_archival_to_version[1.2.2.dev0-data4] __________________

expected = '1.2.2.dev0', data = {'tag': 'release-1.2.2.dev'}

    @pytest.mark.parametrize('expected,data', sorted(archival_mapping.items()))
    def test_archival_to_version(expected, data):
        version = archival_to_version(data)
>       assert format_version(
            version,
            version_scheme='guess-next-dev',
            local_scheme='node-and-date') == expected
E       assert 'release-1.2.2.dev' == '1.2.2.dev0'
E         - release-1.2.2.dev
E         + 1.2.2.dev0

testing/test_mercurial.py:34: AssertionError
----------------------------- Captured stdout call -----------------------------
data {'tag': 'release-1.2.2.dev'}
version release-1.2.2.dev
scm version <ScmVersion release-1.2.2.dev d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version release-1.2.2.dev
local_version 
___________________________ test_version_from_hg_id ____________________________

wd = <conftest.Wd object at 0x7fe03e10c278>

    def test_version_from_hg_id(wd):
        assert wd.version == '0.0'
    
        wd.commit_testfile()
        assert wd.version.startswith('0.1.dev2+')
    
        # tagging commit is considered the tag
        wd('hg tag v0.1 -u test -d "0 0"')
>       assert wd.version == '0.1'
E       assert 'v0.1' == '0.1'
E         - v0.1
E         ? -
E         + 0.1

testing/test_mercurial.py:55: AssertionError
---------------------------- Captured stdout setup -----------------------------
cmd 'hg init'
----------------------------- Captured stdout call -----------------------------
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out b'000000000000 tip\n'
tag tip
initial node /tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0
version 0.0
scm version <ScmVersion 0.0 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.0
local_version 
0.0
cmd 'hg add .'
out b'adding test.txt\n'
cmd 'hg commit -m test-number-0 -u test -d "0 0"'
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out b'e8d34603ffb9 tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}\n"'
out b'null 1\n'
cmd 'hg st --no-status --change e8d34603ffb9'
out b'test.txt\n'
normalize {'dist': 2, 'node': 'e8d34603ffb9', 'root': '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0', 'st': 'test.txt', 'tag': '0.0', 'dirty': False}
version 0.0
scm version <ScmVersion 0.0 d=2 n=e8d34603ffb9 d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev2
local_version +ne8d34603ffb9
0.1.dev2+ne8d34603ffb9
cmd 'hg tag v0.1 -u test -d "0 0"'
root '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out b'8689032c6fdf tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}\n"'
out b'v0.1 1\n'
cmd 'hg st --no-status --change 8689032c6fdf'
out b'.hgtags\n'
normalize {'dist': '1', 'node': '8689032c6fdf', 'root': '/tmp/pytest-of-mockbuild/pytest-0/test_version_from_hg_id0', 'st': '.hgtags', 'tag': 'v0.1', 'dirty': False}
version v0.1
scm version <ScmVersion v0.1 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version v0.1
local_version 
v0.1
===================== 4 failed, 34 passed in 1.54 seconds ======================



This is particularly bad for the switch to 3.6 which is impossible now for this package and other packages buildrequire it.

This happens with python 3.4 and 3.6 alike.

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=32556748

We might want to fix those or skip the tests if absolutely needed.

Comment 1 Orion Poplawski 2019-02-06 03:43:25 UTC
I note that even a small update to 1.11.1 reduces the test failures down to just test_archival_to_version[1.2.2.dev0-data4].  And all tests pass with 1.17.0 (the last release before 2.0.0), except for test_pip_download which won't work in koji regardless.  So I would suggest updating to that.

Comment 2 Miro Hrončok 2019-02-06 09:54:19 UTC
Thanks.

I can actually check whether all dependent packages build against it and if so, I'll update it.

Comment 3 Miro Hrončok 2019-02-06 11:55:56 UTC
test_pip_download actually passes with pip installed.

Comment 4 Miro Hrončok 2019-02-06 12:13:19 UTC
python-pytest-runner builds fine (at least on 3.6)

Comment 5 Miro Hrončok 2019-02-06 12:25:59 UTC
borgbackup works as well, I'm going to ship this.

Comment 6 Fedora Update System 2019-02-06 12:33:28 UTC
python-setuptools_scm-1.17.0-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-04ca6ab6c9

Comment 7 Fedora Update System 2019-02-10 02:12:44 UTC
python-setuptools_scm-1.17.0-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-04ca6ab6c9

Comment 8 Fedora Update System 2019-02-25 02:31:43 UTC
python-setuptools_scm-1.17.0-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.