Managing scattered codebase

Hello,

I am trying to figure out a lean workflow with myhdl. My first instinct is to try and replicate my VHDL workflow. There I have my codebase scattered around several repositories, which are then included as needed in a new project. So my sources are divided in many different folders and subfolders, each with their own tests. All files are included in my testing and synthesis projects with a relative path from the project folder/file.

In myHDL I would replicate this by having all the various myhdl sources import other modules by name, and then have one or more “top-level” python scripts that add all the necessary folders to PYTHONPATH, and then run the conversion, test and/or cosimulation.

Is this a “normal” workflow? does anyone have suggestions on how to keep code and tests portable and reusable?