Bug 13639

Summary: A recent update to the meta-openembedded layer to upgrade pytest is missing a module
Product: [Build System, Metadata & Runtime] Other YP Layers Reporter: Chanakya Koppolu <chanakya.koppolu>
Component: layersAssignee: Tim Orling <tim.orling>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: Medium CC: poky.bs.watcher, poky.watcher, randy.macleod
Version: unspecified   
Target Milestone: 3.1   
Hardware: MinnowBoard   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Chanakya Koppolu 2019-11-18 22:22:06 UTC
A recent upgrade to pytest is missing a runtime module called "zipp" which is a dependency for importlib-metadata. Here is the log from the image built using the latest changes from meta-openembedded layer:

root@intel-corei7-64:~# pytest
Traceback (most recent call last):
  File "/usr/bin/pytest", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3250, in <module>
    @_call_aside
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3263, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'zipp>=0.5' distribution was not found and is required by importlib-metadata
root@intel-corei7-64:~# pytest --version
Traceback (most recent call last):
  File "/usr/bin/pytest", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3250, in <module>
    @_call_aside
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 3263, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib64/python3.7/site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'zipp>=0.5' distribution was not found and is required by importlib-metadata
root@intel-corei7-64:~# python3 --version
Python 3.7.5

Please test pytest before upgrading for any missing modules. This is being repeated over and over as our builds are tested using pytest and it is important for successful builds.
Comment 1 Ross Burton 2019-11-19 09:16:28 UTC
meta-oe typically doesn't use bugzilla for bug tracking, preferring the mailing list instead.

But Tim owns meta-python so I'll assign to him in case he'd like to use bugzilla for meta-python.
Comment 2 Randy MacLeod 2019-11-21 15:46:51 UTC
Not really tracked by the YP bugzilla but Tim is working on it.
Comment 3 Tim Orling 2019-11-22 19:11:57 UTC
I agree with Ross that this bugzilla is not the correct place to file this.

The correct workflow would be to respond on openembedded-devel@lists.openembedded.org to the person who submitted the patch which broke the component.

Also, just posting the traceback and a vague description of the issue puts a lot of work onto anyone trying to help. Please look at the traceback and digest the cause of the failure. In this case, the only part that matters is:

"pkg_resources.DistributionNotFound: The 'zipp>=0.5' distribution was not found and is required by importlib-metadata"

So the email to the mailing list, specifically replying to the patch that broke this, should be:


"pytest is now broken because it now requires zipp>=0.5" and then include the single line above.

If you search on layer-index, you can see that there is a zipp package in meta-python:
http://layers.openembedded.org/layerindex/branch/master/recipes/?q=zipp

So then you add to RDEPENDS_${PN}:
https://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-pytest.inc#n14

${PYTHON_PN}-zipp

But even better, you could send a patch to fix the issue. OpenEmbedded and Yocto Project are both community driven.

I'm marking this as RESOLVED INVALID, because this bugzilla is the wrong place to file this issue. However, we can work together to solve this properly.