Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

bundle validate warns "Pattern ... does not match any files" for sync.include/exclude when the sync root is above the bundle root

Fechada
#7,115 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
78/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
go
Domínio
cli, testing

Direção de pesquisa

Start with bundle/config/validate/validate_sync_patterns.go and bundle/config/mutator/sync_infer_root.go to trace how the sync root and rewritten patterns are used. Add a regression test for sync.paths reaching above the bundle root, using the provided reproduction, and run the relevant validation tests. Done means the matching exclude no longer warns under --strict.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Describe the issue

databricks bundle validate reports Pattern ... does not match any files for a sync.exclude (or sync.include) pattern that does match files, when sync.paths reaches above the bundle directory. With --strict the warning becomes an error, so validate exits 1 even though the exclusion works.

Steps to reproduce
shared/a.py
app/tests/x.py
app/databricks.yml

app/databricks.yml:

bundle:
  name: repro
sync:
  paths: [../shared, .]
  exclude: [tests/**]

From app/: databricks bundle validate --strict -o json

Expected behavior

No warning. tests/** matches app/tests/x.py, and the resolved config already excludes it.

Actual behavior

Exit code 1 on v1.19.0:

Warning: Pattern app/tests/** does not match any files
  at sync.exclude[0]
  in databricks.yml:5:13

Error: 1 warning was found. Warnings are not allowed in strict mode

The resolved config (-o json) shows sync.exclude rewritten to ["app/tests/**"] and sync.paths to ["shared", "app"], so the sync itself uses the right pattern. Removing paths from the sync block makes the warning disappear.

Cause

From reading the source on main:

  • bundle/config/mutator/sync_infer_root.go sets the sync root to the common ancestor of sync.paths and rewrites each sync.include and sync.exclude entry relative to it (prefixing the bundle root's path from the sync root, here app/).
  • bundle/config/validate/validate_sync_patterns.go then globs each rewritten pattern with fileset.NewGlobSet(b.BundleRoot, ...), that is, against the bundle directory instead of the sync root. app/tests/** does not exist under app/, so it warns.

Suggested fix: glob against the sync root in validate_sync_patterns.go, and add a test for a sync root above the bundle root.

OS and CLI version

Reproduced on Databricks CLI v1.19.0, macOS. Source reading only for main; I did not run later releases.

Linguagem predominante
Go
Estrelas
409
Forks
253
Merge médio
1d 11h
PRs com merge (30d)
212

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de databricks/cli

Todas as issues de databricks/cli

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.