Skip to content

Dependency resolver in Conan is not smart? Version conflict #14007

@ilya-lavrenov

Description

@ilya-lavrenov

What is your question?

I have a conantxt.file with the following content:

...
opencl-icd-loader/[>=2022.09.30]
opencl-clhpp-headers/[>=2022.09.30]
opencl-headers/[>=2022.09.30]
...

And during conan install I have:

Requirements
    ...
    opencl-clhpp-headers/2023.04.17#7c62fcc7ac2559d4839150d2ebaac5c8 - Downloaded (conancenter)
    opencl-headers/2022.09.30#ee45fce3f75c8803089c3b2546362187 - Downloaded (conancenter)
    opencl-icd-loader/2022.09.30#a757c4732c2aba4ab729746ed129c611 - Downloaded (conancenter)
    ...
Resolved version ranges
    ...
    opencl-clhpp-headers/[>=2022.09.30]: opencl-clhpp-headers/2023.04.17
    opencl-icd-loader/[>=2022.09.30]: opencl-icd-loader/2022.09.30
    ...
ERROR: Version conflict: opencl-clhpp-headers/2023.04.17->opencl-headers/2023.04.17, None->opencl-headers/2022.09.30.

We can see in CCI that OpenCL C and C++ headers have versions up to 2023.04.17, while latest version for OpenCL ICD loader is 2022.09.30.
I expect that conan can understand that he should download all 3 packages of version 2022.09.30. But instead, it downloaded all the dependencies with latest versions and faced with version conflict because opencl-icd-loader requires old version of opencl-headers than opencl-clhpp-headers package.

Is it a bug?
If no, what is the goal of having ranges in dependencies if conan cannot resolve them?

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