Bug 1693818

Summary: python-chameleon FTBFS with Python 3.8: No handler for ``Constant`` (<_ast.Constant object at ...>)
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-chameleonAssignee: Fedora Infrastructure SIG <infra-sig>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: a.badger, infra-sig, lewk, rbean, tdabasin
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: 2019-04-09 17:33:24 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: 1678778    
Bug Blocks: 1686977    
Attachments:
Description Flags
Full log from Copr none

Description Miro Hrončok 2019-03-28 17:13:11 UTC
Created attachment 1549149 [details]
Full log from Copr

======================================================================
ERROR: test_boolean_attributes (chameleon.tests.test_templates.ZopePageTemplatesTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/tests/test_templates.py", line 562, in test_boolean_attributes
    template = self.from_string(
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/zpt/template.py", line 192, in __init__
    super(PageTemplate, self).__init__(body, **config)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/template.py", line 128, in __init__
    self.write(body)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/template.py", line 221, in write
    self.cook(body)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/template.py", line 158, in cook
    program = self._cook(body, digest, names)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/template.py", line 231, in _cook
    source = self._compile(body, builtins)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/template.py", line 265, in _compile
    compiler = Compiler(
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/compiler.py", line 949, in __init__
    generator = TemplateCodeGenerator(module, source)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 116, in __init__
    super(TemplateCodeGenerator, self).__init__(tree)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 226, in __init__
    self.visit(tree)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 201, in visit
    super(TemplateCodeGenerator, self).visit(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 286, in visit
    ret = visitor(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 119, in visit_Module
    super(TemplateCodeGenerator, self).visit_Module(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 293, in visit_Module
    self.visit(n)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 201, in visit
    super(TemplateCodeGenerator, self).visit(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 286, in visit
    ret = visitor(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 387, in visit_Assign
    self.visit(node.value)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 201, in visit
    super(TemplateCodeGenerator, self).visit(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 286, in visit
    ret = visitor(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 829, in visit_Call
    self.visit(arg)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/codegen.py", line 201, in visit
    super(TemplateCodeGenerator, self).visit(node)
  File "/builddir/build/BUILD/Chameleon-3.4/src/chameleon/astutil.py", line 284, in visit
    raise Exception('No handler for ``%s`` (%s).' % (
Exception: No handler for ``Constant`` (<_ast.Constant object at 0x7fe860fbbe20>).



That is python-chameleon-3.4-2.fc31. This blocks the bootstrap of Python 3.8.
This is needed by pyramid and hence bodhi - setting high severity.

Comment 1 Miro Hrončok 2019-04-04 14:47:12 UTC
I got to pyramid in in bootstrap sequence. Can we try to get chameleon updated? Recent upstream is 3.6.1 from this Monday.

Comment 2 Miro Hrončok 2019-04-04 14:50:57 UTC
Running tox on upstream checkout reveals that 3.4 fails but 3.6.1 passes.

Comment 3 Miro Hrončok 2019-04-04 14:52:54 UTC
Git bisect gives: https://github.com/malthe/chameleon/pull/273 Add support for Python 3.8

That is included since 3.5.

Comment 4 Miro Hrončok 2019-04-09 17:33:24 UTC
Fixed in git.