[question] Numeric node IDs in lockfiles
See original GitHub issueWhen our CI builder script runs, it separates the export, build, test, upload steps for each recipe from our monorepo. Exporting is performed only once for all recipes. Building (via conan create
) is performed according to the build-order determined by conan. Finally, testing and uploading is done via conan test
and conan upload
.
The reason for separating each step is to be able to report on what exactly fails.
When using lockfiles, I lock a metapackage (“variant”) with the profile. Later, I supply this lockfile to each conan create
invocation.
Then, in the test
step I do the same, with the expectation that test will utilize all the package revisions that were just built. However, I get an error along the lines of:
ERROR: The node ID 68 was not found in the lock
If I look inside the lockfile, there is unsurprisingly, no node with that ID. But why is conan looking for it? My expectation would be that it would work similarly to when I pass the lockfile to conan create
. And the effect should be “use the revisions that are locked in this lockfile to run the test”. Am I misunderstanding something?
- I’ve read the CONTRIBUTING guide.
Issue Analytics
- State:
- Created 4 years ago
- Comments:11 (11 by maintainers)
Yes, the
I do get the following warning: WARN: Package can't be locked, not found in the lockfile
, is normal, it is exactly what is happening, thecmake_installer
node was not locked, as thetest_package/conanfile.py
is NOT in the locked graph. Build requires are also private for each node, so it is normal that there are multiple nodes for build-requires.I keep investigating @sztomi issues.
We are releasing a
general.relax_lockfile
configuration in 1.23 to implement this behavior, because of concerns of breaking something. This config is highly experimental, most likely will be removed in future versions, but we wanted to at least provide an opt-in for this behavior to be able to move forward.