<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>14638</bug_id>
          
          <creation_ts>2021-11-25 04:34:01 +0000</creation_ts>
          <short_desc>Implement new python packaging (PEP-517); egg-info =&gt; wheels</short_desc>
          <delta_ts>2022-02-25 20:57:01 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>devtools / tool chain</component>
          <version>4.0</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>4.0 M3</target_milestone>
          
          <blocked>14735</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Orling">tim.orling</reporter>
          <assigned_to name="Tim Orling">tim.orling</assigned_to>
          <cc>alex.kanavin</cc>
    
    <cc>kweihmann</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>TicoTimo</cc>
    
    <cc>tvgamblin</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Yes (doc changes required)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92066</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2021-11-25 04:34:01 +0000</bug_when>
    <thetext>Upstream Python has been changing how packages are built, deployed and installed for quite some time now. The key PEP is 517:

https://www.python.org/dev/peps/pep-0517/

The crux of this change involves many related changes:

(1) setup.py will be replaced by pyproject.toml (and perhaps also setup.cfg)
(2) egg-info/eggs will be replaced by wheels
(3) packages are installed by pip, period.

For us, this means we need to use pip to install wheels (that we build) without dependencies into the sysroot. We will never allow pip to fetch wheels or other dependencies from the Internet. The wheels we build and then install into the sysroot (without dependencies) will be what is packaged for ipk/deb/rpm. We will NOT support installing third-party wheels in Yocto Project/OpenEmbedded recipes. The possible ways this can go wrong are infinite.

While we might hope to have a conversation with upstream and convince them to change their approach, the reality is this ship has sailed. We must adapt.

https://lists.openembedded.org/g/openembedded-architecture/message/1360

Working branch:
https://git.yoctoproject.org/poky-contrib/log/?h=timo/pypa-packaging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92070</commentid>
    <comment_count>1</comment_count>
    <who name="">kweihmann</who>
    <bug_when>2021-11-25 08:54:53 +0000</bug_when>
    <thetext>Judging from the upstream discussion https://github.com/pypa/setuptools/issues/1160#issuecomment-549054957 I&apos;d say we definitely need to support both setup.cfg and *.toml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92102</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2021-12-06 21:28:08 +0000</bug_when>
    <thetext>For what it&apos;s worth, there&apos;s now a recipe in oe-core with the issue (python3-jsonschema) - can&apos;t be updated because setup.py has vanished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92353</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2022-01-18 20:53:42 +0000</bug_when>
    <thetext>flit_core 3.6.0 vendors tomli to get around the circular dependency issue (until some future date when a TOML parser is in the standard library).

https://github.com/pypa/flit/commit/55053217f09e052703c49b8812e7fa1a1a8359f4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92629</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2022-02-22 20:34:00 +0000</bug_when>
    <thetext>V3 of patch series:
https://patchwork.yoctoproject.org/project/oe-core/list/?series=1968</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92677</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2022-02-25 20:57:01 +0000</bug_when>
    <thetext>This has been merged.

Any issues in oe-core should be either sent to the mailing list or a new bug filed.

Any issues with other layers should be sent to the appropriate mailing list.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>