databricks-cli/bundle/config
Pieter Noordhuis 424499ec1d
Abstract over filesystem interaction with libs/vfs (#1452)
## Changes

Introduce `libs/vfs` for an implementation of `fs.FS` and friends that
_includes_ the absolute path it is anchored to.

This is needed for:
1. Intercepting file operations to inject custom logic (e.g., logging,
access control).
2. Traversing directories to find specific leaf directories (e.g.,
`.git`).
3. Converting virtual paths to OS-native paths.

Options 2 and 3 are not possible with the standard `fs.FS` interface.
They are needed such that we can provide an instance to the sync package
and still detect the containing `.git` directory and convert paths to
native paths.

This change focuses on making the following packages use `vfs.Path`:
* libs/fileset
* libs/git
* libs/sync

All entries returned by `fileset.All` are now slash-separated. This has
2 consequences:
* The sync snapshot now always uses slash-separated paths
* We don't need to call `filepath.FromSlash` as much as we did

## Tests

* All unit tests pass
* All integration tests pass
* Manually confirmed that a deployment made on Windows by a previous
version of the CLI can be deployed by a new version of the CLI while
retaining the validity of the local sync snapshot as well as the remote
deployment state.
2024-05-30 07:41:50 +00:00
..
generate Added `bundle generate pipeline` command (#1139) 2024-01-25 11:35:14 +00:00
loader Return diagnostics from `config.Load` (#1324) 2024-03-28 10:59:03 +00:00
mutator Abstract over filesystem interaction with libs/vfs (#1452) 2024-05-30 07:41:50 +00:00
paths Remove dependency on `ConfigFilePath` from path translation mutator (#1437) 2024-05-17 09:26:09 +00:00
resources Fixed panic when loading incorrectly defined jobs (#1402) 2024-05-17 10:10:17 +00:00
testdata First look for databricks.yml before falling back to bundle.yml (#580) 2023-07-18 12:16:34 +02:00
validate Abstract over filesystem interaction with libs/vfs (#1452) 2024-05-30 07:41:50 +00:00
variable Return `application_id` for service principal lookups (#1245) 2024-03-04 16:12:10 +00:00
artifact.go Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +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 Allow specifying CLI version constraints required to run the bundle (#1320) 2024-04-02 12:55:21 +00:00
deployment.go Disable locking for development mode (#1302) 2024-04-18 01:59:39 +00:00
experimental.go Add legacy option for `run_as` (#1384) 2024-04-22 11:51:41 +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
resources.go Fixed panic when loading incorrectly defined jobs (#1402) 2024-05-17 10:10:17 +00:00
resources_test.go Assert customer marshalling is implemented for resources (#1425) 2024-05-14 10:30:48 +00:00
root.go Fixed panic when loading incorrectly defined jobs (#1402) 2024-05-17 10:10:17 +00:00
root_test.go Return diagnostics from `config.Load` (#1324) 2024-03-28 10:59:03 +00:00
sync.go Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +00:00
target.go Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +00:00
workspace.go Added `auth describe` command (#1244) 2024-04-03 08:14:04 +00:00
workspace_test.go Resolve configuration before performing verification (#890) 2023-10-20 13:10:31 +00:00