Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test failures on EL7 #73

Closed
opoplawski opened this issue Jan 4, 2016 · 8 comments
Closed

Test failures on EL7 #73

opoplawski opened this issue Jan 4, 2016 · 8 comments

Comments

@opoplawski
Copy link

I'm getting the following test failures on EL7:

_________________________ test_next_tag[1.1-1.2.dev0] __________________________

tag = '1.1', expected = '1.2.dev0'

    @pytest.mark.parametrize('tag, expected', [
        ('1.1', '1.2.dev0'),
        ('1.2.dev', '1.2.dev0'),
        ('1.1a2', '1.1a3.dev0'),
        ])
    def test_next_tag(tag, expected):
        version = pkg_resources.parse_version(tag)
>       assert guess_next_version(version, 0) == expected

testing/test_functions.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

tag_version = ('00000001', '00000001', '*final'), distance = 0

    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()
E           AttributeError: 'NoneType' object has no attribute 'groups'

../../../redhat/BUILDROOT/python-setuptools_scm-1.10.1-1.el7.x86_64/usr/lib/python2.7/site-packages/setuptools_scm/version.py:96: AttributeError
_______________________ test_next_tag[1.2.dev-1.2.dev0] ________________________

tag = '1.2.dev', expected = '1.2.dev0'

    @pytest.mark.parametrize('tag, expected', [
        ('1.1', '1.2.dev0'),
        ('1.2.dev', '1.2.dev0'),
        ('1.1a2', '1.1a3.dev0'),
        ])
    def test_next_tag(tag, expected):
        version = pkg_resources.parse_version(tag)
>       assert guess_next_version(version, 0) == expected

testing/test_functions.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

tag_version = ('00000001', '00000002', '*@', '*final'), distance = 0

    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()
E           AttributeError: 'NoneType' object has no attribute 'groups'

../../../redhat/BUILDROOT/python-setuptools_scm-1.10.1-1.el7.x86_64/usr/lib/python2.7/site-packages/setuptools_scm/version.py:96: AttributeError
_______________________ test_next_tag[1.1a2-1.1a3.dev0] ________________________

tag = '1.1a2', expected = '1.1a3.dev0'

    @pytest.mark.parametrize('tag, expected', [
        ('1.1', '1.2.dev0'),
        ('1.2.dev', '1.2.dev0'),
        ('1.1a2', '1.1a3.dev0'),
        ])
    def test_next_tag(tag, expected):
        version = pkg_resources.parse_version(tag)
>       assert guess_next_version(version, 0) == expected

testing/test_functions.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

tag_version = ('00000001', '00000001', '*a', '00000002', '*final'), distance = 0

    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()
E           AttributeError: 'NoneType' object has no attribute 'groups'

../../../redhat/BUILDROOT/python-setuptools_scm-1.10.1-1.el7.x86_64/usr/lib/python2.7/site-packages/setuptools_scm/version.py:96: AttributeError
____________________________ test_version_from_git _____________________________

wd = <conftest.Wd object at 0x2674b50>

    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 'Initialized empty Git repository in /tmp/pytest-0/test_version_from_git0/.git/\n'
cmd 'git config user.email test@example.com'
cmd 'git config user.name "a test"'
----------------------------- Captured stdout call -----------------------------
root '/tmp/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out '/tmp/pytest-0/test_version_from_git0\n'
real root /tmp/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 '[master (root-commit) 1eb6888] test-number-0\n 1 file changed, 1 insertion(+)\n create mode 100644 test.txt\n'
root '/tmp/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out '/tmp/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out '1eb6888a0a2af4671446e0dfcbc705a659b75ffb\n'
cmd 'git describe --dirty --tags --long --match *.*'
err 'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out '1eb6888a0a2af4671446e0dfcbc705a659b75ffb\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=1eb6888 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 +n1eb6888
0.1.dev1+n1eb6888
root '/tmp/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out '/tmp/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out '1eb6888a0a2af4671446e0dfcbc705a659b75ffb\n'
cmd 'git describe --dirty --tags --long --match *.*'
err 'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out '1eb6888a0a2af4671446e0dfcbc705a659b75ffb\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=1eb6888 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 +n1eb6888
0.1.dev1+n1eb6888
cmd 'git tag v0.1'
root '/tmp/pytest-0/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --show-toplevel'
out '/tmp/pytest-0/test_version_from_git0\n'
real root /tmp/pytest-0/test_version_from_git0
cmd 'git rev-parse --verify --quiet HEAD'
out '1eb6888a0a2af4671446e0dfcbc705a659b75ffb\n'
cmd 'git describe --dirty --tags --long --match *.*'
out 'v0.1-0-g1eb6888\n'
version v0.1
scm version <ScmVersion v0.1 d=None n=g1eb6888 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 0x259cc50>

    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-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out '000000000000 tip\n'
tag tip
initial node /tmp/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 'adding test.txt\n'
cmd 'hg commit -m test-number-0 -u test -d "0 0"'
root '/tmp/pytest-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out 'e8d34603ffb9 tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}\n"'
out 'null 1\n'
cmd 'hg st --no-status --change e8d34603ffb9'
out 'test.txt\n'
normalize {'node': 'e8d34603ffb9', 'dist': 2, 'st': 'test.txt', 'tag': '0.0', 'dirty': False, 'root': '/tmp/pytest-0/test_version_from_hg_id0'}
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-0/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-0/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out '8689032c6fdf tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}\n"'
out 'v0.1 1\n'
cmd 'hg st --no-status --change 8689032c6fdf'
out '.hgtags\n'
normalize {'node': '8689032c6fdf', 'dist': '1', 'st': '.hgtags', 'tag': 'v0.1', 'dirty': False, 'root': '/tmp/pytest-0/test_version_from_hg_id0'}
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
===================== 7 failed, 31 passed in 2.36 seconds ======================

With:
git-1.8.3.1-6.el7.x86_64
mercurial-2.6.2-4.el7.x86_64

@RonnyPfannschmidt
Copy link
Contributor

what setuptools version is availiable there? this looks like something went very wrong and the outdated setuptools detection is not triggering

@opoplawski
Copy link
Author

python-setuptools-0.9.8-4.el7.noarch

@RonnyPfannschmidt
Copy link
Contributor

that version is too old to properly supports setuptools_scm as of now,
its very low on my priority list to fix that, but i'm up for reviewing/discussing a pr

@opoplawski
Copy link
Author

Well, it's unlikely to be updated in EL7 any time soon, so it would be nice to at least have some level of support for it. what would need to be changed/fixed?

@RonnyPfannschmidt
Copy link
Contributor

the main problem is lack of the version parser, which is used to sanely handle version number prefixes, details about correct version numbers and other details,

its tedious busywork with a lot of room for errors

@RonnyPfannschmidt
Copy link
Contributor

also note that actual sdists and wheels will not have any issue on EL7, its just the tag to version number transformation thats broken

an alternative to sanely handle it is to create a virtualenv with a reasonable version of pip/setuptools7wheel

@RonnyPfannschmidt
Copy link
Contributor

btw, this one relates to #61

@RonnyPfannschmidt
Copy link
Contributor

closing since its a old setuptools on dev env issue - as alternative try an use the SETUPTOOLS_SCM_PRETEND_VERSION env var

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants