<?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>15573</bug_id>
          
          <creation_ts>2024-08-08 15:19:15 +0000</creation_ts>
          <short_desc>Python recipes: Required dependency versions not being properly detected?</short_desc>
          <delta_ts>2026-05-28 13:17:56 +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>5.1</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>6.1 M2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Orling">tim.orling</reporter>
          <assigned_to name="Unassigned">unassigned</assigned_to>
          <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>ross.burton</cc>
    
    <cc>tgamblin</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99526</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2024-08-08 15:19:15 +0000</bug_when>
    <thetext>We&apos;ve had some trouble with python3-pydantic being upgraded and the required version of python3-pydantic-core not being present. This caused &apos;scarthgap&apos; to ship with a broken version of python3-pydantic. It&apos;s still a problem in master because folks are sending upgrades to python3-pydantic when the underlying python3-pydantic-core version requirement is unmet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99528</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2024-08-08 15:32:13 +0000</bug_when>
    <thetext>In IRC, Ross commented that &quot;python3 -m build&quot; should have caught such unmet version dependency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99537</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2024-08-09 12:54:20 +0000</bug_when>
    <thetext>So the problem is probably the difference between build depends and runtime depends.

-mbuild _should_ be validating build depends in do_compile, but that&apos;s a much smaller subset of requirements than you&apos;d expect.  In do_install -minstaller doesn&apos;t check for dependencies because it&apos;s installing into a destdir.

However at no point do the *runtime* depends turn into package dependencies.

I&apos;ve been thinking about this in the past and think this could be doable.

At do_package time, inject RPROVIDES of the python package name.  A not great implementation would simply be RPROVIDES:append = &quot;python-module(${PYPI_PACKAGE})&quot; but a better solution would be to programatically sweep what was installed.

Also, scan pyproject.toml and translate the [dependencies] into versioned RDEPENDS with the same python-module(foo) syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99543</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2024-08-15 14:39:34 +0000</bug_when>
    <thetext>Early PoC implementation in: https://git.yoctoproject.org/poky-contrib/log/?h=ross/pypi-deps

Which also starts off with a possible fix for the way the sdist tarballs are named on pypi. Since &quot;PEP 625 – Filename of a Source Distribution&quot; https://peps.python.org/pep-0625/ filenames are now normalized. This leaves older sdist tarballs on pypi in the old randomized state however.

This has some impact in meta-openembedded as well (about 146 recipes need to be fixed for do_fetch due to the change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100790</commentid>
    <comment_count>4</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2025-01-30 16:06:35 +0000</bug_when>
    <thetext>Bulk move to 5.2-M3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100809</commentid>
    <comment_count>5</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2025-01-30 16:17:03 +0000</bug_when>
    <thetext>Bulk move to 5.2-M3 and this time I&apos;ll actually specify M3!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104538</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Orling">tim.orling</who>
    <bug_when>2026-03-05 16:22:14 +0000</bug_when>
    <thetext>Related update to the pydeps WIP:
https://git.openembedded.org/openembedded-core-contrib/commit/?h=ross/split/pydeps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105629</commentid>
    <comment_count>7</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2026-05-28 13:17:56 +0000</bug_when>
    <thetext>Bulk move of unassigned 6.0-M* bugs to 6.1-M2.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>