Conan: package_id() regression bug in conan 1.4.x?

Created on 21 Jun 2018  路  3Comments  路  Source: conan-io/conan

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.

bug

Most helpful comment

Yes, the problem is gone, thanks a lot for the fast maintenance release!

All 3 comments

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!

Was this page helpful?
0 / 5 - 0 ratings