Databricks Asset Bundle artifacts with module out of the bundle root (sync path)

Jorge3
New Contributor III

Hello everyone!
I’m currently working on a project with shared functionalities across different Databricks bundles. I have separate folders for each bundle, along with a common libs/ folder that holds some Python modules intended to be shared across bundles. My directory structure looks like this:

 

backend/
├── libs/
│   ├── new_package/
│   │   ├── src/
│   │   │   └── new_package/
│   │   │       ├── __init__.py
│   │   │       └── functions.py
│   │   ├── tests/
│   │   ├── README.md 
│   │   ├── requirements.txt    
│   │   └── pyproject.toml
│   │
│   └── second_package/
│       ├── src/
│       │   └── second_package/
│       │       ├── __init__.py
│       │       └── functions.py
│       ├── tests/
│       ├── README.md 
│       ├── requirements.txt    
│       └── pyproject.toml
│
├── bundle_1/
│   ├── jobs/
│   ├── tests/
│   ├── README.md
│   ├── requirements.txt
│   └── databricks.yml
│
└── bundle_2/
    ├── jobs/
    ├── tests/
    ├── README.md
    ├── requirements.txt
    └── databricks.yml

 

I’m using Databricks artifacts to build the wheel as per the documentation. Since my modules reside outside of the bundle root, I use the sync paths mapping to include files located outside the bundle root. However, when I try deploying from the CLI, I encounter this error:

Error: build failed default, error: chdir C:\Users\***\python_monorepo\bundle_1\libs\new_package: The system cannot find the path specified., output:

It seems that the bundle is unable to access the external module. Here’s my databricks.yml configuration:

 

 

bundle:
  name: deploy-package-job
resources:
  jobs:
    deploy-package-job: 
      name: deploy-package-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1
      tasks:
        - task_key: notebook-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./jobs/notebook.ipynb
          libraries:
            - whl: ../libs/dist/*.whl
sync:
  paths:
    - ../libs
artifacts:
  default:
    type: whl
    build: python -m build
    path: ../libs/new_package

targets:
  dev:
    mode: development
    default: true
    workspace:
      host: https://***

  prod:
    mode: production
    workspace:
      host: https://***

 

Does anyone have suggestions or insights on why the bundle can’t locate the external module? Any advice would be greatly appreciated!

Thank you!