• 
      

    Recurse into nested .local-packages when setting up build environments.

    Review Request #15103 — Created June 7, 2026 and updated — Latest diff uploaded

    Information

    buildthings
    master

    Reviewers

    When setting up the isolated build environment, buildthings would look
    up the .local-packages and replace any mentions of dependencies with
    those paths.

    The problem came from when one of those dependencies had its own
    .local-packages. Those would also be found at that package's own build
    time, but the resulting wheel used for the parent's isolated build
    environment wouldn't contain those replaced dependencies. This would
    cause the main build environment to fail, since it had no knowledge of
    the paths.

    Now, buildthings will recurse into .local-packages from any package
    mentioned in a .local-packages and mark them as explicit build-time
    dependencies. This differs from the normal approach of applying those to
    a list of dependencies, since we don't have the ability to intercept and
    normalize any dependencies' dependencies. So we add them to the
    build-time dependencies to ensure they get installed and satisfy the
    packages.

    Package-time dependencies are not affected.

    Unit tests pass.

    Successfully installed Review Board 9, which had a local-packages
    dependency chain looking like:

    • reviewboard -> Djblets, django_evolution
    • Djblets -> django_evolution, django-assert-queries

    This was failing to install django-assert-queries prior to this
    change. With the fix, it now finds and installs it in the build
    environment successfully.

    Commits

    Files