Consider the following conanfile.py
:
from conans import ConanFile
class TestConan(ConanFile):
name = "Test"
version = "0.0.1"
settings = "os", "arch"
def package_id(self):
self.info.include_build_settings()
self.info.settings.os_build = self.info.settings.os
self.info.settings.arch_build = self.info.settings.arch
del self.info.settings.os
del self.info.settings.arch
print(">>>>>>>>>>>>>>>>>>>>>>>>>>>> os_build: ",str(self.info.settings.os_build))
print(">>>>>>>>>>>>>>>>>>>>>>>>>>>> arch_build: ",str(self.info.settings.arch_build))
Now test it with conan 1.3.3:
C:\Users\dbely\conan\conan-test>pip install conan==1.3.3
...
C:\Users\dbely\conan\conan-test>conan create . dbely/testing
...
Test/0.0.1@dbely/testing: The stored package has not changed
>>>>>>>>>>>>>>>>>>>>>>>>>>>> os_build: Windows
>>>>>>>>>>>>>>>>>>>>>>>>>>>> arch_build: x86_64
Test/0.0.1@dbely/testing: Installing package
...
C:\Users\dbely\conan\conan-test>conan search Test/0.0.1@dbely/testing
Existing packages for recipe Test/0.0.1@dbely/testing:
Package_ID: 456f15897172eef340fcbac8a70811f2beb26a93
[settings]
arch_build: x86_64
os_build: Windows
Outdated from recipe: False
Everything is good. Upgrade to conan 1.4.4 (all 1.4.x versions behave the same) and try again:
C:\Users\dbely\conan\conan-test>pip install conan==1.4.4
...
C:\Users\dbely\conan\conan-test>conan create . dbely/testing
...
Test/0.0.1@dbely/testing: A new conanfile.py version was exported
Test/0.0.1@dbely/testing: Folder: C:\Users\dbely\.conan\data\Test\0.0.1\dbely\testing\export
>>>>>>>>>>>>>>>>>>>>>>>>>>>> os_build: Windows
>>>>>>>>>>>>>>>>>>>>>>>>>>>> arch_build: x86_64
Test/0.0.1@dbely/testing: Installing package
>>>>>>>>>>>>>>>>>>>>>>>>>>>> os_build: None
>>>>>>>>>>>>>>>>>>>>>>>>>>>> arch_build: None
...
C:\Users\dbely\conan\conan-test>conan search Test/0.0.1@dbely/testing
Existing packages for recipe Test/0.0.1@dbely/testing:
Package_ID: 456f15897172eef340fcbac8a70811f2beb26a93
[settings]
arch_build: None
os_build: None
Outdated from recipe: False
Oops! package_id()
is now called twice and after the second call os_build
and arch_build
are set to None
. Looks like a bug to me.
Thanks, yes, it looks like. Will report asap.
1.4.5 release, please try!
Yes, the problem is gone, thanks a lot for the fast maintenance release!
Most helpful comment
Yes, the problem is gone, thanks a lot for the fast maintenance release!