Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1747029 - pythran-0.9.4.post1 is available
Summary: pythran-0.9.4.post1 is available
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: pythran
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1761156
TreeView+ depends on / blocked
 
Reported: 2019-08-29 17:09 UTC by Upstream Release Monitoring
Modified: 2019-12-10 12:56 UTC (History)
3 users (show)

Fixed In Version: pythran-0.9.4post1-1.fc32
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-10 12:56:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Upstream Release Monitoring 2019-08-29 17:09:32 UTC
Latest upstream release: 0.9.3.post0
Current version/release in rawhide: 0.9.2-2.fc31
URL: https://pythran.readthedocs.io

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/21140/

Comment 1 Upstream Release Monitoring 2019-08-31 10:41:24 UTC
Latest upstream release: 0.9.3.post1
Current version/release in rawhide: 0.9.2-2.fc31
URL: https://pythran.readthedocs.io

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/21140/

Comment 2 Upstream Release Monitoring 2019-10-31 00:25:50 UTC
Latest upstream release: 0.9.4
Current version/release in rawhide: 0.9.2-2.fc31
URL: https://pythran.readthedocs.io

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/21140/

Comment 3 Upstream Release Monitoring 2019-10-31 01:34:41 UTC
Latest upstream release: 0.9.4.post0
Current version/release in rawhide: 0.9.2-2.fc31
URL: https://pythran.readthedocs.io

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/21140/

Comment 4 Miro Hrončok 2019-10-31 18:09:18 UTC
https://pypi.org/project/guzzle_sphinx_theme/ is needed

Comment 5 Miro Hrončok 2019-10-31 18:13:20 UTC
This should do as a temporary workaround:

# not yet available in Fedora
sed -i '/guzzle_sphinx_theme/d' docs/conf.py

Comment 6 Miro Hrončok 2019-10-31 19:19:31 UTC
==================================== ERRORS ====================================
_______________________ ERROR collecting pythran_test.py _______________________
import file mismatch:
imported module 'pythran_test' has this __file__ attribute:
  /builddir/build/BUILD/pythran-0.9.4post0/pythran_test.cpython-38-x86_64-linux-gnu.so
which is not the same as the test file we want to collect:
  /builddir/build/BUILD/pythran-0.9.4post0/pythran_test.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
=================================== FAILURES ===================================
______________________ pythran/tests/test_numpy_random.py ______________________
[gw1] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw1' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial0a'
__________________ TestOptimization.test_deadcodeelimination4 __________________
[gw3] linux -- Python 3.8.0 /usr/bin/python3
self = <pythran.tests.test_optimizations.TestOptimization testMethod=test_deadcodeelimination4>
    def test_deadcodeelimination4(self):
        init = 'def noeffect(i): a=[];b=[a]; __builtin__.list.append(b[0],i); return None'
        ref = 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None'
        if sys.version_info.major == 2:
            ref = ref.replace('None', '__builtin__.None')
>       self.check_ast(init, ref, ["pythran.optimizations.ForwardSubstitution",
                                   "pythran.optimizations.ConstantFolding",
                                   "pythran.optimizations.DeadCodeElimination"])
pythran/tests/test_optimizations.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
code = 'def noeffect(i): a=[];b=[a]; __builtin__.list.append(b[0],i); return None'
ref = 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None'
optimizations = [<class 'pythran.optimizations.forward_substitution.ForwardSubstitution'>, <class 'pythran.optimizations.constant_folding.ConstantFolding'>, <class 'pythran.optimizations.dead_code_elimination.DeadCodeElimination'>]
    @staticmethod
    def check_ast(code, ref, optimizations):
        """
        Check if a final node is the same as expected.
    
        Parameters
        ----------
        code : str
            code we want to check after refine and optimizations
        ref : str
            The expected dump for the AST
        optimizations : [optimization]
            list of optimisation to apply
    
        Raises
        ------
        is_same : AssertionError
            Raise if the result is not the one expected.
        """
        pm = PassManager("testing")
    
        ir, _ = frontend.parse(pm, code)
    
        optimizations = [_parse_optimization(opt) for opt in optimizations]
        refine(pm, ir, optimizations)
    
        content = pm.dump(Python, ir)
    
        if content != ref:
>           raise AssertionError(
                "AST is not the one expected. Reference was %s,"
                "but received %s" % (repr(ref), repr(content)))
E           AssertionError: AST is not the one expected. Reference was 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None',but received 'def noeffect(i):\n    pass\n    pass\n    pass\n    return __builtin__.None'
pythran/tests/__init__.py:381: AssertionError
______________________ pythran/tests/test_numpy_random.py ______________________
[gw4] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw4' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial0b'
______________________ pythran/tests/test_numpy_random.py ______________________
[gw6] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw6' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial2'
...
= 4 failed, 3054 passed, 88 skipped, 548 warnings, 1 error in 1835.75 seconds ==

Comment 7 serge_sans_paille 2019-11-06 10:25:55 UTC
The temporary workaround is fine (the package is only needed to build the doc)

Concerning the failing tests, which arch are you building on?

Comment 8 Miro Hrončok 2019-11-06 13:01:16 UTC
all

the failure is copied from x86 IIRC

https://koji.fedoraproject.org/koji/taskinfo?taskID=38693870

Comment 9 serge_sans_paille 2019-11-06 19:56:36 UTC
It's highly possible that it would be a memory issue, these tests use more memory than the usual ones... Does this fix the issue:

diff --git a/pythran/tests/test_numpy_random.py b/pythran/tests/test_numpy_random.py
index 16b450c..a3b6073 100644
--- a/pythran/tests/test_numpy_random.py
+++ b/pythran/tests/test_numpy_random.py
@@ -1166,7 +1166,7 @@ class TestNumpyRandom(TestEnv):
             a = [negative_binomial(n,p) for x in range(size)]
             return (abs(mean(a)- rmean) < .05 and abs(var(a) - rvar) < .05)
         """
-        self.run_test(code, 10 ** 6, numpy_negative_binomial0a=[int])
+        self.run_test(code, 10 ** 5, numpy_negative_binomial0a=[int])
 
     def test_numpy_negative_binomial0b(self):
         """ Check negative_binomial with 2 argument with mean and variance. """
@@ -1181,7 +1181,7 @@ class TestNumpyRandom(TestEnv):
             a = negative_binomial(n, p, size)
             return (abs(mean(a)- rmean) < 0.05 and abs(var(a) - rvar) < .05)
         """
-        self.run_test(code, 10 ** 6, numpy_negative_binomial0b=[int])
+        self.run_test(code, 10 ** 5, numpy_negative_binomial0b=[int])
 
     def test_numpy_negative_binomial2(self):
         """Check negative_binomial with shape argument with mean and variance."""
