Commit Graph

175 Commits

Author SHA1 Message Date
Shreyas Goenka 8e19474f52
Merge remote-tracking branch 'origin' into bundle-exec 2025-03-11 12:50:40 +01:00
Andrew Nester 77f6a285be
Fixed "can't evaluate field Name in type interface{}" for `databricks queries list` (#2451)
## Changes
Fixes #1888

## Why
`databricks queries list` is using override to define a template to
display a list in a nice table form. This Go template was referencing to
non existing anymore fields and hence failing.

## Tests
Added acceptance test
2025-03-10 08:05:15 +00:00
Anton Nekipelov 0225c77b68
Add acceptance test for binding/unbinding schemas (#2441)
## Changes
<!-- Brief summary of your changes that is easy to understand -->
1. Created a new acceptance test for binding an existing schema to a
bundle
2. Added a feature flag support for acceptance test runner

## Why
<!-- Why are these changes needed? Provide the context that the reviewer
might be missing.
For example, were there any decisions behind the change that are not
reflected in the code itself? -->
1. The test is more simple than an existing integration test for bind
2. The test only can run in environments where Unity Catalog is enabled

## Tests
<!-- How have you tested the changes? -->
New test is passing in CI/CD

## Changelog
NO_CHANGELOG=true
2025-03-07 16:41:25 +00:00
Denis Bilenko 0356e30965
acc: Confirm that included variable def overrides databricks.yml (#2442)
Expand the test a little to check that complex variables are fully
replaced (not merged) by definitions in include file.

NO_CHANGELOG=true
2025-03-06 17:21:59 +00:00
Denis Bilenko edf37e7d0d
Add libs/patchwheel: insert dynamic version in whl (#2427)
## Changes
- New library to patch existing whl with dynamic version. The version is
based on mtime of original wheel.
- New hidden command "selftest patchwhl" (for acceptance test).

## Why
Part of the project to deprecate dynamic version in setup.py template
(#1034). This would enable switching default-python to pyproject.toml
without dependency on setuptools-specific sections.

The dynamic version is needed to ensure that wheels are picked up by the
users code when doing development.

## Tests
- New unit tests that use uv to create envs on various versions and
install (and re-install) patched wheels there.
- New acceptance test that patches prebuilt whl and records the result
fully unzipped.
- New acceptance test helper setmtime.py to set mtime with nanosecond
precision cross-platform.
2025-03-06 10:28:30 +00:00
Pieter Noordhuis 6ae353d84b
Use schema field for pipeline in builtin template (#2347)
## Changes

The `schema` field implies the lifecycle of tables is no longer tied to
the lifecycle of the pipeline, as was the case with the `target` field.

More information about using the "catalog" and "schema" properties can
be found here:
https://docs.databricks.com/en/delta-live-tables/target-schema.html

## Tests

n/a

---------

Co-authored-by: Lennart Kats (databricks) <lennart.kats@databricks.com>
2025-03-05 14:19:33 +00:00
Shreyas Goenka 8c094db503
general stderr 2025-03-05 13:17:09 +01:00
Shreyas Goenka 90a95846ad
- 2025-03-05 13:00:06 +01:00
Shreyas Goenka 7dc24b6484
move tests 2025-03-05 12:56:38 +01:00
Denis Bilenko a26461c5a3
Do not modify/create .gitignore in bundle root (#2429)
## Changes
- Do not modify or edit .gitignore in bundle root.
- Instead create .databricks/.gitignore with content set to "*"

## Why
Merging our changes into existing .gitignore is complicated and adding
.gitignore where it's not expected adds to the noise. Other tools also
use the approach in this PR (e.g. ruff creates .ruff_cache/.gitignore).

## Tests
- Modified templates/default-sql to capture this new file.
2025-03-05 10:57:05 +00:00
Shreyas Goenka de5a348b4e
Merge remote-tracking branch 'origin' into bundle-exec 2025-03-05 11:42:30 +01:00
Shreyas Goenka acff901127
fix windows 2025-03-05 11:39:09 +01:00
Andrew Nester 4dba35dff4
Upgrade TF provider to 1.68.0 (#2426)
## Changes
Upgrade TF provider to 1.68.0

- Added support for Volumes as a destination for Cluster log conf
2025-03-05 10:20:55 +00:00
Andrew Nester 294db2ecca
Upgrade Go SDK to 0.59.0 (#2425)
## Changes
- Added `service-principal-secrets` command
- Added `budget-policy-id` for apps
- `experiments.log-inputs` now requires `ID` parameter as an input
- Added `genie.get-space` command
- Added `providers.list-provider-share-assets` command

For the whole list of SDK changes see:
https://github.com/databricks/databricks-sdk-go/releases/tag/v0.59.0
2025-03-05 10:20:51 +00:00
Shreyas Goenka 09c05db3b1
- 2025-03-05 11:16:40 +01:00
Shreyas Goenka fcc2966118
- 2025-03-05 11:14:08 +01:00
Shreyas Goenka 996b58a135
fix pwd 2025-03-05 11:12:05 +01:00
Shreyas Goenka 4ef33dc2b4
Revert "split windows test"
This reverts commit 2c773683bc.
2025-03-05 11:09:26 +01:00
Shreyas Goenka 2c773683bc
split windows test 2025-03-05 11:08:09 +01:00
Shreyas Goenka 39ec48a602
remove error struct 2025-03-05 10:58:18 +01:00
Shreyas Goenka b5e21231eb
- 2025-03-05 10:49:47 +01:00
Shreyas Goenka 2212aa2597
proper printing 2025-03-05 10:44:43 +01:00
Shreyas Goenka 150a51c11a
merge 2025-03-05 10:29:21 +01:00
Shreyas Goenka be3be9cb2f
try streaming output 2025-03-04 18:22:12 +01:00
Andrew Nester 41961226be
Switch to use GET workspaces-files/{name} instead of workspace/export for state files (#2423)
## Changes
Switch to use GET workspaces-files/{name} instead of workspace/export
for state files.

## Why
`/api/2.0./workspaces-files/{name}` has a higher limit which allows to
export state files larger than 10 MBs (which is the current limit for
`workspace/export`). We don't use the same API for read in other places
and fully replacing existing Filer because it doesn't correct get the
file content for notebooks and returns "File Not Found" error instead.

## Tests
All existing tests pass
2025-03-04 15:03:51 +00:00
Shreyas Goenka 647dab0a66
some cleanup 2025-03-03 20:16:12 +01:00
Shreyas Goenka 007a714750
- 2025-03-03 19:56:29 +01:00
Shreyas Goenka eb58d11f9b
- 2025-03-03 19:52:45 +01:00
Shreyas Goenka 88b6dc8e16
use $CLI instead of databricks 2025-03-03 19:31:41 +01:00
Shreyas Goenka 1996d3f824
do not run on cloud 2025-03-03 19:29:19 +01:00
Shreyas Goenka 898b2c1cc3
merge 2025-03-03 19:21:18 +01:00
Shreyas Goenka a2748d531b
cleanup 2025-03-03 19:19:39 +01:00
Shreyas Goenka 05cd18c0be
exit code done 2025-03-03 18:52:02 +01:00
Shreyas Goenka 993956294a
added flags are not parsed check 2025-03-03 18:35:03 +01:00
Shreyas Goenka 58d28a9c92
add more tests for profile and target 2025-03-03 18:26:17 +01:00
Shreyas Goenka 080d1bf8b9
make the profile is passed test work 2025-03-03 18:13:56 +01:00
Andrew Nester 010f88f84e
Added a warning when `config` section is used in apps (#2416)
## Changes
Added a warning when `config` section is used in apps

## Why
To avoid the confusion between using apps in DABs and outside of DABs,
we want to provide only one way of configuring apps runtime
configuration - by using `app.yml` file in the root of the app.

## Tests
Added acceptance tests
2025-03-03 16:40:28 +00:00
Shreyas Goenka f0d1dc56c8
fix replacement 2025-03-03 17:40:04 +01:00
Shreyas Goenka 152d982c9b
add cases for the target flag 2025-03-03 16:58:57 +01:00
Shreyas Goenka 1b5ff48873
execute scripts from bundle root 2025-03-03 15:12:50 +01:00
Denis Bilenko e4cd782852
Remove bundle.{Parallel,ReadOnlyBundle} (#2414)
## Changes
- Remove bundle.Parallel & bundle.ReadOnlyBundle.
- Add bundle.ApplyParallel, as a helper to migrate from bundle.Parallel.
- Keep ReadOnlyMutator as a separate type but it's now a subtype of
Mutator so it works on regular *Bundle. Having it as a separate type
prevents non-readonly mutators being passed to ApplyParallel
- validate.Validate becomes a function (was Mutator).

## Why
This a follow up to #2390 where we removed most of the tools to
construct chains of mutators. Same motivation applies here.

When it comes to read-only bundles, it's a leaky abstraction -- since
it's a shallow copy, it does not actually guarantee or enforce readonly
access to bundle. A better approach would be to run parallel operations
on independent narrowly-focused deep-copied structs, with just enough
information to carry out the task (this is not implemented here, but the
eventual goal). Now that we can just write regular code in phases and
not limited to mutator interface, we can switch to that approach.

## Tests
Existing tests.

---------

Co-authored-by: shreyas-goenka <88374338+shreyas-goenka@users.noreply.github.com>
2025-03-03 13:35:36 +00:00
Shreyas Goenka 6002e0d040
some more tests 2025-03-03 14:01:41 +01:00
Denis Bilenko 2c5b61538d
acc: Prevent regex in test.toml from consuming too much (#2417)
The original regex can consume both lines and sometimes it does.
2025-03-03 12:55:52 +00:00
Denis Bilenko 8f8f24c3a9
Convert python wheel tests to acceptance (#2396)
## Changes

Rewrite bundle/tests/python_wheel_test.go into acceptance tests. The
same configs are used, but the test now runs 'bundle deploy' and in
addition to checking the files on the file system, also checks that the
files were uploaded and records jobs/create request.

There is a new test helper bin/find.py which filters out paths based on
regex, asserts on number of expected results. I've added it because
'find' on Windows behaves differently, so this helps avoid
cross-platform differences.
2025-03-03 11:09:25 +00:00
shreyas-goenka 03e4bb2575
Update warning for includes outside root to only mention databricks.yml (#2411)
## Why
Addresses feedback from this thread:
https://github.com/databricks/cli/pull/2389#discussion_r1975760462.
2025-03-03 09:21:39 +00:00
Shreyas Goenka 4f43fb9acf
[WIP] Add bundle exec 2025-03-02 18:11:46 +01:00
Denis Bilenko 211ec62a70
acc: add Ignore setting to config (#2405)
Ignore output files using gitignore syntax.

## Changes
New Ignore setting in test.toml that will ignore specified files (syntax
is gitignore).

## Why

I'm using it in #2396 to ignore virtual env. It includes a lot of files.
The regular 'rm -fr .venv' approach only works if script get to that
point, but due to errors it might abort early. In that cases test runner
prints all unexpected files, polluting output. Ignoring those files at
test runner level ensure you never see them.

## Tests
Updated selftest/basic.
2025-02-28 14:23:50 +00:00
Andrew Nester 6a07e05e9b
Raise an error when there are multiple local libraries with the same basename used (#2382)
## Changes
It could happen that there are multiple artifacts defined in the bundle
which build and therefore deploy wheel packages with the same name. This
leads to conflict between these packages, they will overwrite each other
and therefore they should have different names instead

Fixes https://github.com/databricks/cli/issues/1674

Previous attempt (https://github.com/databricks/cli/pull/2297 +
https://github.com/databricks/cli/pull/2341) led to the breakage, this
PR fixes both issues.

## Tests
Added acceptance test
2025-02-27 16:32:50 +00:00
shreyas-goenka bc299cafb8
Add warning when variable interpolation is used for auth fields (#2399)
## Changes
This PR adds a warning which gives users clear guidance when they try to
use variable interpolation for an auth field.

## Tests
Modify existing acceptance test.
2025-02-27 15:58:48 +00:00
shreyas-goenka eb57dbd844
Add warning when include is used in config files other than databricks.yml (#2389)
## Changes
Defining an include section in config files other than the main
`databricks.yml` file fails silently. With this PR users will get a
warning when they try this.

## Tests
Acceptance test.
2025-02-27 14:59:00 +00:00