Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Geschlossen
#7,115 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
cli, testing

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Go
Sterne
409
Forks
253
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
212

Entwicklungsumgebung

  • Enthält ein Dockerfile oder eine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus databricks/cli

Alle Issues in databricks/cli

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.