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 1746850

Summary: python-nineml fails to build with Python 3.8 on Fedora 32+
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-ninemlAssignee: Ankur Sinha (FranciscoD) <sanjay.ankur>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 32CC: mplch, neuro-sig, sanjay.ankur
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-16 20:19:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908, 1750909, 1686977    

Description Miro Hrončok 2019-08-29 11:44:03 UTC
python-nineml fails to build with Python 3.8.0b3 in Fedora 32.

See the build failures at https://koji.fedoraproject.org/koji/search?match=glob&type=package&terms=python-nineml

+ nosetests-3.8 --exclude test_flat_body
/builddir/build/BUILD/nineml-python-1.0.1/nineml/exceptions.py:235: SyntaxWarning: invalid escape sequence \s
  ', '.join(re.sub('\s', '', str(a))
/builddir/build/BUILD/nineml-python-1.0.1/nineml/exceptions.py:238: SyntaxWarning: invalid escape sequence \s
  ', '.join(re.sub('\s', '', str(a))
/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/expressions/parser.py:143: SyntaxWarning: "is" with a literal. Did you mean "=="?
  tokval = 'True' if next_tokval is 'False' else 'False'
/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/dynamics/regimes.py:161: SyntaxWarning: invalid escape sequence \*
  """
/builddir/build/BUILD/nineml-python-1.0.1/nineml/user/selection.py:87: SyntaxWarning: invalid escape sequence \s
  """
/builddir/build/BUILD/nineml-python-1.0.1/nineml/user/projection.py:26: SyntaxWarning: invalid escape sequence \s
  """
/builddir/build/BUILD/nineml-python-1.0.1/nineml/serialization/__init__.py:284: SyntaxWarning: invalid escape sequence \.
  '[A-Z0-9-]{2,}\.?)|'  # domain...
..................E..........................E...................................................................................................................................................................................
======================================================================
ERROR: test_trigger (unittests.abstraction_test.dynamics_test.OnCondition_test)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1308, in evalf
    rf = evalf_table[x.func]
KeyError: <class 'sympy.core.relational.StrictGreaterThan'>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/expressions/base.py", line 199, in nineml_expression
    val = self.rhs.evalf(subs=kwargs)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1442, in evalf
    result = evalf(self, prec + 4, options)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1314, in evalf
    xe = x._eval_evalf(prec)
AttributeError: 'BooleanTrue' object has no attribute '_eval_evalf'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builddir/build/BUILD/nineml-python-1.0.1/test/unittests/abstraction_test/dynamics_test.py", line 713, in test_trigger
    self.assertEquals(return_values[i], python_func(**param_dict))
  File "/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/expressions/base.py", line 201, in nineml_expression
    raise NineMLUsageError(
nineml.exceptions.NineMLUsageError: Incorrect arguments provided to expression 'A > -B/tau_r': 'A', 'B', 'tau_r' (expected 'tau_r', 'B', 'A')
======================================================================
ERROR: test_Valid (unittests.abstraction_test.expressions_test.Expression_test)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1309, in evalf
    r = rf(x, prec, options)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1227, in evalf_symbol
    val = options['subs'][x]
KeyError: w
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/expressions/base.py", line 199, in nineml_expression
    val = self.rhs.evalf(subs=kwargs)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1442, in evalf
    result = evalf(self, prec + 4, options)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1309, in evalf
    r = rf(x, prec, options)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 785, in evalf_trig
    re, im, re_acc, im_acc = evalf(arg, xprec, options)
  File "/usr/lib/python3.8/site-packages/sympy/core/evalf.py", line 1314, in evalf
    xe = x._eval_evalf(prec)
AttributeError: 'ImmutableDenseNDimArray' object has no attribute '_eval_evalf'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builddir/build/BUILD/nineml-python-1.0.1/test/unittests/abstraction_test/expressions_test.py", line 85, in test_Valid
    v = return_values[i] - python_func(**param_dict)
  File "/builddir/build/BUILD/nineml-python-1.0.1/nineml/abstraction/expressions/base.py", line 201, in nineml_expression
    raise NineMLUsageError(
nineml.exceptions.NineMLUsageError: Incorrect arguments provided to expression 'sin(w)': 'w' (expected 'w')
----------------------------------------------------------------------
Ran 225 tests in 52.227s
FAILED (errors=2)

It is not important whether the problem is relevant to Python 3.8, this issue is blocking the Python 3.8 rebuilds.
If this package won't build with 3.8, it won't be installable, along with all its dependent packages, in Fedora 32 and further.

Furthermore, as it fails to install, its dependent packages will fail to install and/or build as well.

Please rebuild the package in Fedora 32 (rawhide).

Let us know here if you have any questions. Thank You!

Comment 1 Ankur Sinha (FranciscoD) 2019-08-29 12:04:47 UTC
Reported upstream already, no fix yet. Waiting.

Comment 2 Ben Cotton 2020-02-11 17:30:14 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 3 Miro Hrončok 2020-02-29 17:35:00 UTC
FranciscoD, what do we do here? Retire the package, or skip the problematic tests?

Comment 4 Ankur Sinha (FranciscoD) 2020-03-01 16:29:19 UTC
I'd rather not skip the tests since this is scientific software and upstream's CI isn't working either: https://github.com/INCF/nineml-python

Let's retire it. That's the correct thing to do. For reference, the issue was filed in August 2019: https://github.com/INCF/nineml-python/issues/45

Miro, will the script retire it or should I orphan it etc?

Comment 5 Miro Hrončok 2020-03-01 18:34:00 UTC
Retire works for me.

This is how I'd do it at this point:

$ fedpkg switch-branch f32 && fedpkg retire "Retired: Fails to rebuild with Python 3.8" && fedpkg switch-branch master && git merge f32 && git push

Comment 6 Ankur Sinha (FranciscoD) 2020-03-01 18:52:36 UTC
Done, thanks. Please close the bug when you see fit.

Comment 7 Fedora Update System 2020-03-02 10:24:04 UTC
FEDORA-2020-ec3b10864f has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-ec3b10864f

Comment 8 Fedora Update System 2020-03-02 16:40:56 UTC
fedora-obsolete-packages-32-37 has been pushed to the Fedora 32 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-2020-ec3b10864f

Comment 9 Fedora Update System 2020-03-16 20:19:34 UTC
fedora-obsolete-packages-32-37 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2020-03-16 20:31:25 UTC
fedora-obsolete-packages-32-37 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.