This makes the definition of a project more complicated because a project definition would need to refer to Solidity source code files in another repository.
Currently the config file of a project cannot refer to another repository. Instead it specifies relative file paths and assumes that the user cloned all repositories to the local machine. The relative file paths then require every user to adopt the same relative structure of the cloned repositories or every user would need to edit the config file locally to their own structure.
This is very inconvenient. It is better to specify Solidity source code files by a pair consisting of a reference to a git repository and to a relative file path inside that repository.
This requires that wasm-deploy clones these repositories to a temporary folder on the local machine. I suggest to clone it to the target folder and to introduce a new CLI command "pull" in order to update the content of the git folder.
The lighthouse project Nabla consists of many smart contracts distributed over multiple repositories (https://github.com/0xamberhq/contracts, https://github.com/0xamberhq/curve, https://github.com/pendulum-chain/pendulum-ink-wrapper).
This makes the definition of a project more complicated because a project definition would need to refer to Solidity source code files in another repository.
Currently the config file of a project cannot refer to another repository. Instead it specifies relative file paths and assumes that the user cloned all repositories to the local machine. The relative file paths then require every user to adopt the same relative structure of the cloned repositories or every user would need to edit the config file locally to their own structure.
This is very inconvenient. It is better to specify Solidity source code files by a pair consisting of a reference to a git repository and to a relative file path inside that repository.
This requires that wasm-deploy clones these repositories to a temporary folder on the local machine. I suggest to clone it to the target folder and to introduce a new CLI command "pull" in order to update the content of the git folder.