Created attachment 1571713 [details] Full log from Copr ansible 2.8.0-3.fc31 fails to build with Python 3.8.0a4: + make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git (cd docs/docsite/; CPUS=2 make docs) make[1]: Entering directory '/builddir/build/BUILD/python3-ansible-2.8.0-3.fc31/docs/docsite' PYTHONPATH=../../lib ../bin/dump_config.py --template-file=../templates/config.rst.j2 --output-dir=rst/reference_appendices/ -d ../../lib/ansible/config/base.yml mkdir -p rst/cli PYTHONPATH=../../lib ../bin/generate_man.py --template-file=../templates/cli_rst.j2 --output-dir=rst/cli/ --output-format rst ../../lib/ansible/cli/*.py /usr/lib/python3.8/site-packages/pyasn1/type/constraint.py:100: SyntaxWarning: invalid escape sequence \* """Create a SingleValueConstraint object. /usr/lib/python3.8/site-packages/pyasn1/type/constraint.py:141: SyntaxWarning: invalid escape sequence \* """Create a ContainedSubtypeConstraint object. /usr/lib/python3.8/site-packages/pyasn1/type/constraint.py:301: SyntaxWarning: invalid escape sequence \* """Create a PermittedAlphabetConstraint object. /usr/lib/python3.8/site-packages/pyasn1/type/constraint.py:457: SyntaxWarning: invalid escape sequence \* """Create a ConstraintsIntersection logic operator object. /usr/lib/python3.8/site-packages/pyasn1/type/constraint.py:501: SyntaxWarning: invalid escape sequence \* """Create a ConstraintsUnion logic operator object. /usr/lib/python3.8/site-packages/pyasn1/type/namedval.py:15: SyntaxWarning: invalid escape sequence \* """Create named values object. PYTHONPATH=../../lib ../bin/dump_keywords.py --template-dir=../templates --output-dir=rst/reference_appendices/ -d ./keyword_desc.yml Traceback (most recent call last): File "../bin/dump_keywords.py", line 49, in <module> for a in oblist[name]: RuntimeError: dictionary keys changed during iteration make[1]: Leaving directory '/builddir/build/BUILD/python3-ansible-2.8.0-3.fc31/docs/docsite' make[1]: *** [Makefile:87: keywords] Error 1 make: *** [Makefile:398: webdocs] Error 2 Full log attached. https://copr.fedorainfracloud.org/coprs/g/python/python3.8/build/912649/
See https://github.com/python/cpython/pull/12596
Upstream PR (testing it right now): https://github.com/ansible/ansible/pull/56806
Downstream PR (testing it as well, got past the previous error): https://src.fedoraproject.org/rpms/ansible/pull-request/11
not enough: =================================== FAILURES =================================== __________ TestDellos9Facts.test_dellos9_facts_gather_subset_default ___________ [gw7] linux -- Python 3.8.0 /usr/bin/python3 self = <units.modules.network.dellos9.test_dellos9_facts.TestDellos9Facts testMethod=test_dellos9_facts_gather_subset_default> def test_dellos9_facts_gather_subset_default(self): set_module_args(dict()) > result = self.execute_module() test/units/modules/network/dellos9/test_dellos9_facts.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/units/modules/network/dellos9/dellos9_module.py:62: in execute_module result = self.changed(changed) test/units/modules/network/dellos9/dellos9_module.py:83: in changed self.module.main() lib/ansible/modules/network/dellos9/dellos9_facts.py:559: in main inst.populate() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def populate(self): super(Interfaces, self).populate() self.facts['all_ipv4_addresses'] = list() self.facts['all_ipv6_addresses'] = list() data = self.responses[0] interfaces = self.parse_interfaces(data) > for key in interfaces.keys(): E RuntimeError: dictionary keys changed during iteration lib/ansible/modules/network/dellos9/dellos9_facts.py:255: RuntimeError _________ TestDellos9Facts.test_dellos9_facts_gather_subset_interfaces _________ [gw7] linux -- Python 3.8.0 /usr/bin/python3 self = <units.modules.network.dellos9.test_dellos9_facts.TestDellos9Facts testMethod=test_dellos9_facts_gather_subset_interfaces> def test_dellos9_facts_gather_subset_interfaces(self): set_module_args({'gather_subset': 'interfaces'}) > result = self.execute_module() test/units/modules/network/dellos9/test_dellos9_facts.py:100: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/units/modules/network/dellos9/dellos9_module.py:62: in execute_module result = self.changed(changed) test/units/modules/network/dellos9/dellos9_module.py:83: in changed self.module.main() lib/ansible/modules/network/dellos9/dellos9_facts.py:559: in main inst.populate() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def populate(self): super(Interfaces, self).populate() self.facts['all_ipv4_addresses'] = list() self.facts['all_ipv6_addresses'] = list() data = self.responses[0] interfaces = self.parse_interfaces(data) > for key in interfaces.keys(): E RuntimeError: dictionary keys changed during iteration lib/ansible/modules/network/dellos9/dellos9_facts.py:255: RuntimeError =============================== warnings summary ===============================
I got it working, amended both PRs.
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, after the side tag is merged. Furthermore, as it fails to install, its dependent packages will fail to install and/or build as well. The fix should be pushed on the master branch and no release bump is required. Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.8: https://copr.fedorainfracloud.org/coprs/g/python/python3.8/ This issue needs to be resolved by next week, if other rebuilds of Python 3.8 beta 1 go well. If this is unrealistic for you, let us know how much time you need. Let us know if we can push a fix.
I am pushing a 2.8.1 update this week/soon... will add this patch to that.
This is pushed to rawhide. Feel free to close it and/or verify it...
Thanks.