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

Release v0.13.0 #442

Merged
merged 2 commits into from
Nov 14, 2023
Merged

Release v0.13.0 #442

merged 2 commits into from
Nov 14, 2023

Conversation

mgyucht
Copy link
Contributor

@mgyucht mgyucht commented Nov 14, 2023

  • Introduce more specific exceptions, like NotFound, AlreadyExists, BadRequest, PermissionDenied, InternalError, and others (#376). This makes it easier to handle errors thrown by the Databricks API. Instead of catching DatabricksError and checking the error_code field, you can catch one of these subtypes of DatabricksError, which is more ergonomic and removes the need to rethrow exceptions that you don't want to catch. For example:
try:
  return (self._ws
    .permissions
    .get(object_type, object_id))
except DatabricksError as e:
  if e.error_code in [
    "RESOURCE_DOES_NOT_EXIST",
    "RESOURCE_NOT_FOUND",
    "PERMISSION_DENIED",
    "FEATURE_DISABLED",
    "BAD_REQUEST"]:
    logger.warning(...)
    return None
  raise RetryableError(...) from e

can be replaced with

try:
  return (self._ws
    .permissions
    .get(object_type, object_id))
except PermissionDenied, FeatureDisabled:
  logger.warning(...)
  return None
except NotFound:
  raise RetryableError(...)
  • Paginate all SCIM list requests in the SDK (#440). This change ensures that SCIM list() APIs use a default limit of 100 resources, leveraging SCIM's offset + limit pagination to batch requests to the Databricks API.
  • Added taskValues support in remoteDbUtils (#406).
  • Added more detailed error message on default credentials not found error (#419).
  • Request management token via Azure CLI only for Service Principals and not human users (#408).

API Changes:

  • Fixed create() method for w.functions workspace-level service and corresponding databricks.sdk.service.catalog.CreateFunction and databricks.sdk.service.catalog.FunctionInfo dataclasses.
  • Changed create() method for w.metastores workspace-level service with new required argument order.
  • Changed storage_root field for databricks.sdk.service.catalog.CreateMetastore to be optional.
  • Added skip_validation field for databricks.sdk.service.catalog.UpdateExternalLocation.
  • Added libraries field for databricks.sdk.service.compute.CreatePolicy, databricks.sdk.service.compute.EditPolicy and databricks.sdk.service.compute.Policy.
  • Added init_scripts field for databricks.sdk.service.compute.EventDetails.
  • Added file field for databricks.sdk.service.compute.InitScriptInfo.
  • Added zone_id field for databricks.sdk.service.compute.InstancePoolGcpAttributes.
  • Added several dataclasses related to init scripts.
  • Added databricks.sdk.service.compute.LocalFileInfo dataclass.
  • Replaced ui_state field with edit_mode for databricks.sdk.service.jobs.CreateJob and databricks.sdk.service.jobs.JobSettings.
  • Replaced databricks.sdk.service.jobs.CreateJobUiState dataclass with databricks.sdk.service.jobs.CreateJobEditMode.
  • Added include_resolved_values field for databricks.sdk.service.jobs.GetRunRequest.
  • Replaced databricks.sdk.service.jobs.JobSettingsUiState dataclass with databricks.sdk.service.jobs.JobSettingsEditMode.
  • Removed a.o_auth_enrollment account-level service. This was only used to aid in OAuth enablement during the public preview of OAuth. OAuth is now enabled for all AWS E2 accounts, so usage of this API is no longer needed.
  • Added network_connectivity_config_id field for databricks.sdk.service.provisioning.UpdateWorkspaceRequest.
  • Added a.network_connectivity account-level service.
  • Added string_shared_as field for databricks.sdk.service.sharing.SharedDataObject.

Internal changes:

  • Added regression question to issue template (#414).
  • Made test_auth no longer fail if you have a default profile setup (#426).

OpenAPI SHA: d136ad0541f036372601bad9a4382db06c3c912d, Date: 2023-11-14

* Introduce more specific exceptions, like `NotFound`, `AlreadyExists`, `BadRequest`, `PermissionDenied`, `InternalError`, and others ([#376](#376)). This makes it easier to handle errors thrown by the Databricks API. Instead of catching `DatabricksError` and checking the error_code field, you can catch one of these subtypes of `DatabricksError`, which is more ergonomic and removes the need to rethrow exceptions that you don't want to catch. For example:
```python
try:
  return (self._ws
    .permissions
    .get(object_type, object_id))
except DatabricksError as e:
  if e.error_code in [
    "RESOURCE_DOES_NOT_EXIST",
    "RESOURCE_NOT_FOUND",
    "PERMISSION_DENIED",
    "FEATURE_DISABLED",
    "BAD_REQUEST"]:
    logger.warning(...)
    return None
  raise RetryableError(...) from e
```
can be replaced with
```python
try:
  return (self._ws
    .permissions
    .get(object_type, object_id))
except PermissionDenied, FeatureDisabled:
  logger.warning(...)
  return None
except NotFound:
  raise RetryableError(...)
```
* Paginate all SCIM list requests in the SDK ([#440](#440)). This change ensures that SCIM list() APIs use a default limit of 100 resources, leveraging SCIM's offset + limit pagination to batch requests to the Databricks API.
* Added taskValues support in remoteDbUtils ([#406](#406)).
* Added more detailed error message on default credentials not found error ([#419](#419)).
* Request management token via Azure CLI only for Service Principals and not human users ([#408](#408)).

API Changes:

 * Fixed `create()` method for [w.functions](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/functions.html) workspace-level service and corresponding `databricks.sdk.service.catalog.CreateFunction` and `databricks.sdk.service.catalog.FunctionInfo` dataclasses.
 * Changed `create()` method for [w.metastores](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/metastores.html) workspace-level service with new required argument order.
 * Changed `storage_root` field for `databricks.sdk.service.catalog.CreateMetastore` to be optional.
 * Added `skip_validation` field for `databricks.sdk.service.catalog.UpdateExternalLocation`.
 * Added `libraries` field for `databricks.sdk.service.compute.CreatePolicy`, `databricks.sdk.service.compute.EditPolicy` and `databricks.sdk.service.compute.Policy`.
 * Added `init_scripts` field for `databricks.sdk.service.compute.EventDetails`.
 * Added `file` field for `databricks.sdk.service.compute.InitScriptInfo`.
 * Added `zone_id` field for `databricks.sdk.service.compute.InstancePoolGcpAttributes`.
 * Added several dataclasses related to init scripts.
 * Added `databricks.sdk.service.compute.LocalFileInfo` dataclass.
 * Replaced `ui_state` field with `edit_mode` for `databricks.sdk.service.jobs.CreateJob` and `databricks.sdk.service.jobs.JobSettings`.
 * Replaced `databricks.sdk.service.jobs.CreateJobUiState` dataclass with `databricks.sdk.service.jobs.CreateJobEditMode`.
 * Added `include_resolved_values` field for `databricks.sdk.service.jobs.GetRunRequest`.
 * Replaced `databricks.sdk.service.jobs.JobSettingsUiState` dataclass with `databricks.sdk.service.jobs.JobSettingsEditMode`.
 * Removed [a.o_auth_enrollment](https://databricks-sdk-py.readthedocs.io/en/latest/account/o_auth_enrollment.html) account-level service. This was only used to aid in OAuth enablement during the public preview of OAuth. OAuth is now enabled for all AWS E2 accounts, so usage of this API is no longer needed.
 * Added `network_connectivity_config_id` field for `databricks.sdk.service.provisioning.UpdateWorkspaceRequest`.
 * Added [a.network_connectivity](https://databricks-sdk-py.readthedocs.io/en/latest/account/network_connectivity.html) account-level service.
 * Added `string_shared_as` field for `databricks.sdk.service.sharing.SharedDataObject`.

Internal changes:

* Added regression question to issue template ([#414](#414)).
* Made test_auth no longer fail if you have a default profile setup ([#426](#426)).

OpenAPI SHA: d136ad0541f036372601bad9a4382db06c3c912d, Date: 2023-11-14
@codecov-commenter
Copy link

codecov-commenter commented Nov 14, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (9ba48cc) 51.62% compared to head (b7624dd) 51.62%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #442   +/-   ##
=======================================
  Coverage   51.62%   51.62%           
=======================================
  Files          38       38           
  Lines       22266    22266           
=======================================
  Hits        11495    11495           
  Misses      10771    10771           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@nfx nfx left a comment

Choose a reason for hiding this comment

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

let's ship it asap

@mgyucht mgyucht added this pull request to the merge queue Nov 14, 2023
@mgyucht
Copy link
Contributor Author

mgyucht commented Nov 14, 2023

Integration tests have passed, so let's ship this.

Merged via the queue into main with commit 86ca043 Nov 14, 2023
9 checks passed
@mgyucht mgyucht deleted the prepare/0.13.0 branch November 14, 2023 15:12
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.

4 participants