databricks-cli/libs
shreyas-goenka 40ae23bb33
Refactor change computation for sync (#785)
## Changes
This PR pays some tech debt by refactoring sync diff computation into
interfaces that are more robust.

Specifically:
1. Refactor the single diff computation function into a `SnapshotState`
class that computes the target state only based on the current local
files making it more robust and not carrying over state from previous
iterations.
2. Adds new validations for the sync state which make sure that the
invariants that downstream code expects are actually held true. This
prevents a class of issues where these invariants break and the
synchroniser behaves unexpectedly.

Note, this does not change the existing schema for the snapshot, only
the way the diff is computed, and thus is backwards compatible (ie does
not require a schema version bump).

## Tests
<!-- How is this tested? -->
2023-10-03 13:47:46 +00:00
..
auth Fix IsServicePrincipal() only working for workspace admins (#732) 2023-09-05 11:20:55 +00:00
cmdio Prompt once for a client profile (#727) 2023-09-11 15:32:24 +00:00
databrickscfg Always resolve .databrickscfg file (#659) 2023-08-14 12:45:08 +00:00
env Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
errs Added ability for deferred mutator execution (#380) 2023-05-16 18:01:50 +02:00
filer Update Go SDK to v0.19.0 (#729) 2023-09-05 09:43:57 +00:00
fileset Never ignore root directory when enumerating files in a repository (#683) 2023-08-21 07:35:02 +00:00
flags Upgraded Go version to 1.21 (#664) 2023-08-15 13:50:40 +00:00
git Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
jsonschema Add support for regex patterns in template schema (#768) 2023-09-25 09:53:38 +00:00
locker Correct name for force acquire deploy flag (#656) 2023-08-15 19:03:43 +00:00
log Upgraded Go version to 1.21 (#664) 2023-08-15 13:50:40 +00:00
notebook Error out if notebook file does not exist locally (#261) 2023-03-21 18:13:16 +01:00
process Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
python Added `python.DetectInterpreters` and other utils (#805) 2023-10-03 10:47:09 +00:00
set Added support for sync.include and sync.exclude sections (#671) 2023-08-18 08:07:25 +00:00
sync Refactor change computation for sync (#785) 2023-10-03 13:47:46 +00:00
tags Library to validate and normalize cloud specific tags (#819) 2023-09-29 08:49:08 +00:00
template Use normalized short name for tag value in development mode (#821) 2023-10-02 06:58:51 +00:00
terraform Add bundle destroy command (#300) 2023-04-06 12:54:58 +02:00
testfile Refactor and cover edge cases in sync integration tests (#160) 2023-01-10 13:16:30 +01:00