Asset bundles sync don't follow .gitignore pattern syntax for root folders

Open
#3,456 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
cli

Research direction

Reproduce the case using databricks.yml and .gitignore with the shown tree, then run databricks bundle deploy on Databricks CLI v0.260.0. Trace the sync: include handling and compare its leading-slash behavior with the documented .gitignore pattern rules; done means only the root my_folder is uploaded.

Written by the indexing model from the issue text.

Description

Bug DABs No Autoclose
Describe the issue

The sync: include: configuration of asset bundles don't respect leading slash / as .gitignore does:

From git docs (my highlight):

  • The slash "/" is used as the directory separator. Separators may occur at the beginning, middle or end of the .gitignore search pattern.
  • If there is a separator at the beginning or middle (or both) of the pattern, then the pattern is relative to the directory level of the particular .gitignore file itself. Otherwise the pattern may also match at any level below the .gitignore level.

I wanted to force an include a folder present in the root of my repo, but all folders named the same (inside other .gitignored folders) were included in the sync.

Configuration

File tree

.
├── ignored
│   └── my_folder
└── my_folder

databricks.yml

sync:
  include:
    - /my_folder/

.gitignore

/ignored
/my_folder

Result: both my_folder gets uploaded to Databricks workspace

Steps to reproduce the behavior
  1. Prepare files as above
  2. Run databricks bundle deploy
  3. See error
Expected Behavior

Only the my_folder in the root of the repo should be synced.

Actual Behavior

All folders named my_folder are synced.

OS and CLI version

Linux 6.6.87.2-microsoft-standard-WSL2
Databricks CLI v0.260.0

Is this a regression?

I haven't tested

Debug Logs

–

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from databricks/cli

All issues in databricks/cli

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.