databricks-cli/bundle/config
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
..
generate Fixed generated YAML missing 'default' for empty values (#1765) 2024-09-11 09:49:58 +00:00
loader Add validation for files with a `.(resource-name).yml` extension (#1780) 2024-10-07 09:16:20 +00:00
mutator Always prepend bundle remote paths with /Workspace (#1724) 2024-10-02 15:34:00 +00:00
resources Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
validate Add JobTaskClusterSpec validate mutator (#1784) 2024-09-25 11:30:14 +00:00
variable Alias variables block in the `Target` struct (#1748) 2024-09-10 14:49:34 +00:00
artifact.go Stop tracking file path locations in bundle resources (#1673) 2024-08-13 12:50:15 +00:00
artifacts_test.go Added exec.NewCommandExecutor to execute commands with correct interpreter (#1075) 2023-12-21 15:45:23 +00:00
bundle.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
deployment.go Make lock optional in the JSON schema (#1738) 2024-09-02 08:39:08 +00:00
experimental.go Make `pydabs/venv_path` optional (#1687) 2024-08-20 13:26:57 +00:00
filename.go Move bundle configuration filename code (#917) 2023-10-25 09:54:39 +00:00
filename_test.go Move bundle configuration filename code (#917) 2023-10-25 09:54:39 +00:00
git.go Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +00:00
lock.go Disable locking for development mode (#1302) 2024-04-18 01:59:39 +00:00
lock_test.go Acquire lock prior to deploy (#270) 2023-03-22 16:37:26 +01:00
presets.go Add configurable presets for name prefixes, tags, etc. (#1490) 2024-08-19 18:18:50 +00:00
resources.go Add validation for files with a `.(resource-name).yml` extension (#1780) 2024-10-07 09:16:20 +00:00
resources_test.go Add validation for files with a `.(resource-name).yml` extension (#1780) 2024-10-07 09:16:20 +00:00
root.go Simplified isFullVariableOverrideDef implementation (#1791) 2024-09-26 12:55:07 +00:00
root_test.go Fixed full variable override detection (#1787) 2024-09-25 12:35:16 +00:00
sync.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
target.go Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
workspace.go Always prepend bundle remote paths with /Workspace (#1724) 2024-10-02 15:34:00 +00:00
workspace_test.go Resolve configuration before performing verification (#890) 2023-10-20 13:10:31 +00:00