Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assert SDK version is consistent in the CLI generation process #1814

Merged
merged 8 commits into from
Oct 14, 2024

Conversation

shreyas-goenka
Copy link
Contributor

@shreyas-goenka shreyas-goenka commented Oct 7, 2024

Changes

Followup from #1809 (comment). User will see the following error if the SDK version does not match during CLI code generation.

--- FAIL: TestConsistentDatabricksSdkVersion (1.34s)
    info_test.go:53: 
                Error Trace:    /Users/shreyas.goenka/cli/internal/build/info_test.go:53
                Error:          Not equal: 
                                expected: "0c86ea6dbd9a730c24ff0d4e509603e476955ac5"
                                actual  : "6f6b1371e640f2dfeba72d365ac566368656f6b6"
                            
                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -0c86ea6dbd9a730c24ff0d4e509603e476955ac5
                                +6f6b1371e640f2dfeba72d365ac566368656f6b6
                Test:           TestConsistentDatabricksSdkVersion
                Messages:       please update the SDK version before generating the CLI

Tests

Manually asserted that:

  1. Generating the CLI without the SDK bump causes an error.
  2. Generating the CLI after the SDK bump works as expected.
  3. The test works even when the SDK is pinned to a specific commit like v0.47.1-0.20241002195128-6cecc224cbf7

internal/build/info_test.go Outdated Show resolved Hide resolved
internal/build/info_test.go Outdated Show resolved Hide resolved
internal/build/info_test.go Outdated Show resolved Hide resolved
@shreyas-goenka shreyas-goenka requested a review from pietern October 7, 2024 15:05
Copy link
Contributor

@pietern pietern left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you figure out how we can not run this test by default?

Maybe with build tags or something.

internal/build/info_test.go Outdated Show resolved Hide resolved
@shreyas-goenka
Copy link
Contributor Author

@pietern I think we can skip a filter on this test for now. It's pretty fast, it ran 100 times in 3.7 seconds on my local machine.

It's difficult to determine whether we are regenerating the CLI in the context of the CLI code itself. The build tags are only set in the release workflow. We'd probably need to create some sort of flag in the push.yml workflow to note when a PR is regenerating the CLI.

@shreyas-goenka shreyas-goenka requested a review from pietern October 8, 2024 16:18
internal/build/info_test.go Outdated Show resolved Hide resolved
@shreyas-goenka shreyas-goenka added this pull request to the merge queue Oct 14, 2024
Merged via the queue into main with commit ab20624 Oct 14, 2024
5 checks passed
@shreyas-goenka shreyas-goenka deleted the assert-consistant-sdk branch October 14, 2024 16:27
andrewnester added a commit that referenced this pull request Oct 23, 2024
CLI:
 * Added JSON input validation for CLI commands ([#1771](#1771)).

Bundles:
 * Support Git worktrees for `sync` ([#1831](#1831)).
 * Add `bundle summary` to display URLs for deployed resources ([#1731](#1731)).
 * Added a warning when incorrect permissions used for `/Workspace/Shared` bundle root ([#1821](#1821)).
 * Show actionable errors for collaborative deployment scenarios ([#1386](#1386)).
 * Fix path to repository-wide exclude file ([#1837](#1837)).
 * Fixed typo in converting cluster permissions ([#1826](#1826)).
 * Ignore metastore permission error during template generation ([#1819](#1819)).
 * Handle normalization of `dyn.KindTime` into an any type ([#1836](#1836)).
 * Added support for pip options in environment dependencies ([#1842](#1842)).
 * Fix race condition when restarting continuous jobs ([#1849](#1849)).
 * Fix pipeline in default-python template not working for certain workspaces ([#1854](#1854)).
 * Add "output" flag to the bundle sync command ([#1853](#1853)).

Internal:
 * Move utility functions dealing with IAM to libs/iamutil ([#1820](#1820)).
 * Remove unused `IS_OWNER` constant ([#1823](#1823)).
 * Assert SDK version is consistent in the CLI generation process ([#1814](#1814)).
 * Fixed unmarshalling json input into `interface{}` type ([#1832](#1832)).
 * Fix `TestAccFsMkdirWhenFileExistsAtPath` in isolated Azure environments ([#1833](#1833)).
 * Add behavioral tests for examples from the YAML spec ([#1835](#1835)).
 * Remove Terraform conversion function that's no longer used ([#1840](#1840)).
 * Encode assumptions about the dashboards API in a test ([#1839](#1839)).
 * Add script to make testing of code on branches easier ([#1844](#1844)).

API Changes:
 * Added `databricks disable-legacy-dbfs` command group.

OpenAPI commit cf9c61453990df0f9453670f2fe68e1b128647a2 (2024-10-14)
Dependency updates:
 * Upgrade TF provider to 1.54.0 ([#1852](#1852)).
 * Bump github.com/databricks/databricks-sdk-go from 0.48.0 to 0.49.0 ([#1843](#1843)).
github-merge-queue bot pushed a commit that referenced this pull request Oct 23, 2024
CLI:
* Added JSON input validation for CLI commands
([#1771](#1771)).
* Support Git worktrees for `sync`
([#1831](#1831)).

Bundles:
* Add `bundle summary` to display URLs for deployed resources
([#1731](#1731)).
* Added a warning when incorrect permissions used for
`/Workspace/Shared` bundle root
([#1821](#1821)).
* Show actionable errors for collaborative deployment scenarios
([#1386](#1386)).
* Fix path to repository-wide exclude file
([#1837](#1837)).
* Fixed typo in converting cluster permissions
([#1826](#1826)).
* Ignore metastore permission error during template generation
([#1819](#1819)).
* Handle normalization of `dyn.KindTime` into an any type
([#1836](#1836)).
* Added support for pip options in environment dependencies
([#1842](#1842)).
* Fix race condition when restarting continuous jobs
([#1849](#1849)).
* Fix pipeline in default-python template not working for certain
workspaces ([#1854](#1854)).
* Add "output" flag to the bundle sync command
([#1853](#1853)).

Internal:
* Move utility functions dealing with IAM to libs/iamutil
([#1820](#1820)).
* Remove unused `IS_OWNER` constant
([#1823](#1823)).
* Assert SDK version is consistent in the CLI generation process
([#1814](#1814)).
* Fixed unmarshalling json input into `interface{}` type
([#1832](#1832)).
* Fix `TestAccFsMkdirWhenFileExistsAtPath` in isolated Azure
environments ([#1833](#1833)).
* Add behavioral tests for examples from the YAML spec
([#1835](#1835)).
* Remove Terraform conversion function that's no longer used
([#1840](#1840)).
* Encode assumptions about the dashboards API in a test
([#1839](#1839)).
* Add script to make testing of code on branches easier
([#1844](#1844)).

API Changes:
 * Added `databricks disable-legacy-dbfs` command group.

OpenAPI commit cf9c61453990df0f9453670f2fe68e1b128647a2 (2024-10-14)
Dependency updates:
* Upgrade TF provider to 1.54.0
([#1852](#1852)).
* Bump github.com/databricks/databricks-sdk-go from 0.48.0 to 0.49.0
([#1843](#1843)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants