conan-io / conan-extensions

Some extra Conan commands for different purposes, like artifactory tasks, conan-center-index, etc
MIT License
27 stars 25 forks source link

art:build info upload fails to upload build info where a (python) dependency is located on a different remote #132

Open schwaerz opened 3 months ago

schwaerz commented 3 months ago

We are using a python dependency (base class) in our conanfiles, which is located on a generic publicly available conan repo (conan-remote-a). The package to be created will be uploaded to a different remote (conan-remote-b).

When trying to upload the build info, I will get an error '400' complaining that the properties for conan_base cannot be set currectly. Which is understandable as it searches (according to the error message) in the wrong remote (conan-remote-b).

Interestingly art:build_info create will always add the dependency of the python base class into the build info json file - even if I don't specify --with-dependencies. Maybe a bug there as well?

schwaerz commented 3 months ago

Please note that I tried with and without --with-dependencies. Reading the source code it seems that --with-dependencies is supposed to disable dependency processing?

schwaerz commented 3 months ago

Did some further digging in the source code.

in the input json (from conan create) I found the following:

{
    "graph": {
        "nodes": {
            "0": {
                "ref": "conanfile",
...
            },
            "1": {
                "ref": "foo/1.2.3",
...
                "python_requires": {
                    "conan_base/0.1.3": {
                        "remote": null,
                        "recipe": "Cache",
                        "path": "/workspaces/foo/.conan2/p/conan3f0fc0e0fabee/e"
                    }
                },
...
                "info": {
                    "python_requires": [
                        "conan_base/0.1.Z"
                    ]
                },
...
}

However I was not able to find any specific handling for a python_requires in the source code. However if I simply rename it to something like _python_requires it will no longer get included in the build_info.json

schwaerz commented 3 months ago

Some update: Stangely enough, I did not face this issue in another project. Usign the same base class there, but no such issues.

Will try to get some more insights.