Skip to content

[bug] Custom deployer has empty dep.folders.source_folder #3119

@famastefano

Description

@famastefano

Environment details

  • Operating System+version: Windows 10 latest
  • Conan version: 2.0.2
  • Python version: 3.10.9

Steps to reproduce

  1. Create a custom deployer like in the example
  2. Run the deployer

Script

from conan.tools.files import copy
import os

def deploy(graph, output_folder):
    for name, dep in graph.root.conanfile.dependencies.items():
        copy(graph.root.conanfile, "*", dep.folders.source_folder, os.path.join(output_folder, "dependencies_sources", str(dep)))

Logs

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Debug
compiler=msvc
compiler.cppstd=17
compiler.runtime=dynamic
compiler.runtime_type=Debug
compiler.version=193
os=Windows
[conf]
tools.cmake.cmaketoolchain:generator=Ninja

Profile build:
[settings]
arch=x86_64
build_type=Debug
compiler=msvc
compiler.cppstd=17
compiler.runtime=dynamic
compiler.runtime_type=Debug
compiler.version=193
os=Windows
[conf]
tools.cmake.cmaketoolchain:generator=Ninja


======== Computing dependency graph ========
Graph root
    conanfile.py (Foo/0.1.0): C:\Users\fama\source\repos\Foo\conanfile.py
Requirements
    a_lib/1.0.0#5d210d081a2e9ecdb1ca829346d4248b - Cache
    another_lib/2.0.0#c3f64e0a9c42bebc3de224ad9e3c36ec - Cache

======== Computing necessary packages ========
Requirements
    a_lib/1.0.0#5d210d081a2e9ecdb1ca829346d4248b:522dcea5982a3f8a5b624c16477e47195da2f84f#54b4619a086341876ccb3196ab4268fe - Cache
    another_lib/2.0.0#c3f64e0a9c42bebc3de224ad9e3c36ec:da39a3ee5e6b4b0d3255bfef95601890afd80709#9e496980c6eb68e2ccedcd8d3860b4ce - Cache

======== Installing packages ========
a_lib/1.0.0: Already installed! (1 of 2)
another_lib/2.0.0: Already installed! (2 of 2)

======== Finalizing install (deploy, generators) ========
Traceback (most recent call last):
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\cli\cli.py", line 272, in main
    cli.run(args)
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\cli\cli.py", line 171, in run
    command.run(self._conan_api, self._commands[command_argument].parser, args[0][1:])
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\cli\command.py", line 156, in run
    info = self._method(conan_api, parser, *args)
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\cli\commands\install.py", line 82, in install
    conan_api.install.install_consumer(deps_graph=deps_graph,
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\api\subapi\install.py", line 68, in install_consumer
    do_deploys(self.conan_api, deps_graph, deploy, base_folder)
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\internal\deploy.py", line 44, in do_deploys
    deployer(graph=graph, output_folder=deploy_folder)
  File "C:\Users\fama\source\repos\Foo\conan_deployer.py", line 7, in deploy
    copy(graph.root.conanfile, "*", dep.folders.source_folder, os.path.join(output_folder, "dependencies_sources", str(dep)))
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\site-packages\conan\tools\files\copy_pattern.py", line 33, in copy
    src = os.path.join(src, "")
  File "C:\Users\fama\AppData\Local\Programs\Python\Python310\lib\ntpath.py", line 104, in join
    path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not NoneType

ERROR: expected str, bytes or os.PathLike object, not NoneType

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions