databricks-cli/bundle
shreyas-goenka bca9c2eda4
Add validation for files with a `.(resource-name).yml` extension (#1780)
## Changes
We want to encourage a pattern of specifying only a single resource in a
YAML file when the `.(resource-type).yml` extension is used (for
example, `.job.yml`). This convention could allow us to bijectively map
a resource YAML file to its corresponding resource in the Databricks
workspace.

This PR:
1. Emits a recommendation diagnostic when we detect this convention is
being violated. We can promote this to a warning when we want to
encourage this pattern more strongly.
2. Visualises the recommendation diagnostics in the `bundle validate`
command.

**NOTE:** While this PR also shows the recommendation for `.yaml` files,
we do not encourage users to use this extension. We only support it here
since it's part of the YAML standard and some existing users might
already be using `.yaml`.

## Tests
Unit tests and manually. Here's what an example output looks like:
```
Recommendation: define a single job in a file with the .job.yml extension.
  at resources.jobs.bar
     resources.jobs.foo
  in foo.job.yml:13:7
     foo.job.yml:5:7

The following resources are defined or configured in this file:
  - bar (job)
  - foo (job)
```

---------

Co-authored-by: Lennart Kats (databricks) <lennart.kats@databricks.com>
2024-10-07 09:16:20 +00:00
..
artifacts Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
config Add validation for files with a `.(resource-name).yml` extension (#1780) 2024-10-07 09:16:20 +00:00
deploy Add an error if state files grow bigger than the export limit (#1795) 2024-10-02 13:53:24 +00:00
env Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
internal Modify SetLocation test utility to take full locations as argument (#1788) 2024-09-25 16:13:48 +00:00
libraries Modify SetLocation test utility to take full locations as argument (#1788) 2024-09-25 16:13:48 +00:00
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
permissions Properly deal with nil values in `convert.FromTyped` (#1511) 2024-06-21 13:43:21 +00:00
phases Always prepend bundle remote paths with /Workspace (#1724) 2024-10-02 15:34:00 +00:00
render Add validation for files with a `.(resource-name).yml` extension (#1780) 2024-10-07 09:16:20 +00:00
run Upgrade Go SDK to 0.44.0 (#1679) 2024-08-15 13:23:07 +00:00
schema Upgrade to Go SDK 0.47.0 (#1799) 2024-10-01 10:44:47 +00:00
scripts Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
tests Always prepend bundle remote paths with /Workspace (#1724) 2024-10-02 15:34:00 +00:00
trampoline Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
bundle.go Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
bundle_read_only.go Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
bundle_test.go Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
context.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
context_test.go Add command that writes the materialized bundle configuration to stdout (#95) 2022-11-21 15:39:53 +01:00
deferred.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
deferred_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
if.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
if_test.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
log_string.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator_read_only.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
mutator_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
parallel.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
parallel_test.go Fix flaky tests for the parallel mutator (#1426) 2024-05-13 12:16:43 +00:00
root.go Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
root_test.go Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
seq.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
seq_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00