@@ -1196,7 +1196,7 @@ class TestNumpyRandom(TestEnv):
             a = negative_binomial(n, p , size=(size, size))
             return (abs(mean(a)- rmean) < .05 and abs(var(a) - rvar) < .05)
         """
-        self.run_test(code, 10 ** 3, numpy_negative_binomial2=[int])
+        self.run_test(code, 3 * 10 ** 2, numpy_negative_binomial2=[int])
 
     ###########################################################################
     #Tests for numpy.random.standard_exponential

Comment 10 Miro Hrončok 2019-11-06 20:10:59 UTC
Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=38811625

Comment 11 Miro Hrončok 2019-11-07 07:58:52 UTC
x86_64:

+ /usr/bin/python3 -m pytest -n auto -k 'not test_zig_zag_matrix_run1'
============================= test session starts ==============================
platform linux -- Python 3.8.0, pytest-4.6.6, py-1.8.0, pluggy-0.12.0
rootdir: /builddir/build/BUILD/pythran-0.9.4post0
plugins: forked-1.1.1, xdist-1.30.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I
gw0 [3146] / gw1 [3146] / gw2 [3146] / gw3 [3146] / gw4 [3146] / gw5 [3146]
......................s...s....s......................................... [  2%]
......s...................................s............................. [  4%]
.......s.....s.......................................................... [  6%]
........................................................................ [  9%]
...............s...........................s.....................s...... [ 11%]
................s.............................................s......... [ 13%]
............................................................s........... [ 16%]
.............s.......................s....s..............ss...s......... [ 18%]
..s..........s...s.........s.....s.................s............s....... [ 20%]
.............................................ssssssss......s.......s.s.. [ 22%]
...s....ss..............s...ssss..ss..s.................ss.............. [ 25%]
.......................ss..................................sss.......s.. [ 27%]
....................................s......ss........................... [ 29%]
........................................................................ [ 32%]
........................................................................ [ 34%]
........................................................................ [ 36%]
.......ss............................sss............................ss.. [ 38%]
..................s.................................................s... [ 41%]
....................................................................s... [ 43%]
........................................................................ [ 45%]
........................................................................ [ 48%]
........................................................................ [ 50%]
........................................................................ [ 52%]
........................................................................ [ 54%]
........................................................................ [ 57%]
........................................................................ [ 59%]
....F................................................................... [ 61%]
........................................................................ [ 64%]
..............[gw4] node down: Not properly terminated
f
replacing crashed worker gw4
........................................................................ [ 66%]
........................................................................ [ 69%]
........................................................................ [ 71%]
........................................................................ [ 73%]
........................................................................ [ 76%]
..................................................................s..... [ 78%]
................................F................sss.................... [ 80%]
...............................................................s........ [ 82%]
...................................s..........................s......... [ 85%]
............s..s.....................................................s.. [ 87%]
......s...............................................................s. [ 89%]
.s................s...................................ss.............s.. [ 92%]
...........................ss........................................... [ 94%]
........................................................................ [ 96%]
...............................[gw6] node down: Not properly terminated
f
replacing crashed worker gw6
.................................................................[gw5] node down: Not properly terminated
f
replacing crashed worker gw5
........
==================================== ERRORS ====================================
_______________________ ERROR collecting pythran_test.py _______________________
import file mismatch:
imported module 'pythran_test' has this __file__ attribute:
  /builddir/build/BUILD/pythran-0.9.4post0/pythran_test.cpython-38-x86_64-linux-gnu.so
which is not the same as the test file we want to collect:
  /builddir/build/BUILD/pythran-0.9.4post0/pythran_test.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
=================================== FAILURES ===================================
_____________________ TestNumpyRandom.test_numpy_laplace0b _____________________
[gw4] linux -- Python 3.8.0 /usr/bin/python3
self = <pythran.tests.test_numpy_random.TestNumpyRandom testMethod=test_numpy_laplace0b>
    def test_numpy_laplace0b(self):
        """ Check laplace with 2 argument with mean and variance. """
        code = """
        def numpy_laplace0b(size):
            from numpy.random import laplace
            from numpy import var, mean, pi
            u = 2.
            s = 2
            rmean = u
            rvar = 2*s**2
            a = laplace(u, s, size)
            return (abs(mean(a) - rmean) < 0.05 and abs(var(a) - rvar) < .05)
        """
>       self.run_test(code, 10 ** 6, numpy_laplace0b=[int])
pythran/tests/test_numpy_random.py:1480: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pythran/tests/__init__.py:340: in run_test
    self.assertAlmostEqual(python_ref, pythran_res)
pythran/tests/__init__.py:165: in assertAlmostEqual
    self.assertEqual(ref, res)
E   AssertionError: False != True
----------------------------- Captured stdout call -----------------------------
Python result:  False
Pythran result:  True
Type of Pythran res :  <class 'bool'>
Type of Python ref :  <class 'numpy.bool_'>
______________________ pythran/tests/test_numpy_random.py ______________________
[gw4] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw4' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial0a'
__________________ TestOptimization.test_deadcodeelimination4 __________________
[gw0] linux -- Python 3.8.0 /usr/bin/python3
self = <pythran.tests.test_optimizations.TestOptimization testMethod=test_deadcodeelimination4>
    def test_deadcodeelimination4(self):
        init = 'def noeffect(i): a=[];b=[a]; __builtin__.list.append(b[0],i); return None'
        ref = 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None'
        if sys.version_info.major == 2:
            ref = ref.replace('None', '__builtin__.None')
>       self.check_ast(init, ref, ["pythran.optimizations.ForwardSubstitution",
                                   "pythran.optimizations.ConstantFolding",
                                   "pythran.optimizations.DeadCodeElimination"])
pythran/tests/test_optimizations.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
code = 'def noeffect(i): a=[];b=[a]; __builtin__.list.append(b[0],i); return None'
ref = 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None'
optimizations = [<class 'pythran.optimizations.forward_substitution.ForwardSubstitution'>, <class 'pythran.optimizations.constant_folding.ConstantFolding'>, <class 'pythran.optimizations.dead_code_elimination.DeadCodeElimination'>]
    @staticmethod
    def check_ast(code, ref, optimizations):
        """
        Check if a final node is the same as expected.
    
        Parameters
        ----------
        code : str
            code we want to check after refine and optimizations
        ref : str
            The expected dump for the AST
        optimizations : [optimization]
            list of optimisation to apply
    
        Raises
        ------
        is_same : AssertionError
            Raise if the result is not the one expected.
        """
        pm = PassManager("testing")
    
        ir, _ = frontend.parse(pm, code)
    
        optimizations = [_parse_optimization(opt) for opt in optimizations]
        refine(pm, ir, optimizations)
    
        content = pm.dump(Python, ir)
    
        if content != ref:
>           raise AssertionError(
                "AST is not the one expected. Reference was %s,"
                "but received %s" % (repr(ref), repr(content)))
E           AssertionError: AST is not the one expected. Reference was 'def noeffect(i):\n    pass\n    pass\n    pass\n    return None',but received 'def noeffect(i):\n    pass\n    pass\n    pass\n    return __builtin__.None'
pythran/tests/__init__.py:381: AssertionError
______________________ pythran/tests/test_numpy_random.py ______________________
[gw6] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw6' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial0b'
______________________ pythran/tests/test_numpy_random.py ______________________
[gw5] linux -- Python 3.8.0 /usr/bin/python3
worker 'gw5' crashed while running 'pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_negative_binomial2'

Comment 12 serge_sans_paille 2019-11-08 09:49:41 UTC
ok, I think you can disable the test_numpy_negative_binomial* tests - that's memory errors due to the number of slaves and the memory requirements of these tests.
Concerning the last one, ethere's a fix here: https://github.com/serge-sans-paille/pythran/pull/1402
You can safely apply it.

Comment 13 serge_sans_paille 2019-11-13 15:56:17 UTC
@miro: There will be a post release this week that includes https://github.com/serge-sans-paille/pythran/pull/1402, but not the memory issues.

Comment 14 Upstream Release Monitoring 2019-11-14 20:07:29 UTC
Latest upstream release: 0.9.4.post1
Current version/release in rawhide: 0.9.2-2.fc31
URL: https://pythran.readthedocs.io

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/21140/

Comment 15 Miro Hrončok 2019-12-03 12:45:30 UTC
Looking into this once again.


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