Skip to content

Add a new workspace.sync_mode flag - #7183

Open
andrewnester wants to merge 1 commit into
mainfrom
feat/sync-mode
Open

andrewnester wants to merge 1 commit into
mainfrom
feat/sync-mode

Conversation

@andrewnester

Copy link
Copy Markdown
Contributor

Changes

Add a new workspace.sync_mode flag

Why

To replace multiple conflicting flags in CLI (experimental.immutable_folder, presets.apply_source_linked_deployment)

Tests

Added unit tests

@andrewnester
andrewnester requested review from a team as code owners October 26, 2026 14:19
@github-actions github-actions Bot added the DABs DABs related issues label Oct 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Commit: 6af22efda | Workflow run

Regression test report

Selected 10 changed tests (limit=20, 0 not selected)

22 tests: regression=22 unreleased=0 coverage=0 failing=0

test branch main (c6bb214) latest (v1.22.1)
TestAccept/bundle/deploy/immutable-dev-mode/DMS= ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-dev-mode/DMS=true ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-no-artifacts/DMS=/READPLAN= ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-no-artifacts/DMS=/READPLAN=1 ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-no-artifacts/DMS=true/READPLAN= ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-no-artifacts/DMS=true/READPLAN=1 ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-permissions-change/DMS= ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-permissions-change/DMS=true ✅ ❌ ❌
TestAccept/bundle/deploy/immutable/DMS= ✅ ❌ ❌
TestAccept/bundle/deploy/immutable/DMS=true ✅ ❌ ❌
TestAccept/bundle/dms/immutable-folder/DMS=true/READPLAN= ✅ ❌ ❌
TestAccept/bundle/dms/immutable-folder/DMS=true/READPLAN=1 ✅ ❌ ❌
TestAccept/bundle/resources/apps/immutable/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/apps/immutable/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/immutable_folder_permissions/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/immutable_folder_permissions/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/immutable_workspace_paths/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/immutable_workspace_paths/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/sync_mode/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/sync_mode/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/sync_mode_immutable_folder/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/sync_mode_immutable_folder/DMS=true ✅ ❌ ❌
TestAccept/bundle/deploy/immutable-dev-mode/DMS=: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-dev-mode/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-dev-modeDMS=2035367916/002/output.txt
        @@ -1,35 +1,55 @@
         
         >>> [CLI] bundle validate -t dev
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-dev-mode-[UNIQUE_NAME]
         Target: dev
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle validate -t prod
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-dev-mode-[UNIQUE_NAME]
         Target: prod
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/prod
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle deploy -t dev
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 3 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
         
         >>> [CLI] jobs get [MY_JOB_ID]
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         {
           "name": "[dev [USERNAME]] my job",
        -  "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +  "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev/files/src/main.py"
         }
         
         >>> [CLI] bundle destroy -t dev --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-dev-mode/DMS=true: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-dev-mode/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-dev-modeDMS=true97706517/002/output.txt
        @@ -1,35 +1,55 @@
         
         >>> [CLI] bundle validate -t dev
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-dev-mode-[UNIQUE_NAME]
         Target: dev
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle validate -t prod
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-dev-mode-[UNIQUE_NAME]
         Target: prod
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/prod
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle deploy -t dev
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 3 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
         
         >>> [CLI] jobs get [MY_JOB_ID]
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         {
           "name": "[dev [USERNAME]] my job",
        -  "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +  "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-dev-mode-[UNIQUE_NAME]/dev/files/src/main.py"
         }
         
         >>> [CLI] bundle destroy -t dev --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-no-artifacts/DMS=/READPLAN=: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-no-artifacts/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-no-artifactsDMS=READPLAN=3287978478/002/output.txt
        @@ -1,122 +1,104 @@
         
         >>> [CLI] bundle validate
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-no-artifacts-[UNIQUE_NAME]
         Target: default
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.jobs.my_job"].new_state.value.tasks plan.json
         [
           {
             "notebook_task": {
               "base_parameters": {
        -        "path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +        "path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
               },
        -      "notebook_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +      "notebook_path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
             },
             "task_key": "notebook_task"
           },
           {
             "environment_key": "env",
             "spark_python_task": {
        -      "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +      "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
             },
             "task_key": "spark_python_task"
           }
         ]
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "create",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 5 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
         
         >>> title Check snapshot plan after deploy: 
         
         === Check snapshot plan after deploy: 
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "skip",
        -  "remote_state": {
        -    "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -    "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -  },
        -  "changes": {
        -    "acl": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "new": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "remote": null
        -    },
        -    "bundle_id": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]",
        -      "remote": ""
        -    },
        -    "zip_path": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "new": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "remote": ""
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 2 unchanged
        +Resources: 0 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Snapshot did not change as expected
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-no-artifacts/DMS=/READPLAN=1: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-no-artifacts/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-no-artifactsDMS=READPLAN=13695744406/002/output.txt
        @@ -1,122 +1,104 @@
         
         >>> [CLI] bundle validate
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-no-artifacts-[UNIQUE_NAME]
         Target: default
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.jobs.my_job"].new_state.value.tasks plan.json
         [
           {
             "notebook_task": {
               "base_parameters": {
        -        "path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +        "path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
               },
        -      "notebook_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +      "notebook_path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
             },
             "task_key": "notebook_task"
           },
           {
             "environment_key": "env",
             "spark_python_task": {
        -      "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +      "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
             },
             "task_key": "spark_python_task"
           }
         ]
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "create",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 5 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
         
         >>> title Check snapshot plan after deploy: 
         
         === Check snapshot plan after deploy: 
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "skip",
        -  "remote_state": {
        -    "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -    "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -  },
        -  "changes": {
        -    "acl": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "new": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "remote": null
        -    },
        -    "bundle_id": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]",
        -      "remote": ""
        -    },
        -    "zip_path": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "new": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "remote": ""
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 2 unchanged
        +Resources: 0 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Snapshot did not change as expected
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-no-artifacts/DMS=true/READPLAN=: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-no-artifacts/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-no-artifactsDMS=trueREADPLA229352464/002/output.txt
        @@ -1,122 +1,104 @@
         
         >>> [CLI] bundle validate
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-no-artifacts-[UNIQUE_NAME]
         Target: default
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.jobs.my_job"].new_state.value.tasks plan.json
         [
           {
             "notebook_task": {
               "base_parameters": {
        -        "path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +        "path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
               },
        -      "notebook_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +      "notebook_path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
             },
             "task_key": "notebook_task"
           },
           {
             "environment_key": "env",
             "spark_python_task": {
        -      "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +      "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
             },
             "task_key": "spark_python_task"
           }
         ]
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "create",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 5 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
         
         >>> title Check snapshot plan after deploy: 
         
         === Check snapshot plan after deploy: 
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "skip",
        -  "remote_state": {
        -    "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -    "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -  },
        -  "changes": {
        -    "acl": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "new": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "remote": null
        -    },
        -    "bundle_id": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]",
        -      "remote": ""
        -    },
        -    "zip_path": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "new": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "remote": ""
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 2 unchanged
        +Resources: 0 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Snapshot did not change as expected
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-no-artifacts/DMS=true/READPLAN=1: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-no-artifacts/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-no-artifactsDMS=trueREADPLA1318117610/002/output.txt
        @@ -1,122 +1,104 @@
         
         >>> [CLI] bundle validate
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-no-artifacts-[UNIQUE_NAME]
         Target: default
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.jobs.my_job"].new_state.value.tasks plan.json
         [
           {
             "notebook_task": {
               "base_parameters": {
        -        "path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +        "path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
               },
        -      "notebook_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +      "notebook_path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
             },
             "task_key": "notebook_task"
           },
           {
             "environment_key": "env",
             "spark_python_task": {
        -      "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +      "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
             },
             "task_key": "spark_python_task"
           }
         ]
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "create",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 5 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/main.py"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/src/notebook"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/some_path"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files/some_path"
         
         >>> title Check snapshot plan after deploy: 
         
         === Check snapshot plan after deploy: 
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "skip",
        -  "remote_state": {
        -    "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -    "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -  },
        -  "changes": {
        -    "acl": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "new": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "remote": null
        -    },
        -    "bundle_id": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]",
        -      "remote": ""
        -    },
        -    "zip_path": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "new": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "remote": ""
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-no-artifacts-[UNIQUE_NAME]/default/files...
         Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 2 unchanged
        +Resources: 0 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Snapshot did not change as expected
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         The following resources will be deleted:
           delete resources.jobs.my_job

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-permissions-change/DMS=: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-permissions-change/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-permissions-changeDMS=3953855366/002/output.txt
        @@ -1,14 +1,30 @@
         
         === Deploy without permissions
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        -First snapshot path: /Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py
        +Files: 3 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +First snapshot path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files/src/main.py
        +
         === Add permissions and redeploy
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -21,17 +33,24 @@
         See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
           in databricks.yml:22:3
         
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files...
         Created jobs.my_job.permissions
        -Recreated internal_immutable_snapshots.immutable
        -Updated jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 1 changed, 1 deleted, 0 unchanged
        -Second snapshot path: /Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py
        +Files: 1 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Second snapshot path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files/src/main.py
        +
         === Verify snapshot path changed after permissions change
        -OK: snapshot path changed as expected
        +ERROR: snapshot path did not change after permissions were added
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -50,3 +64,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default
         
         Destroy: 1 deleted
        +
        +Exit code: 1

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable-permissions-change/DMS=true: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable-permissions-change/output.txt
        +++ /tmp/TestAcceptbundledeployimmutable-permissions-changeDMS=true1032875067/002/output.txt
        @@ -1,14 +1,30 @@
         
         === Deploy without permissions
         >>> [CLI] bundle deploy
        -Created internal_immutable_snapshots.immutable
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        -First snapshot path: /Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py
        +Files: 3 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +First snapshot path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files/src/main.py
        +
         === Add permissions and redeploy
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -21,17 +33,24 @@
         See https://docs.databricks.com/dev-tools/bundles/permissions.html to learn more about permission configuration.
           in databricks.yml:22:3
         
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files...
         Created jobs.my_job.permissions
        -Recreated internal_immutable_snapshots.immutable
        -Updated jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 1 changed, 1 deleted, 0 unchanged
        -Second snapshot path: /Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py
        +Files: 1 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 1 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Second snapshot path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default/files/src/main.py
        +
         === Verify snapshot path changed after permissions change
        -OK: snapshot path changed as expected
        +ERROR: snapshot path did not change after permissions were added
         
         >>> [CLI] bundle destroy --auto-approve
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Recommendation: permissions section should explicitly include the current deployment identity '[USERNAME]' or one of its groups
         If it is not included, CAN_MANAGE permissions are only applied if the present identity is used to deploy.
         
        @@ -50,3 +64,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-perms-[UNIQUE_NAME]/default
         
         Destroy: 1 deleted
        +
        +Exit code: 1

latest (v1.22.1): same output as main (c6bb214)

TestAccept/bundle/deploy/immutable/DMS=: branch ✅ | main (c6bb214) ❌ | latest (v1.22.1) ❌

main (c6bb214):

acceptance_test.go:1311: Diff:
        --- bundle/deploy/immutable/output.txt
        +++ /tmp/TestAcceptbundledeployimmutableDMS=625687417/002/output.txt
        @@ -1,21 +1,29 @@
         
         >>> [CLI] bundle validate
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Name: test-bundle-immutable-[UNIQUE_NAME]
         Target: default
         Workspace:
           User: [USERNAME]
           Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default
         
        -Validation OK!
        +Found 1 warning
         
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Building python_artifact...
         
         >>> jq .plan["resources.jobs.my_job"].new_state.value.tasks plan.json
         [
           {
             "notebook_task": {
        -      "notebook_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +      "notebook_path": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/files/src/notebook"
             },
             "task_key": "notebook_task"
           },
        @@ -30,7 +24,7 @@
           {
             "environment_key": "env",
             "spark_python_task": {
        -      "python_file": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +      "python_file": "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/files/src/main.py"
             },
             "task_key": "spark_python_task"
           }
        @@ -42,7 +36,7 @@
             "environment_key": "env",
             "spec": {
               "dependencies": [
        -        "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/artifacts/.internal/immutable-0.0.1-py3-none-any.whl"
        +        "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/artifacts/.internal/immutable-0.0.1-py3-none-any.whl"
               ],
               "environment_version": "4"
             }
        @@ -50,131 +44,79 @@
         ]
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "create",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Building python_artifact...
        -Created internal_immutable_snapshots.immutable
        +Uploading dist/immutable-0.0.1-py3-none-any.whl...
        +Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/files...
         Created jobs.my_job
        -Files: 0 uploaded, 0 deleted
        -Resources: 2 created, 0 changed, 0 deleted, 0 unchanged
        +Files: 15 uploaded, 0 deleted
        +Resources: 1 created, 0 changed, 0 deleted, 0 unchanged
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
         
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
        +
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/main.py"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/files/src/main.py"
         
         >>> jq .settings.tasks job.json
        -"/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/files/src/notebook"
        +"/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/files/src/notebook"
         
         >>> jq .settings.environments[0].spec.dependencies job.json
         [
        -  "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]/artifacts/.internal/immutable-0.0.1-py3-none-any.whl"
        +  "/Workspace/Users/[USERNAME]/.bundle/test-bundle-immutable-[UNIQUE_NAME]/default/artifacts/.internal/immutable-0.0.1-py3-none-any.whl"
         ]
         
         >>> title Check snapshot plan after deploy
         
         === Check snapshot plan after deploy
         >>> [CLI] bundle plan -o json
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Building python_artifact...
         
         >>> jq .plan["resources.internal_immutable_snapshots.immutable"] plan.json
        -{
        -  "action": "recreate",
        -  "new_state": {
        -    "value": {
        -      "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "bundle_id": "[SNAPSHOT_HASH]",
        -      "acl": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "zip_path": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip"
        -    }
        -  },
        -  "remote_state": {
        -    "relative_path": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -    "full_path": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -  },
        -  "changes": {
        -    "acl": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "new": [
        -        {
        -          "user_name": "[USERNAME]",
        -          "permission_level": "CAN_READ"
        -        }
        -      ],
        -      "remote": null
        -    },
        -    "bundle_id": {
        -      "action": "skip",
        -      "reason": "missing_in_remote",
        -      "old": "[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]",
        -      "remote": ""
        -    },
        -    "full_path": {
        -      "action": "recreate",
        -      "reason": "immutable",
        -      "old": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "new": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "remote": "/Workspace/Users/[UUID]/.snapshots/[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -    },
        -    "relative_path": {
        -      "action": "recreate",
        -      "reason": "immutable",
        -      "old": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "new": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]",
        -      "remote": "[SNAPSHOT_HASH]/[SNAPSHOT_HASH]"
        -    },
        -    "zip_path": {
        -      "action": "recreate",
        -      "reason": "immutable",
        -      "old": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "new": "[TEST_TMP_DIR]/.databricks/bundle/default/snapshots/[SNAPSHOT_HASH].zip",
        -      "remote": ""
        -    }
        -  }
        -}
        +null
         
         >>> [CLI] bundle deploy
        +Warning: unknown field: sync_mode
        +  at workspace
        +  in databricks.yml:5:3
        +
         Building python_artifact...
... (29 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.22.1): same output as main (c6bb214)

13 more failure details omitted, see the full report in the run.

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 6af22ef

Run: 40338796074

Env 🔄​flaky ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 281 25 11:55
✅​ aws-windows-latest-4core-16gb 283 23 10:02
✅​ azure linux-2core-8gb 280 25 12:15
✅​ azure-windows-latest-4core-16gb 282 23 9:43
✅​ gcp linux-2core-8gb 281 25 13:43
🔄​ gcp-windows-latest-4core-16gb 1 282 23 11:03
Test Name gcp-windows-latest-4core-16gb
🔄​ TestSyncFullFileSync 🔄​f
Top 21 slowest tests (at least 2 minutes):
duration env testname
4:21 azure-windows-latest-4core-16gb TestAccept
4:13 azure linux-2core-8gb TestFilerRecursiveDelete/workspace_files
4:00 aws-windows-latest-4core-16gb TestAccept
3:48 azure linux-2core-8gb TestAccept
3:46 gcp linux-2core-8gb TestAccept
3:45 aws linux-2core-8gb TestAccept
3:39 gcp-windows-latest-4core-16gb TestAccept
3:18 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsStat
3:08 gcp-windows-latest-4core-16gb TestExportDir
3:02 gcp linux-2core-8gb TestFilerReadWrite/workspace_files_extensions
3:02 azure linux-2core-8gb TestFilerWorkspaceFilesExtensionsStat
2:47 gcp-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsDelete
2:47 aws-windows-latest-4core-16gb TestFilerRecursiveDelete/workspace_files_extensions
2:44 gcp linux-2core-8gb TestFilerWorkspaceFilesExtensionsDelete
2:39 azure linux-2core-8gb TestFilerWorkspaceFilesExtensionsReadDir
2:23 aws-windows-latest-4core-16gb TestImportDirDoesNotOverwrite
2:10 aws-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsStat
2:09 gcp-windows-latest-4core-16gb TestImportFileUsingContentFormatSource
2:03 gcp linux-2core-8gb TestImportDirWithOverwriteFlag
2:02 azure-windows-latest-4core-16gb TestExportDir
2:01 gcp linux-2core-8gb TestFilerWorkspaceFilesExtensionsReadDir

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants