Add ability to directly reference dependecy libraries from same DAB for Databricks Applications
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
Research direction
Start by tracing how application YAML dependencies and bundle job dependencies are handled in databricks-cli, then compare that behavior with the uv workspace configuration shown in the issue. Define the desired deployment order and dependency resolution for an app referencing the same-bundle LIB, including what should replace the package-feed or volume workaround.
Written by the indexing model from the issue text.
Description
I have following setup for bundle:
- Shared library (LIB) which contain set of pandera DataFrameModels (uv-based dependency management, python) which getting build into whl
- Job (JOB), which uses DataFrameModels from LIB. Job yaml declares LIB as a dependency
- Databricks App (APP), which also want to use DataFrameModels from that LIB.
Since I can`t declare app dependencies from bundle itself, I either forced to use package feed or put that LIB into volume, so I can reference it in my requirements/pyproject.toml. It itself creates little bit inconsistency, since then I need somehow handle local development with that dependency or run uv build/run where volume is not available.
However, because of the #1958 I also cannot have that library and volume in one package.
So in such setup, DABs force me to have at least two bundles, first with volume, second - with app and library. In addition to it, I am not sure, will app be deployed first and if I will use lifecycle events (lifecycle.started from #4672 what will happen first - whl gets into the volume, or app will restart/redeploy.
In addition, since JOB is referencing LIB whl as a dependency, it means that it is actually delivered to the Databricks. So its there - in the cloud, but app have no any ability to reference it.
I think if application YAML will support dependency declaration from bundle - it will help.
Other way around - better support uv tooling. In my setup I have uv workspaces in place, so can reference dependency from bundle by using it:
dependencies = [
"LIB",
]
[tool.uv.sources]
LIB = { workspace = true }
Maybe then databricks-cli can do something about that.
- Dominant language
- Go
- Stars
- 427
- Forks
- 267
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 233
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from databricks/cli
-
Apps commands only accept relative path to app.ymlPossibly taken @yuri-rod claimed this 38 days ago. OpenCLI
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
databricks/cli#6910 ·
Maintainers usually reply within 1 day
-
DABs
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
databricks/cli#6670 · 1 reaction ·
Maintainers usually reply within 1 day
-
Bump vulnerable dependencies workflow is failingPossibly taken @shreyas-goenka claimed this today. Openbump-vuln-deps-failure
databricks/cli#7531 · 1 comment · 7 assignees ·
Maintainers usually reply within 1 day
-
bundle run on an app fails with "not in RUNNING state" when the app's compute is UPDATINGPossibly taken @andrewnester claimed this 1 day ago. OpenBug DABs
Difficulty 3/5 1-2 days Newbie friendliness 76/100
databricks/cli#7451 · 1 assignee ·
Maintainers usually reply within 1 day
-
Bundle deploy of an AI/BI dashboard breaks viewers' private bookmarks (UI save + publish does not)Open
Difficulty 4/5 3-5 days Newbie friendliness 45/100
databricks/cli#7419 ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
prime-radiant-inc/evener#6241 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
coder/openstorage#807 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
NVIDIA/kubectl-nv#100 ·
Maintainers usually reply within 1 day
-
TestNoEagerPackageRegexps red on main: internal/gui/feedback.go:19 compiles a package-level regexpOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day