Conan: [REGRESSION][1.13.0] Transitive dependency info not generated

Created on 13 Mar 2019  路  9Comments  路  Source: conan-io/conan

Hello,

We have tried to upgrade conan 1.13.0 from 1.12.3, but some packages do not build anymore. We managed to reproduce with a small example:
conan-graph-bug.zip
The steps to reproduce are in the README.md contained in the zip file.

To help us debug your issue please explain:

  • [x] I've read the CONTRIBUTING guide.
  • [x] I've specified the Conan version, operating system version and any tool that can be relevant.
  • [x] I've explained the steps to reproduce the error or the motivation/use case of the question/suggestion.
medium graph critical bug

All 9 comments

Hi @AlexandreBossard

I'm running your example and it works in my machine (Macos)... building CCCC during the conan create ./D alex/dev --build=missing call works for me:

BBBB/1.0@alex/dev: Package '673e4db12110c30cae39f84e0cd3697bf851c7be' created
CCCC/1.0@alex/dev: Building your package in /Users/jgsogo/.conan/data/CCCC/1.0/alex/dev/build/aa2ee6f6aafa59f9c1c5bab1cc476c068105c789
CCCC/1.0@alex/dev: Copying sources to build folder
CCCC/1.0@alex/dev: Generator cmake created conanbuildinfo.cmake
CCCC/1.0@alex/dev: Calling build()
CCCC/1.0@alex/dev: WARN: This conanfile has no build step
CCCC/1.0@alex/dev: Package 'aa2ee6f6aafa59f9c1c5bab1cc476c068105c789' built
CCCC/1.0@alex/dev: Build folder /Users/jgsogo/.conan/data/CCCC/1.0/alex/dev/build/aa2ee6f6aafa59f9c1c5bab1cc476c068105c789
CCCC/1.0@alex/dev: Generated conaninfo.txt
CCCC/1.0@alex/dev: Generated conanbuildinfo.txt
CCCC/1.0@alex/dev: Generating the package
CCCC/1.0@alex/dev: Package folder /Users/jgsogo/.conan/data/CCCC/1.0/alex/dev/package/aa2ee6f6aafa59f9c1c5bab1cc476c068105c789
CCCC/1.0@alex/dev: Calling package()
CCCC/1.0@alex/dev: WARN: This conanfile has no package step
CCCC/1.0@alex/dev package(): WARN: No files in this package!
CCCC/1.0@alex/dev: Package 'aa2ee6f6aafa59f9c1c5bab1cc476c068105c789' created
DDDD/1.0@alex/dev: Building your package in /Users/jgsogo/.conan/data/DDDD/1.0/alex/dev/build/e820f45a2e863a5e982f85a6f5f4d62f3348e8f8

...and there is _no diff_ between your file borken.cmake and my conanbuildinfo.cmake:

diff --git a/Users/jgsogo/.conan/data/CCCC/1.0/alex/dev/build/aa2ee6f6aafa59f9c1c5bab1cc476c068105c789/conanbuildinfo.cmake b/../issues/conan-graph-bug/borken.cmake
index 36e11580..c296c3a3 100644
--- a/Users/jgsogo/.conan/data/CCCC/1.0/alex/dev/build/aa2ee6f6aafa59f9c1c5bab1cc476c068105c789/conanbuildinfo.cmake
+++ b/../issues/conan-graph-bug/borken.cmake
@@ -1,11 +1,11 @@
 include(CMakeParseArguments)
-set(CONAN_BBBB_ROOT "/Users/jgsogo/.conan/data/BBBB/1.0/alex/dev/package/673e4db12110c30cae39f84e0cd3697bf851c7be")
+set(CONAN_BBBB_ROOT "/home/alexandre/.conan/data/BBBB/1.0/alex/dev/package/c94f6ef29731b7eef20fe61dc15251bec62ebcd4")
 set(CONAN_INCLUDE_DIRS_BBBB )
 set(CONAN_LIB_DIRS_BBBB )
 set(CONAN_BIN_DIRS_BBBB )
 set(CONAN_RES_DIRS_BBBB )
 set(CONAN_SRC_DIRS_BBBB )
-set(CONAN_BUILD_DIRS_BBBB "/Users/jgsogo/.conan/data/BBBB/1.0/alex/dev/package/673e4db12110c30cae39f84e0cd3697bf851c7be/")
+set(CONAN_BUILD_DIRS_BBBB "/home/alexandre/.conan/data/BBBB/1.0/alex/dev/package/c94f6ef29731b7eef20fe61dc15251bec62ebcd4/")
 set(CONAN_LIBS_BBBB )
 set(CONAN_DEFINES_BBBB )
 # COMPILE_DEFINITIONS are equal to CONAN_DEFINES without -D, for targets
@@ -31,10 +31,10 @@ set(CONAN_PACKAGE_VERSION 1.0)

 set(CONAN_SETTINGS_ARCH "x86_64")
 set(CONAN_SETTINGS_BUILD_TYPE "Release")
-set(CONAN_SETTINGS_COMPILER "apple-clang")
-set(CONAN_SETTINGS_COMPILER_LIBCXX "libc++")
-set(CONAN_SETTINGS_COMPILER_VERSION "10.0")
-set(CONAN_SETTINGS_OS "Macos")
+set(CONAN_SETTINGS_COMPILER "gcc")
+set(CONAN_SETTINGS_COMPILER_LIBCXX "libstdc++11")
+set(CONAN_SETTINGS_COMPILER_VERSION "8")
+set(CONAN_SETTINGS_OS "Linux")

 set(CONAN_DEPENDENCIES BBBB)
 # Storing original command line args (CMake helper) flags
@@ -50,7 +50,7 @@ set(CONAN_BIN_DIRS  ${CONAN_BIN_DIRS})
 set(CONAN_RES_DIRS  ${CONAN_RES_DIRS})
 set(CONAN_LIBS  ${CONAN_LIBS})
 set(CONAN_DEFINES  ${CONAN_DEFINES})
-set(CONAN_CMAKE_MODULE_PATH "/Users/jgsogo/.conan/data/BBBB/1.0/alex/dev/package/673e4db12110c30cae39f84e0cd3697bf851c7be/" ${CONAN_CMAKE_MODULE_PATH})
+set(CONAN_CMAKE_MODULE_PATH "/home/alexandre/.conan/data/BBBB/1.0/alex/dev/package/c94f6ef29731b7eef20fe61dc15251bec62ebcd4/" ${CONAN_CMAKE_MODULE_PATH})

 set(CONAN_CXX_FLAGS " ${CONAN_CXX_FLAGS}")
 set(CONAN_SHARED_LINKER_FLAGS " ${CONAN_SHARED_LINKER_FLAGS}")

I think I need more information, can I see the output error?

Hi Javier,

We should have pointed out what the problem is. Basically, the info about AAAA are not present in the borken.cmake, whereas it should be since it is a transitive dependency of BBBB.

I see, it looks like that information is missing. I'm digging into the code to investigate it but it looks like a bug

Hi @theodelrieu and @AlexandreBossard, I've reproduced the BUG in a test in #4733: the order of requires is affecting the graph.

If you change them in DDDD to requires = "CCCC", "AAAA" it will work. Of course this is not a solution and we will fix it, it is under investigation 馃敩

Thanks for reporting it!

I applied your workaround to our codebase, it worked! We will wait for a conan fix though. Thanks for your quick response.

We've hit this problem as well. Looking forward to a fix.

I have proposed a帽other fix in #4737, that would cover also another possible extra case. If you could please also test it, that would help a lot.

We will try to release a Conan 1.13.1 minor as soon as possible, thanks very much for reporting.

Checkout your branch and installed conan 1.13.1, seems to work for us! Thank you very much.

1.13.1 released, please report again if something still fails.

Was this page helpful?
0 / 5 - 0 ratings