Skip to content

Recusive build validation is not user friendly #1237

@jrray

Description

@jrray

We had a user encounter a build failure due to a recursive build, but it would only happen in CI. The only happen in CI part is not the focus, but it contributed to user confusion and frustration.

In this particular case, the package being built "example" depended on a package "dep" and some but not all of the versions/builds of "dep" had an install.requirement on "example". So it was up to the whims of the solver if a working or non-working build of "dep" was selected for the build environment.

Then, the validation error merely says that the validation rule was violated without giving the user any help understand where the recursive problem comes from. Experienced users can study the build environment solution report to figure it out.

What would make this become a non-problem is to block adding the package being built "example" from being added to the solution when solving for the build environment, unless recursive builds are enabled with --allow-circular-dependencies. This is what BinaryPackageBuilder::with_allow_circular_dependencies claims but the allow_circular_dependencies field appears to be unused at this point. It disappeared in #911.

It would be a non-problem because the solver could work harder to find a build of "dep" that does not introduce a recursive dependency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    agenda itemItems to be brought up at the next dev meeting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions