conan
conan copied to clipboard
[question] Package/Recipe Hash Calculation
Hello, I am also on conan 1.48.0 and I have a question about how package/recipe hashes are calculated and at large, if I am using conan correctly. The context for this is that I am trying to support building a library for multiple platforms and configurations. However, as it stands right now, when I run conan create and conan upload to send them to artifactory (each time using the same conanfile.py), every set of packages underneath each OS gets set as a different "revision".

As such, when I run conan search, it only detects the packages under the latest "revision" even if the OS is not compatible with the machine I am on (currently on Mac).

Diving a bit more into specifics of the conanmanifest and conaninfo files, I find that in each of the "revision"/OS level packages, the value underneath "[recipe_hash]" is the same while the contents of each of their conanmanifests and conaninfo files can be different. Also when I run the same conan create command on two different machines (same OS), I can get different hashes for the [recipe_hash] in the conaninfo file and different individual file hash values in the conanmanfiest file.
In the past, I have been able to get the same library's binaries for different OS's packaged to converge under a the same recipe hash so I know it should be possible in practice.
So my question boils down to this: in order to build multiple platforms, is there/should there be a way to get each OS to converge on the same package hash? And if there is, what am I doing wrong? My expected behavior was that each package built from the same source code should have the same recipe hash, regardless of OS, and all packages would live next to each other in one flat directory.
- [x] I've read the CONTRIBUTING guide.