conan: [bug] unable to build packages with package_revision_mode enabled.

Conan crashing after enabled package_revision_mode and tried to rebuild all of our projects. stacktrace attached.

Environment Details (include every applicable attribute)

  • Operating System+version: rh7
  • Compiler+version: gcc8
  • Conan version: 1.24.0
  • Python version: 3.6.10

Steps to reproduce (Include if Applicable)

Have a complex graph tree. I dont have mve at the moment, but i’ll try to pinpoint something.

Global package_mode would be set to ‘package_revision_mode’. In some of the recipes we are using default versioning_schema. In some of the recipes we are specifying use semver_mode for some of its dependencies. In some of the recipes we are specifying use of full_package_mode for some of its dependencies.

Logs stacktrace.

invoked: conan create . --build missing

30-Apr-2020 16:37:19 xyz/abc: Unknown binary for xyz/abc, computing updated ID
30-Apr-2020 16:37:19 Traceback (most recent call last):
30-Apr-2020 16:37:19 File "conan/conans/client/command.py", line 2002, in run
30-Apr-2020 16:37:19 File "conan/conans/client/command.py", line 369, in create
30-Apr-2020 16:37:19 File "conan/conans/client/conan_api.py", line 89, in wrapper
30-Apr-2020 16:37:19 File "conan/conans/client/conan_api.py", line 368, in create
30-Apr-2020 16:37:19 File "conan/conans/client/cmd/create.py", line 57, in create
30-Apr-2020 16:37:19 File "conan/conans/client/manager.py", line 75, in deps_install
30-Apr-2020 16:37:19 File "conan/conans/client/installer.py", line 309, in install
30-Apr-2020 16:37:19 File "conan/conans/client/installer.py", line 404, in _build
30-Apr-2020 16:37:19 File "conan/conans/client/graph/graph_binaries.py", line 347, in reevaluate_node
30-Apr-2020 16:37:19 File "conan/conans/client/graph/graph_binaries.py", line 319, in _compute_package_id
30-Apr-2020 16:37:19 File "conan/conans/model/info.py", line 540, in package_id
30-Apr-2020 16:37:19 File "conan/conans/model/info.py", line 216, in sha
30-Apr-2020 16:37:19 TypeError: '<' not supported between instances of 'NoneType' and 'str'

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 19 (19 by maintainers)

Most upvoted comments

So it will be present on the self.info.requires right?

Yes, they should be available there.

I am reopening this for 1.26, if possible to fix it for an earlier 1.25.1, I will try to do it.

@memsharded got further down the pipe now. but still failing:

ig-invision-requester-rfa/5.0.0.rfa: Unknown binary for ig-invision-requester-rfa/5.0.0.rfa, computing updated ID
ig-invision-requester-rfa/5.0.0.rfa: Updated ID: Package_ID_unknown
Traceback (most recent call last):
  File "conan/conans/client/command.py", line 2018, in run
  File "conan/conans/client/command.py", line 373, in create
  File "conan/conans/client/conan_api.py", line 92, in wrapper
  File "conan/conans/client/conan_api.py", line 373, in create
  File "conan/conans/client/cmd/create.py", line 57, in create
  File "conan/conans/client/manager.py", line 75, in deps_install
  File "conan/conans/client/installer.py", line 309, in install
  File "conan/conans/client/installer.py", line 404, in _build
  File "conan/conans/client/graph/graph_binaries.py", line 351, in reevaluate_node
AssertionError

😃

to expand on what we are using @memsharded: We rarely rely on package_mode_id from conan.conf. For most of our dependencies we use our python_package that provides a package_mode for all of its dependencies. That python_package is not loaded for dependencies that are not ‘ours’ ( so either are coming from conan-center-index or are coming from different teams within company )

thats why as you can see ( or maybe you cant ) we have some using semver_mode ( i am not a fan of direct one ), full_package_mode ( because I didnt yet update that python_package to use package_revision_mode ) and package_revision_mode ( as now we are changing the default. )

we dont pass any additional arguments to the requires or build_requires.

My guess is still on this that boost is dependeent as full_package_mode and package_requires_mode 😃 (but ofc i dont know the codebase at all )