conan icon indicating copy to clipboard operation
conan copied to clipboard

[question] Add dependencies using user/channel

Open ottmar-zittlau opened this issue 9 months ago • 3 comments

What is your question?

Hi,

I don't manage to use a pre-built package that uses the user/channel-thing.

In my CI job I get the error:

ERROR: Missing binary: own-package/3.9.7@internal/test:dbe476b5a28f71ab6595953efc01e32792c5f21a
own-package/3.9.7@internal/test: WARN: Can't find a 'own-package/3.9.7@internal/test' package binary 'dbe476b5a28f71ab6595953efc01e32792c5f21a' for the configuration:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=20
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=194
os=Windows
[requires]
abseil/20250127.Y.Z
nanopb/0.4.7
protobuf/5.Y.Z
zlib/1.Y.Z
ERROR: Missing prebuilt package for 'own-package/3.9.7@internal/test'. You can try:
    - List all available packages using 'conan list "own-package/3.9.7@internal/test:*" -r=remote'

When I executed the suggested command on my computer, I get:

conan list "own-package/3.9.7@internal/test:*" -r=3rdparty
Connecting to remote '3rdparty' with user 'user'
3rdparty
  own-package
    own-package/3.9.7@internal/test
      revisions
        39374d5569780046673507b979d881e3 (2025-06-17 18:50:12 UTC)
          packages
            0f0dd365b3a38c9ba828acc3b90332db0f87bf9a
              info
                settings
                  arch: x86_64
                  build_type: Release
                  compiler: gcc
                  compiler.cppstd: 20
                  compiler.libcxx: libstdc++11
                  compiler.version: 12
                  os: Linux
                requires
                  abseil/20250127.Y.Z
                  nanopb/0.4.7
                  protobuf/5.Y.Z
                  zlib/1.Y.Z
            ec117cfa0dd3654036753b8869cbfcac4584fc01
              info
                settings
                  arch: x86_64
                  build_type: Release
                  compiler: clang
                  compiler.cppstd: 20
                  compiler.libcxx: libstdc++11
                  compiler.version: 16
                  os: Linux
                requires
                  abseil/20250127.Y.Z
                  nanopb/0.4.7
                  protobuf/5.Y.Z
                  zlib/1.Y.Z

Following this output, I understand the error message, but when I look into the artifactory, I see, that there is also another revision available. After lengthy research I found out, that the list command needs to be slightly modified to show all revisions (this is a bug for me - on what basis does the command above select the revision it plots?).

If I call (note the #*)

conan list "own-package/3.9.7@internal/test#*:*" -r=3rdparty

I get

3rdparty
  own-package
    own-package/3.9.7@internal/test
      revisions
        ced35ee8e1f8fbff249716073ab58b55 (2025-06-17 18:45:35 UTC)
          packages
            dbe476b5a28f71ab6595953efc01e32792c5f21a
              info
                settings
                  arch: x86_64
                  build_type: Release
                  compiler: msvc
                  compiler.cppstd: 20
                  compiler.runtime: dynamic
                  compiler.runtime_type: Release
                  compiler.version: 194
                  os: Windows
                requires
                  abseil/20250127.Y.Z
                  nanopb/0.4.7
                  protobuf/5.Y.Z
                  zlib/1.Y.Z
        39374d5569780046673507b979d881e3 (2025-06-17 18:50:12 UTC)
          packages
            0f0dd365b3a38c9ba828acc3b90332db0f87bf9a
              info
                settings
                  arch: x86_64
                  build_type: Release
                  compiler: gcc
                  compiler.cppstd: 20
                  compiler.libcxx: libstdc++11
                  compiler.version: 12
                  os: Linux
                requires
                  abseil/20250127.Y.Z
                  nanopb/0.4.7
                  protobuf/5.Y.Z
                  zlib/1.Y.Z
            ec117cfa0dd3654036753b8869cbfcac4584fc01
              info
                settings
                  arch: x86_64
                  build_type: Release
                  compiler: clang
                  compiler.cppstd: 20
                  compiler.libcxx: libstdc++11
                  compiler.version: 16
                  os: Linux
                requires
                  abseil/20250127.Y.Z
                  nanopb/0.4.7
                  protobuf/5.Y.Z
                  zlib/1.Y.Z

This list now also contains the windows version of the package with the exact hash (dbe47...) that my CI job complained about not being able to find. What am I doing wrong? Do I need to specify the revision explicitly for packages using user/channel? Is my artifactory (v7.63.12 rev 76312900 - very difficult to update for me) broken?

Thanks oz

Have you read the CONTRIBUTING guide?

  • [x] I've read the CONTRIBUTING guide

ottmar-zittlau avatar Jun 17 '25 19:06 ottmar-zittlau

I noticed that conan does find the package, if the linux packages have been pushed last. If I run the job again after regenerating and pushing the windows package, it doesn't find it anymore.

ottmar-zittlau avatar Jun 18 '25 05:06 ottmar-zittlau

I found the issue https://github.com/conan-io/conan/issues/14761 - maybe the steps described there will solve my problem...

ottmar-zittlau avatar Jun 18 '25 06:06 ottmar-zittlau

Hi @ottmar-zittlau

yes, that is correct, I think that is your issue, it seems you are creating new recipe-revisions due to some uncontrolled or unexpected changes in the source (could be CRLF line endings, or some extra files in the folders that appear in some situations and not others)

It is also explained in this FAQ: https://docs.conan.io/2/knowledge/faq.html#error-obtaining-different-revisions-in-linux-and-windows. You can also read an introduction to revisions (recipe-revisions) in https://docs.conan.io/2/tutorial/versioning/revisions.html

memsharded avatar Jun 18 '25 07:06 memsharded

I added the gitattributes file with the fixed line endings and now it seems to work. Thanks.

ottmar-zittlau avatar Jun 24 '25 08:06 ottmar-zittlau

Great, thanks for your feedback.

memsharded avatar Jun 24 '25 09:06 memsharded