Skip to content

[question] Howto avoid "Requirement 'x' not in lockfile 'requires'" with input from conan graph build-order #17363

@marlamb

Description

@marlamb

Hi,
I am using conan graph build-order to determine the build order for the complete dependency tree of our central project given a central lockfile. Then I use the result to build the dependencies one by one, again using the central lockfile, to ensure consistency. Now it turns out that in some situations the central lockfile does not have a requirement in the correct section (requires vs build-requires). E.g. I have a requirement to libcurl, which in turn has a build requirement to libtool, which in turn has a requirement to automake. In my lockfile libtool and automake are part of the build-requires, which makes sense. But when I do the conan create <path_to_libtool_recipe> --lockfile=<central_lockfile> <settings_and_options_parsed_from_conan_build_order_json> it fails with

ERROR: Requirement automake/... not in lockfile 'requires'

I also saw the problem the exact other way around (often also in test packages).
I read about --lockfile-partial, which (if I understand it correctly) is also not what I want, as it would loosen almost everything, but in general I of course want that the exact libs/recipe revisions from the lockfile are used.

My question is: is there a way to avoid the error while still ensuring that only defined versions/recipe revs are used? Note that using conan install would not be ideal for me, as I would like to execute also the test packages (recipes might change along and I want to ensure that they still work as intended).

Have you read the CONTRIBUTING guide?

  • I've read the CONTRIBUTING guide

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions