-
Notifications
You must be signed in to change notification settings - Fork 989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing prebuilt package #5145
Comments
Hi @db4 I am having a look to this. What happens if you try the following? $ conan install TBB/4.4.4@conan/stable -o TBB:shared=True -r=conan-local It might help to understand the issue the output of: $ conan remote list_ref |
That works, but I actually use it in another recipe so wouldn't like to install explicitly...
leptonica/1.76.0@bincrafters/stable: conan-center
libjpeg/9b@bincrafters/stable: conan-center
cmake_config_tools/0.0.2@dbely/testing: dbely
libpng/1.6.34@bincrafters/stable: conan-center
jasper/2.0.14@conan/stable: conan-center
libtiff/4.0.9@bincrafters/stable: conan-center
tesseract/4.0.0@bincrafters/stable: conan-center
giflib/5.1.4@bincrafters/stable: conan-center
zlib/1.2.11@conan/stable: conan-center
libtiff/4.0.8@bincrafters/stable: conan-center
TBB/4.4.4@conan/stable: conan-center
libwebp/0.6.1@bincrafters/stable: conan-center
cmake_installer/3.11.3@conan/stable: conan-center
libjpeg/9c@bincrafters/stable: conan-center I thought it was allowed for some time to upload a missing binary package to another remote. For other recipes it works but surprisingly not for TBB... |
Did you manage to reproduce the issue @db4? |
Of course, it happens all the time. Nothing has changed since I reported it. But maybe conan just works as expected? Should it search other remotes for a binary package? |
Does it happen only with the TBB package as you reported or with all of them? I think we have tests covering this case, but not sure what is the default behavior right now |
Looks like that with all of them. I just see the same behaviour with |
@memsharded @danimtb any update on the issue? Looks like the current behavior (never search other remotes for binaries) was introduced in #3890. Frankly speaking, I don't quite understand the purpose. |
Hi @db4 and thanks for pointing that issue. I have looked in the Conan test suite and it seems that you case is covered by this test https://github.com/conan-io/conan/blob/develop/conans/test/integration/multi_remote_test.py#L125 It has been in place since Conan 1.9.1 and the behavior has not changed since then. The explanation behind this behavior is that normally packages are generated with a specific recipe, so only the packages uploaded with the recipe are supposed to be reproducible with that recipe. However, the same reference ( We decided to keep the behavior consistent with recipes and its associated packages and force the mix of packages explicitly with Thanks for reporting. I think this information should be added to our FAQ, as it something important. Hope it makes sense |
So what conditions should be satisfied to make conan search multiple remotes for a binary package?
Isn't package ID affects binary package ID? I always thought it should and so if the recipe changes all binary package IDs change as well. Even it's not the case, why conan cannot test if a remote contains the same recipe (by ID) and only then search binaries there? Returning to my specific problem. In addition to exising binaries on |
The package ID is calculated from the recipe settings, options... but a change in the recipe does not imply a change in the package ID. The ID of the recipe is the reference you give to them. Conan is not checking the contents of the recipe to see if it is the same inside. There are some cases where you would like that behavior and other ones that don't. The solution to your issue would be the revisions feature, where the recipe is associated with an automatic version created from its contents or from a git commit. Having the revision of the recipe makes Conan know if a recipe is the same in different remotes (additionally to the reference), and in that scenario mixing binaries from different remotes is done by default. However, take into account that the revisions have different implications and would change some of the flows. |
OK, but any remote anyway holds the recipe's MD5 hash. Why conan client cannot search for binaries only remotes with the identical recipe's hash value? I understand it requires some work but I think that "safe" pre 1.9.1 behavior would be very convenient...
Probably, but switching to revisions seems to be a hard move for me, at least for now. |
Changing the way Conan search for binaries in remote will be a breaking behavior. We considered the approach of mixing binaries but concluded that the assumption of users wanting that behavior might be confusing and hard to explain when trying to achieve consistent results in the binary graph computation. We strongly believe that the way to go is revisions, which cover not only this case but other relevant issues like reproducibility, automatic versioning of the packages, graph locking... The implementation to achieve this behavior is following another path, and making the hash check will be an extra effort being sure that that is not a solution in the right direction. |
This tickets seems very outdated. Conan 1.X added revisions, and they are by default in 2.0. |
I have a binary package uploaded to a local Artifactory 6.9.1 repo, but conan fails to download it:
Why?
The text was updated successfully, but these errors were encountered: