databricks-sql-kernel 0.3.0__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/CHANGELOG.md +6 -0
  2. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/Cargo.lock +1 -1
  3. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/Cargo.toml +1 -1
  4. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/PKG-INFO +1 -1
  5. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/CHANGELOG.md +6 -0
  6. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/Cargo.lock +2 -2
  7. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/Cargo.toml +1 -1
  8. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/executed_async.rs +1 -1
  9. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyproject.toml +1 -1
  10. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/session.rs +49 -0
  11. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/executed_async.rs +19 -2
  12. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/appkit/download-release.sh +0 -75
  13. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/appkit/poll-release.sh +0 -85
  14. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-cargo.sh +0 -29
  15. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-coursier.sh +0 -19
  16. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-gradle.sh +0 -65
  17. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-maven.sh +0 -37
  18. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-npm.sh +0 -11
  19. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-pip.sh +0 -7
  20. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/configure-sbt.sh +0 -116
  21. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/deco-dispatch-tagging-single.sh +0 -48
  22. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/deco-dispatch-tagging.sh +0 -107
  23. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/deco-load-maven-creds.sh +0 -88
  24. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/deco-pending-tags.sh +0 -116
  25. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/download-artifact.sh +0 -51
  26. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/extract-changelog.sh +0 -69
  27. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/jfrog-oidc-token.py +0 -77
  28. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/jfrog-oidc-token.sh +0 -27
  29. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/maven-central-publish.sh +0 -288
  30. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/maven-deploy.sh +0 -225
  31. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/mlflow/ts_publish.ts +0 -170
  32. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/mlflow/validate_ts_release.ts +0 -183
  33. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/npm-oidc-publish.sh +0 -112
  34. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/omnigent/site-desktop-feed.mjs +0 -204
  35. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/omnigent/vercel-blob-upload.mjs +0 -139
  36. databricks_sql_kernel-0.3.0/_release-scripts/.github/scripts/pypi-oidc-publish.sh +0 -128
  37. databricks_sql_kernel-0.3.0/_release-scripts/CODEOWNERS +0 -141
  38. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/config.yaml +0 -0
  39. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/context-repos.yaml +0 -0
  40. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/prompts/engineer/system.md +0 -0
  41. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/prompts/engineer/user.md +0 -0
  42. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/prompts/engineer-followup/system.md +0 -0
  43. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/prompts/retrospective_system.md +0 -0
  44. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.bot/prompts/review/system.md +0 -0
  45. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.claude/knowledge/learning-log.md +0 -0
  46. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/CODEOWNERS +0 -0
  47. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/actions/bot-prelude/action.yml +0 -0
  48. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/actions/install-bot-engine/action.yml +0 -0
  49. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/actions/setup-jfrog/action.yml +0 -0
  50. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/dependabot.yml +0 -0
  51. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/scripts/check-napi-loader-drift.sh +0 -0
  52. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/cargo-publish.yml +0 -0
  53. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/close-stale.yml +0 -0
  54. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/coverage.yml +0 -0
  55. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/dco-check.yml +0 -0
  56. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/engineer-bot-followup.yml +0 -0
  57. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/engineer-bot-learning.yml +0 -0
  58. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/engineer-bot.yml +0 -0
  59. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/license-check.yml +0 -0
  60. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/napi-checks.yml +0 -0
  61. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/pr-checks.yml +0 -0
  62. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/pyo3-checks.yml +0 -0
  63. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/reviewer-bot-followup.yml +0 -0
  64. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/reviewer-bot.yml +0 -0
  65. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/rust-e2e.yml +0 -0
  66. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/securityScan.yml +0 -0
  67. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/skip-checks-reporter.yml +0 -0
  68. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/trigger-coverage-fanout.yml +0 -0
  69. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.github/workflows/trigger-integration-tests.yml +0 -0
  70. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/.gitignore +0 -0
  71. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/CLAUDE.md +0 -0
  72. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/CONNECTION_PARAMETERS.md +0 -0
  73. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/LICENSE +0 -0
  74. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/Makefile +0 -0
  75. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/NEXT_CHANGELOG.md +0 -0
  76. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/NOTICE.txt +0 -0
  77. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/README.md +0 -0
  78. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/about.toml +0 -0
  79. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/ci/proxy/htpasswd +0 -0
  80. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/ci/proxy/squid-auth.conf +0 -0
  81. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/clippy.toml +0 -0
  82. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/deny.toml +0 -0
  83. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/PECOBLR-2091-retry-logic-design.md +0 -0
  84. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/PECOBLR-4141-azure-service-principal-design.md +0 -0
  85. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/PECOBLR-4146-oauth-token-persistence-design.md +0 -0
  86. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/client-refactor-design.md +0 -0
  87. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/cloudfetch-implementation-plan.md +0 -0
  88. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/cloudfetch-pipeline-redesign.md +0 -0
  89. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/complex-types-json-stringify.md +0 -0
  90. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/connection-metadata-design.md +0 -0
  91. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/fix-duplicate-link-prefetch.md +0 -0
  92. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/inline-arrow-results-design.md +0 -0
  93. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/kernel-telemetry-design.md +0 -0
  94. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/oauth-sprint-plan.md +0 -0
  95. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/oauth-u2m-m2m-design.md +0 -0
  96. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/odbc-batch-optimization.md +0 -0
  97. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/odbc-metadata-ffi-design.md +0 -0
  98. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/prepared-statement-design.md +0 -0
  99. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/proxy-support-design.md +0 -0
  100. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/result-metadata-propagation.md +0 -0
  101. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/tls-config-design.md +0 -0
  102. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/designs/token-federation-design.md +0 -0
  103. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/migration-plan.md +0 -0
  104. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/pr-4-plan.md +0 -0
  105. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/pr-5-plan.md +0 -0
  106. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/docs/spec-v0.md +0 -0
  107. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/include/databricks_kernel.h +0 -0
  108. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/include/legacy/databricks_metadata_ffi.h +0 -0
  109. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/license.tpl +0 -0
  110. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/osv-scanner.toml +0 -0
  111. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/NEXT_CHANGELOG.md +0 -0
  112. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/pytest.ini +0 -0
  113. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/release-notes.txt +0 -0
  114. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/auth.rs +0 -0
  115. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/errors.rs +0 -0
  116. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/fetch.rs +0 -0
  117. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/lib.rs +0 -0
  118. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/logging.rs +0 -0
  119. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/macros.rs +0 -0
  120. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/metadata.rs +0 -0
  121. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/params.rs +0 -0
  122. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/result_stream.rs +0 -0
  123. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/session.rs +0 -0
  124. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/src/statement.rs +0 -0
  125. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/conftest.py +0 -0
  126. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_async.py +0 -0
  127. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_auth.py +0 -0
  128. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_execute.py +0 -0
  129. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_metadata.py +0 -0
  130. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_module.py +0 -0
  131. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/pyo3/tests/test_session.py +0 -0
  132. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/release-notes.txt +0 -0
  133. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/config.rs +0 -0
  134. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/mod.rs +0 -0
  135. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/azure.rs +0 -0
  136. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/cache.rs +0 -0
  137. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/cache_crypto.rs +0 -0
  138. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/callback.rs +0 -0
  139. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/federation.rs +0 -0
  140. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/jwt.rs +0 -0
  141. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/jwt_key.rs +0 -0
  142. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/jwt_m2m.rs +0 -0
  143. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/m2m.rs +0 -0
  144. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/mod.rs +0 -0
  145. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/oidc.rs +0 -0
  146. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/test_keys.rs +0 -0
  147. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/token.rs +0 -0
  148. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/token_store.rs +0 -0
  149. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/oauth/u2m.rs +0 -0
  150. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/auth/pat.rs +0 -0
  151. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/error.rs +0 -0
  152. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/metadata.rs +0 -0
  153. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/mod.rs +0 -0
  154. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/result.rs +0 -0
  155. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/session.rs +0 -0
  156. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/c_abi/statement.rs +0 -0
  157. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/client/http.rs +0 -0
  158. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/client/mod.rs +0 -0
  159. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/client/retry.rs +0 -0
  160. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/client/sea.rs +0 -0
  161. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/client/transport.rs +0 -0
  162. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/config.rs +0 -0
  163. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/kernel_error.rs +0 -0
  164. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/klog.rs +0 -0
  165. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/lib.rs +0 -0
  166. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/logging.rs +0 -0
  167. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/mod.rs +0 -0
  168. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/schemas.rs +0 -0
  169. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/sql.rs +0 -0
  170. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/static_data.rs +0 -0
  171. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/thrift_shape.rs +0 -0
  172. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata/type_mapping.rs +0 -0
  173. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/metadata_v0.rs +0 -0
  174. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/cloudfetch/arrow_parser.rs +0 -0
  175. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/cloudfetch/chunk_downloader.rs +0 -0
  176. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/cloudfetch/link_fetcher.rs +0 -0
  177. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/cloudfetch/mod.rs +0 -0
  178. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/cloudfetch/streaming_provider.rs +0 -0
  179. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/inline/mod.rs +0 -0
  180. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/inline/provider.rs +0 -0
  181. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/inline/streaming.rs +0 -0
  182. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/mod.rs +0 -0
  183. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/post_processor/json.rs +0 -0
  184. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/post_processor/mod.rs +0 -0
  185. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/reader/test_utils.rs +0 -0
  186. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/result/mod.rs +0 -0
  187. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/result_stream.rs +0 -0
  188. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/dml_count.rs +0 -0
  189. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/executed.rs +0 -0
  190. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/handle.rs +0 -0
  191. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/mod.rs +0 -0
  192. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/mutable.rs +0 -0
  193. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/params.rs +0 -0
  194. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/params_codec.rs +0 -0
  195. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/spec.rs +0 -0
  196. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/statement/validity.rs +0 -0
  197. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/circuit_breaker.rs +0 -0
  198. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/client.rs +0 -0
  199. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/databricks.rs +0 -0
  200. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/exporter.rs +0 -0
  201. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/manager.rs +0 -0
  202. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/mod.rs +0 -0
  203. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/models.rs +0 -0
  204. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/runtime.rs +0 -0
  205. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/statement.rs +0 -0
  206. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/telemetry/test_support.rs +0 -0
  207. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/types/cloudfetch.rs +0 -0
  208. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/types/mod.rs +0 -0
  209. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/types/sea.rs +0 -0
  210. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/util/mod.rs +0 -0
  211. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/src/util/runtime.rs +0 -0
  212. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/bot_e2e_helper.rs +0 -0
  213. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c/session_smoke.c +0 -0
  214. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c_abi_logging_callback.rs +0 -0
  215. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c_abi_logging_callback_conflict.rs +0 -0
  216. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c_abi_logging_callback_panic.rs +0 -0
  217. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c_abi_logging_callback_reentrancy.rs +0 -0
  218. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/c_abi_mtls_e2e.rs +0 -0
  219. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/common/mod.rs +0 -0
  220. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/klog_bridge.rs +0 -0
  221. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/oauth_u2m_integration.rs +0 -0
  222. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/token_federation_wiremock.rs +0 -0
  223. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_async_execute_e2e.rs +0 -0
  224. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_async_execute_wiremock.rs +0 -0
  225. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_c_abi_canceller_wiremock.rs +0 -0
  226. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_c_abi_metadata_table_types_wiremock.rs +0 -0
  227. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_c_abi_result_config_wiremock.rs +0 -0
  228. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_c_abi_session_close_wiremock.rs +0 -0
  229. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_c_abi_session_test_wiremock.rs +0 -0
  230. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_execute_e2e.rs +0 -0
  231. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_execute_wiremock.rs +0 -0
  232. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_logging_wiremock.rs +0 -0
  233. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_metadata_e2e.rs +0 -0
  234. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_metadata_empty_types_e2e.rs +0 -0
  235. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_metadata_wiremock.rs +0 -0
  236. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_query_tags_headers_e2e.rs +0 -0
  237. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_session_e2e.rs +0 -0
  238. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_session_wiremock.rs +0 -0
  239. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_statement_canceller_reexecute.rs +0 -0
  240. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_tls_e2e.rs +0 -0
  241. {databricks_sql_kernel-0.3.0 → databricks_sql_kernel-1.0.0}/tests/v0_transactions_e2e.rs +0 -0
@@ -14,6 +14,12 @@ cadences and may not move in lockstep with the crate.
14
14
 
15
15
  ### Fixed
16
16
 
17
+ ## [v1.0.0] - 2026-08-31
18
+
19
+ ### Fixed
20
+ - Explicit async statement close finalizes telemetry when a partially consumed
21
+ result stream remains alive.
22
+
17
23
  ## [v0.3.0] - 2026-08-28
18
24
 
19
25
  ### Added
@@ -617,7 +617,7 @@ checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06"
617
617
 
618
618
  [[package]]
619
619
  name = "databricks-sql-kernel"
620
- version = "0.3.0"
620
+ version = "1.0.0"
621
621
  dependencies = [
622
622
  "aes 0.9.2",
623
623
  "arrow-array",
@@ -14,7 +14,7 @@
14
14
 
15
15
  [package]
16
16
  name = "databricks-sql-kernel"
17
- version = "0.3.0"
17
+ version = "1.0.0"
18
18
  edition = "2021"
19
19
  authors = ["Databricks"]
20
20
  license = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-sql-kernel
3
- Version: 0.3.0
3
+ Version: 1.0.0
4
4
  Requires-Dist: pyarrow>=23.0.1,<24 ; python_full_version >= '3.10'
5
5
  Requires-Dist: pyarrow>=14,<19 ; python_full_version < '3.10'
6
6
  Summary: Python bindings for the Databricks SQL Kernel (PyO3)
@@ -14,6 +14,12 @@ they ship on independent cadences.
14
14
 
15
15
  ### Fixed
16
16
 
17
+ ## [v1.0.0] - 2026-08-31
18
+
19
+ ### Fixed
20
+ - `ExecutedAsyncStatement.close()` now finalizes async statement telemetry in
21
+ partial-fetch flows.
22
+
17
23
  ## [v0.3.0] - 2026-08-28
18
24
 
19
25
  ### Added
@@ -546,7 +546,7 @@ dependencies = [
546
546
 
547
547
  [[package]]
548
548
  name = "databricks-sql-kernel"
549
- version = "0.3.0"
549
+ version = "1.0.0"
550
550
  dependencies = [
551
551
  "aes 0.9.2",
552
552
  "arrow-array",
@@ -586,7 +586,7 @@ dependencies = [
586
586
 
587
587
  [[package]]
588
588
  name = "databricks-sql-kernel-pyo3"
589
- version = "0.3.0"
589
+ version = "1.0.0"
590
590
  dependencies = [
591
591
  "arrow-array",
592
592
  "arrow-pyarrow",
@@ -31,7 +31,7 @@
31
31
 
32
32
  [package]
33
33
  name = "databricks-sql-kernel-pyo3"
34
- version = "0.3.0"
34
+ version = "1.0.0"
35
35
  edition = "2021"
36
36
  authors = ["Databricks"]
37
37
  license = "Apache-2.0"
@@ -133,7 +133,7 @@ impl ExecutedAsyncStatement {
133
133
  return Ok(());
134
134
  };
135
135
  let runtime = inner.runtime.clone();
136
- let res = run_kernel!(py, runtime, inner.exec.close());
136
+ let res = run_kernel!(py, runtime, KExecutedAsyncStatement::close(&mut inner.exec));
137
137
  self.inner = None;
138
138
  res.map(|_| ())
139
139
  }
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "databricks-sql-kernel"
7
- version = "0.3.0"
7
+ version = "1.0.0"
8
8
  description = "Python bindings for the Databricks SQL Kernel (PyO3)"
9
9
  # Floor matches the tested CI matrix in
10
10
  # .github/workflows/pyo3-checks.yml (3.9 .. 3.14). The abi3-py39
@@ -2424,6 +2424,55 @@ mod is_open_tests {
2424
2424
  );
2425
2425
  }
2426
2426
 
2427
+ #[tokio::test]
2428
+ async fn async_statement_close_finalizes_partial_result_telemetry() {
2429
+ let server = MockServer::start().await;
2430
+ mount_session_create_delete(&server, "sess-telemetry-async-partial-close").await;
2431
+ mount_close_any_statement(&server).await;
2432
+ mount_execute(&server, running_body("stmt-telemetry-async-partial-close")).await;
2433
+ mount_status(
2434
+ &server,
2435
+ "stmt-telemetry-async-partial-close",
2436
+ succeeded_inline_body(
2437
+ "stmt-telemetry-async-partial-close",
2438
+ &int64_batch("n", vec![1]),
2439
+ ),
2440
+ )
2441
+ .await;
2442
+ let exporter = CapturingTelemetryExporter::default();
2443
+ let telemetry = TelemetryConfig {
2444
+ enabled: true,
2445
+ ..Default::default()
2446
+ }
2447
+ .with_exporter(std::sync::Arc::new(exporter.clone()));
2448
+ let session =
2449
+ telemetry_test_session(&server, "sess-telemetry-async-partial-close", telemetry).await;
2450
+
2451
+ let mut stmt = session.statement();
2452
+ stmt.spec().sql("SELECT 1 AS n");
2453
+ let mut async_exec = stmt.submit().await.expect("submit succeeds");
2454
+ let mut stream = async_exec.await_result().await.expect("await succeeds");
2455
+ assert!(stream.next_batch().await.expect("first batch").is_some());
2456
+
2457
+ async_exec.close().await.expect("close succeeds");
2458
+ session.close().await.expect("close succeeds");
2459
+
2460
+ let async_statement_logs = exported_logs(&exporter)
2461
+ .into_iter()
2462
+ .filter(|log| operation_type(log) == Some("EXECUTE_STATEMENT_ASYNC"))
2463
+ .collect::<Vec<_>>();
2464
+ assert_eq!(
2465
+ async_statement_logs.len(),
2466
+ 1,
2467
+ "partial async result close should finalize telemetry once even while \
2468
+ the result stream is still live"
2469
+ );
2470
+ assert_eq!(
2471
+ async_statement_logs[0]["entry"]["sql_driver_log"]["sql_statement_id"],
2472
+ "stmt-telemetry-async-partial-close"
2473
+ );
2474
+ }
2475
+
2427
2476
  #[tokio::test]
2428
2477
  async fn async_statement_status_failure_exports_error_telemetry() {
2429
2478
  let server = MockServer::start().await;
@@ -731,6 +731,25 @@ impl ExecutedStatementHandle for ExecutedAsyncStatement {
731
731
  }
732
732
 
733
733
  async fn close(&self) -> Result<()> {
734
+ self.close_server_statement().await
735
+ }
736
+ }
737
+
738
+ impl ExecutedAsyncStatement {
739
+ /// Explicit close for concrete async statements.
740
+ ///
741
+ /// Once [`await_result`](Self::await_result) / [`fetch_result`](Self::fetch_result)
742
+ /// returns a [`ResultStream`], that stream owns success finalization so full
743
+ /// result consumption can include result metrics. Explicitly closing the owning
744
+ /// async statement is the binding-visible lifecycle boundary, though, so finalize
745
+ /// here as a deterministic backstop for partial-fetch callers that keep the stream
746
+ /// alive past session close.
747
+ pub async fn close(&mut self) -> Result<()> {
748
+ self.statement_telemetry.finalize(None);
749
+ self.close_server_statement().await
750
+ }
751
+
752
+ async fn close_server_statement(&self) -> Result<()> {
734
753
  // Idempotent on success: a prior successful close sets
735
754
  // `closed=true` and subsequent calls short-circuit.
736
755
  //
@@ -767,9 +786,7 @@ impl ExecutedStatementHandle for ExecutedAsyncStatement {
767
786
  .instrument(self.session.log_span().clone())
768
787
  .await
769
788
  }
770
- }
771
789
 
772
- impl ExecutedAsyncStatement {
773
790
  /// Produce a detached [`AsyncStatementCanceller`] that can fire a
774
791
  /// server-side cancel for this statement *without borrowing the
775
792
  /// handle*.
@@ -1,75 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Downloads a release artifact from databricks/appkit, extracts it, and
5
- # resolves version/tag/stream metadata.
6
- #
7
- # Requires: GH_TOKEN, RUN_ID, OUTPUT_DIR
8
- # Writes to $GITHUB_OUTPUT: run-id, head-sha, version, tag, stream
9
-
10
- REPO="databricks/appkit"
11
-
12
- # Validate the run completed successfully and extract head SHA
13
- run_json=$(gh api "repos/${REPO}/actions/runs/${RUN_ID}")
14
- run_status=$(echo "$run_json" | jq -r '.conclusion')
15
- head_sha=$(echo "$run_json" | jq -r '.head_sha')
16
-
17
- if [[ ! "$head_sha" =~ ^[0-9a-f]{40}$ ]]; then
18
- echo "::error::Run ${RUN_ID} returned invalid head_sha: '${head_sha}'"
19
- exit 1
20
- fi
21
-
22
- if [[ "$run_status" != "success" ]]; then
23
- echo "::error::Run ${RUN_ID} has conclusion '${run_status}', expected 'success'"
24
- exit 1
25
- fi
26
-
27
- echo "run-id=${RUN_ID}" >> "$GITHUB_OUTPUT"
28
- echo "head-sha=${head_sha}" >> "$GITHUB_OUTPUT"
29
-
30
- # Find the release artifact
31
- artifact_json=$(gh api "repos/${REPO}/actions/runs/${RUN_ID}/artifacts" \
32
- --jq '.artifacts[] | select(.name | test("^(appkit|lakebase)-release-[0-9]"))')
33
-
34
- artifact_id=$(echo "$artifact_json" | jq -r '.id' | head -1)
35
- artifact_name=$(echo "$artifact_json" | jq -r '.name' | head -1)
36
- artifact_expired=$(echo "$artifact_json" | jq -r '.expired' | head -1)
37
-
38
- if [[ -z "$artifact_id" || "$artifact_id" == "null" ]]; then
39
- echo "::error::No release artifact found for run ${RUN_ID}"
40
- exit 1
41
- fi
42
-
43
- if [[ "$artifact_expired" == "true" ]]; then
44
- echo "::error::Release artifact for run ${RUN_ID} has expired, cannot download"
45
- exit 1
46
- fi
47
-
48
- echo "Downloading artifact: ${artifact_name} (ID: ${artifact_id})"
49
-
50
- mkdir -p "${OUTPUT_DIR}"
51
- curl -sfL \
52
- -H "Authorization: Bearer ${GH_TOKEN}" \
53
- -o "${OUTPUT_DIR}/release.zip" \
54
- "https://api.github.com/repos/${REPO}/actions/artifacts/${artifact_id}/zip"
55
-
56
- unzip -q "${OUTPUT_DIR}/release.zip" -d "${OUTPUT_DIR}/"
57
- rm "${OUTPUT_DIR}/release.zip"
58
-
59
- echo "Downloaded files:"
60
- ls -la "${OUTPUT_DIR}/"
61
-
62
- # Resolve version, tag, stream from downloaded artifacts
63
- VERSION=$(cat "${OUTPUT_DIR}/VERSION")
64
- if [[ "$artifact_name" == lakebase-* ]]; then
65
- STREAM="lakebase"
66
- TAG="lakebase-v${VERSION}"
67
- else
68
- STREAM="appkit"
69
- TAG="v${VERSION}"
70
- fi
71
-
72
- echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
73
- echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
74
- echo "stream=${STREAM}" >> "$GITHUB_OUTPUT"
75
- echo "Resolved: run=${RUN_ID} version=${VERSION} tag=${TAG} stream=${STREAM}"
@@ -1,85 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Polls for unprocessed appkit/lakebase release runs.
5
- # Checks both prepare-release and prepare-release-lakebase workflows,
6
- # downloads the meta artifact (VERSION file), and verifies the tag
7
- # doesn't already exist.
8
- #
9
- # Requires: GH_TOKEN (GitHub App token with read access to databricks/appkit)
10
- # Writes to $GITHUB_OUTPUT: run-id, version, tag, stream
11
-
12
- REPO="databricks/appkit"
13
-
14
- # Check lakebase first — appkit depends on lakebase, so lakebase must publish first
15
- for workflow_name in "prepare-release-lakebase" "prepare-release"; do
16
- # Get latest successful completed run
17
- run_json=$(gh api "repos/${REPO}/actions/workflows/${workflow_name}.yml/runs?status=success&per_page=1" \
18
- --jq '.workflow_runs[0] // empty')
19
-
20
- if [[ -z "$run_json" ]]; then
21
- echo "No successful runs found for ${workflow_name}"
22
- continue
23
- fi
24
-
25
- run_id=$(echo "$run_json" | jq -r '.id')
26
-
27
- # Look for meta artifact (small, just VERSION file).
28
- # Skip expired ones: the artifact 410s and that version is already released.
29
- meta_artifact_id=$(gh api "repos/${REPO}/actions/runs/${run_id}/artifacts" \
30
- --jq '.artifacts[] | select(.name | test("release-meta-")) | select(.expired == false) | .id' | head -1)
31
-
32
- if [[ -z "$meta_artifact_id" ]]; then
33
- echo "Warning: no live meta artifact for run ${run_id} (missing or expired), skipping ${workflow_name}" >&2
34
- continue
35
- fi
36
-
37
- # Download small meta artifact to read VERSION
38
- tmpdir=$(mktemp -d)
39
- curl -sfL \
40
- -H "Authorization: Bearer ${GH_TOKEN}" \
41
- -o "${tmpdir}/meta.zip" \
42
- "https://api.github.com/repos/${REPO}/actions/artifacts/${meta_artifact_id}/zip"
43
- unzip -q "${tmpdir}/meta.zip" -d "${tmpdir}/extracted"
44
-
45
- if [[ ! -f "${tmpdir}/extracted/VERSION" ]]; then
46
- echo "No VERSION file in meta artifact for run ${run_id}"
47
- rm -rf "$tmpdir"
48
- continue
49
- fi
50
-
51
- version=$(cat "${tmpdir}/extracted/VERSION")
52
- rm -rf "$tmpdir"
53
-
54
- # Determine tag and stream
55
- if [[ "$workflow_name" == "prepare-release" ]]; then
56
- tag="v${version}"
57
- stream="appkit"
58
- else
59
- tag="lakebase-v${version}"
60
- stream="lakebase"
61
- fi
62
-
63
- # Check if tag already exists (already released)
64
- if gh api "repos/${REPO}/git/refs/tags/${tag}" &>/dev/null; then
65
- echo "Tag ${tag} already exists, skipping"
66
- continue
67
- fi
68
-
69
- # Check if a newer run is in progress
70
- in_progress=$(gh api "repos/${REPO}/actions/workflows/${workflow_name}.yml/runs?status=in_progress&per_page=1" \
71
- --jq '.total_count')
72
- if [[ "$in_progress" -gt 0 ]]; then
73
- echo "A newer ${workflow_name} run is in progress, waiting"
74
- continue
75
- fi
76
-
77
- echo "Found unprocessed run: ${run_id} (${stream} v${version})"
78
- echo "run-id=${run_id}" >> "$GITHUB_OUTPUT"
79
- echo "version=${version}" >> "$GITHUB_OUTPUT"
80
- echo "tag=${tag}" >> "$GITHUB_OUTPUT"
81
- echo "stream=${stream}" >> "$GITHUB_OUTPUT"
82
- exit 0
83
- done
84
-
85
- echo "No unprocessed release runs found"
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Point cargo at the internal JFrog crates index (sparse registry).
3
- # Expects JFROG_ACCESS_TOKEN in the environment (e.g. from jfrog-oidc-token.sh).
4
- # Appends CARGO_REGISTRIES_JFROG_TOKEN to $GITHUB_ENV when set.
5
- set -euo pipefail
6
-
7
- mkdir -p ~/.cargo
8
- cat > ~/.cargo/config.toml << EOF
9
- [source.crates-io]
10
- replace-with = "jfrog"
11
-
12
- [source.jfrog]
13
- registry = "sparse+https://databricks.jfrog.io/artifactory/api/cargo/db-cargo-remote/index/"
14
-
15
- [registries.jfrog]
16
- index = "sparse+https://databricks.jfrog.io/artifactory/api/cargo/db-cargo-remote/index/"
17
- credential-provider = ["cargo:token"]
18
- EOF
19
-
20
- cat > ~/.cargo/credentials.toml << EOF
21
- [registries.jfrog]
22
- token = "Bearer ${JFROG_ACCESS_TOKEN}"
23
- EOF
24
-
25
- if [[ -n "${GITHUB_ENV:-}" ]]; then
26
- echo "CARGO_REGISTRIES_JFROG_TOKEN=Bearer ${JFROG_ACCESS_TOKEN}" >> "$GITHUB_ENV"
27
- fi
28
-
29
- echo "Cargo configured to use JFrog registry"
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Point coursier based build tools at the internal JFrog registry.
3
- set -euo pipefail
4
-
5
- JFROG_HOST="databricks.jfrog.io"
6
- JFROG_REALM="Artifactory Realm"
7
- JFROG_USERNAME="gha-service-account"
8
-
9
- mkdir -p ~/.config/coursier
10
- {
11
- echo "jfrog.host=${JFROG_HOST}"
12
- echo "jfrog.realm=${JFROG_REALM}"
13
- echo "jfrog.username=${JFROG_USERNAME}"
14
- echo "jfrog.password=${JFROG_ACCESS_TOKEN}"
15
- } > ~/.config/coursier/credentials.properties
16
-
17
- echo "COURSIER_REPOSITORIES=https://${JFROG_HOST}/artifactory/db-maven" >> "$GITHUB_ENV"
18
-
19
- echo "Coursier configured to use JFrog registry"
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env bash
2
- # configure-gradle.sh — Route Gradle dependency resolution entirely through
3
- # JFrog, so the runner never reaches the public Maven repos directly.
4
- #
5
- # Writes ~/.gradle/init.d/jfrog-mirror.gradle, an init script that clears and
6
- # replaces ALL three repository handlers with JFrog-only repos (db-maven +
7
- # db-maven-google), so the runner never reaches public Maven repos:
8
- # 1. beforeSettings — pluginManagement.repositories (Gradle plugins)
9
- # 2. settingsEvaluated — dependencyResolutionManagement.repositories (deps)
10
- # 3. allprojects — buildscript.repositories (build plugins)
11
- # If a plugin/artifact is on neither db-maven nor db-maven-google, the build
12
- # fails loudly rather than silently falling back to the public internet.
13
- #
14
- # The source repo sets repositoriesMode = FAIL_ON_PROJECT_REPOS, so this script
15
- # deliberately does NOT add project-level repositories (allprojects.repositories)
16
- # — doing so would fail the build. Dependencies resolve through the
17
- # settings-level dependencyResolutionManagement repos replaced in step 2.
18
- #
19
- # Requires JFROG_ACCESS_TOKEN (set by jfrog-oidc-token.sh).
20
- set -euo pipefail
21
-
22
- : "${JFROG_ACCESS_TOKEN:?JFROG_ACCESS_TOKEN is required. Run jfrog-oidc-token.sh first.}"
23
-
24
- mkdir -p ~/.gradle/init.d
25
- cat > ~/.gradle/init.d/jfrog-mirror.gradle <<'GRADLE'
26
- def jfrogUser = 'gha-service-account'
27
- def jfrogPass = System.getenv('JFROG_ACCESS_TOKEN')
28
-
29
- // db-maven: Maven virtual repo — proxies Maven Central (+ other Maven remotes).
30
- // db-maven-google: remote repo proxying dl.google.com/dl/android/maven2/ —
31
- // hosts androidx.*, com.android.tools.*, AGP (NOT on Maven Central).
32
- def addRepo = { handler, repoUrl ->
33
- handler.maven {
34
- url = repoUrl
35
- credentials {
36
- username = jfrogUser
37
- password = jfrogPass
38
- }
39
- }
40
- }
41
- def addJfrogRepos = { handler ->
42
- addRepo(handler, 'https://databricks.jfrog.io/artifactory/db-maven/')
43
- addRepo(handler, 'https://databricks.jfrog.io/artifactory/db-maven-google/')
44
- }
45
-
46
- beforeSettings { settings ->
47
- def repos = settings.pluginManagement.repositories
48
- repos.clear()
49
- addJfrogRepos(repos)
50
- }
51
-
52
- settingsEvaluated { settings ->
53
- def repos = settings.dependencyResolutionManagement.repositories
54
- repos.clear()
55
- addJfrogRepos(repos)
56
- }
57
-
58
- allprojects {
59
- def repos = buildscript.repositories
60
- repos.clear()
61
- addJfrogRepos(repos)
62
- }
63
- GRADLE
64
-
65
- echo "Gradle configured to use JFrog (db-maven + db-maven-google) registry"
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Configure Maven to resolve dependencies through the JFrog mirror.
5
- # Writes ~/.m2/settings.xml with mirror and server credentials.
6
- #
7
- # The JFrog db-maven virtual repo proxies Maven Central for project
8
- # dependencies. All artifact resolution is routed through JFrog.
9
- #
10
- # Requires JFROG_ACCESS_TOKEN to be set in the environment.
11
-
12
- : "${JFROG_ACCESS_TOKEN:?JFROG_ACCESS_TOKEN is required}"
13
-
14
- mkdir -p ~/.m2
15
- cat > ~/.m2/settings.xml << 'SETTINGS_TEMPLATE'
16
- <settings>
17
- <mirrors>
18
- <mirror>
19
- <id>jfrog-central</id>
20
- <mirrorOf>*</mirrorOf>
21
- <url>https://databricks.jfrog.io/artifactory/db-maven/</url>
22
- </mirror>
23
- </mirrors>
24
- <servers>
25
- <server>
26
- <id>jfrog-central</id>
27
- <username>gha-service-account</username>
28
- <password>JFROG_TOKEN_PLACEHOLDER</password>
29
- </server>
30
- </servers>
31
- </settings>
32
- SETTINGS_TEMPLATE
33
-
34
- # Substitute the token (avoids exposing it in a heredoc that uses shell expansion).
35
- sed -i "s|JFROG_TOKEN_PLACEHOLDER|${JFROG_ACCESS_TOKEN}|" ~/.m2/settings.xml
36
-
37
- echo "Maven configured to use JFrog registry"
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Point npm at the internal JFrog npm registry.
3
- # Reads JFROG_ACCESS_TOKEN from the environment.
4
- set -euo pipefail
5
-
6
- cat > ~/.npmrc << EOF
7
- registry=https://databricks.jfrog.io/artifactory/api/npm/db-npm/
8
- //databricks.jfrog.io/artifactory/api/npm/db-npm/:_authToken=${JFROG_ACCESS_TOKEN}
9
- always-auth=true
10
- EOF
11
- echo "npm configured to use JFrog registry"
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Point pip at the internal JFrog PyPI registry.
3
- # Reads JFROG_ACCESS_TOKEN from the environment and writes PIP_INDEX_URL to $GITHUB_ENV.
4
- set -euo pipefail
5
-
6
- echo "PIP_INDEX_URL=https://gha-service-account:${JFROG_ACCESS_TOKEN}@databricks.jfrog.io/artifactory/api/pypi/db-pypi/simple" >> "$GITHUB_ENV"
7
- echo "pip configured to use JFrog registry"
@@ -1,116 +0,0 @@
1
- #!/usr/bin/env bash
2
- # configure-sbt.sh — Configure SBT/Coursier to resolve all dependencies through JFrog.
3
- #
4
- # Requires:
5
- # JFROG_ACCESS_TOKEN — already set by jfrog-oidc-token.sh
6
- # GITHUB_ENV — GitHub Actions env file (set automatically by the runner)
7
- #
8
- # Detects repo type automatically:
9
- # Delta-style: build/sbt-config/repositories exists → overwrite with JFrog repos
10
- # UC-style: no repos file → set MAVEN_PROXY_URL for UC's build/sbt
11
-
12
- set -euo pipefail
13
-
14
- if [[ -z "${JFROG_ACCESS_TOKEN:-}" ]]; then
15
- echo "::error::JFROG_ACCESS_TOKEN is not set. Run jfrog-oidc-token.sh first."
16
- exit 1
17
- fi
18
-
19
- JFROG_MAVEN_URL="https://databricks.jfrog.io/artifactory/db-maven"
20
-
21
- # ── Repo-type detection ─────────────────────────────────────────────
22
- if [[ -f "build/sbt-config/repositories" ]]; then
23
- echo "Detected Delta-style repo (build/sbt-config/repositories exists)"
24
-
25
- # Overwrite SBT repository config to route all resolution through JFrog.
26
- # build/sbt unconditionally sets -Dsbt.override.build.repos=true pointing
27
- # to this file.
28
- cat > build/sbt-config/repositories << 'REPOS'
29
- [repositories]
30
- local
31
- local-preloaded-ivy: file:///${sbt.preloaded-${sbt.global.base-${user.home}/.sbt}/preloaded/}, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
32
- local-preloaded: file:///${sbt.preloaded-${sbt.global.base-${user.home}/.sbt}/preloaded/}
33
- jfrog-maven: https://databricks.jfrog.io/artifactory/db-maven/
34
- jfrog-ivy: https://databricks.jfrog.io/artifactory/db-maven/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
35
- REPOS
36
- else
37
- echo "Detected UC-style repo (no build/sbt-config/repositories)"
38
- fi
39
-
40
- # MAVEN_PROXY_URL — UC's build/sbt reads this natively; Delta's SBT uses it
41
- # when auto-building UC from source (ensurePinnedUnityCatalog).
42
- # No trailing slash — sbt-launch-lib.bash concatenates "/org/..." directly.
43
- echo "MAVEN_PROXY_URL=${JFROG_MAVEN_URL}" >> "$GITHUB_ENV"
44
-
45
- # DEFAULT_ARTIFACT_REPOSITORY — fallback used by sbt-launch-lib.bash for
46
- # the launcher JAR download when MAVEN_PROXY_URL is unset at launcher time.
47
- echo "DEFAULT_ARTIFACT_REPOSITORY=${JFROG_MAVEN_URL}" >> "$GITHUB_ENV"
48
-
49
- # ── Coursier credentials ────────────────────────────────────────────
50
- mkdir -p ~/.config/coursier
51
- cat > ~/.config/coursier/credentials.properties << EOF
52
- jfrog.host=databricks.jfrog.io
53
- jfrog.realm=Artifactory Realm
54
- jfrog.username=gha-service-account
55
- jfrog.password=${JFROG_ACCESS_TOKEN}
56
- EOF
57
-
58
- # ── Coursier mirror — redirect Maven Central + Google mirror to JFrog ──
59
- cat > ~/.config/coursier/mirror.properties << 'MIRROR'
60
- central.from=https://repo1.maven.org/maven2
61
- central.to=https://databricks.jfrog.io/artifactory/db-maven/
62
- google.from=https://maven-central.storage-download.googleapis.com/maven2
63
- google.to=https://databricks.jfrog.io/artifactory/db-maven/
64
- MIRROR
65
-
66
- # ── SBT credentials (Ivy resolution in meta-build) ─────────────────
67
- mkdir -p ~/.sbt ~/.sbt/1.0
68
- cat > ~/.sbt/.credentials << EOF
69
- realm=Artifactory Realm
70
- host=databricks.jfrog.io
71
- user=gha-service-account
72
- password=${JFROG_ACCESS_TOKEN}
73
- EOF
74
-
75
- cat > ~/.sbt/1.0/global.sbt << 'SBT'
76
- credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
77
- SBT
78
-
79
- # ── .netrc + .curlrc — for SBT launcher download via curl ──────────
80
- printf 'machine databricks.jfrog.io\n login gha-service-account\n password %s\n' \
81
- "${JFROG_ACCESS_TOKEN}" > ~/.netrc
82
- chmod 600 ~/.netrc
83
- echo "--netrc-optional" > ~/.curlrc
84
-
85
- # ── Patch meta-build sbt-assembly ───────────────────────────────────
86
- # project/project/plugins.sbt may pin an old Ivy-only version (0.14.9)
87
- # that is unavailable through JFrog. Upgrade to match project/plugins.sbt.
88
- META_PLUGINS="project/project/plugins.sbt"
89
- if [[ -f "$META_PLUGINS" ]] && grep -q 'sbt-assembly.*"0\.' "$META_PLUGINS"; then
90
- MAIN_VERSION=$(grep 'sbt-assembly' project/plugins.sbt | grep -oP '\d+\.\d+\.\d+' | head -1)
91
- if [[ -n "$MAIN_VERSION" ]]; then
92
- echo "Patching meta-build sbt-assembly from 0.x to ${MAIN_VERSION}"
93
- sed -i "s/\"sbt-assembly\" % \"0\.[^\"]*\"/\"sbt-assembly\" % \"${MAIN_VERSION}\"/" "$META_PLUGINS"
94
- grep sbt-assembly "$META_PLUGINS"
95
- fi
96
- fi
97
-
98
- # ── Pre-seed SBT launcher JAR ──────────────────────────────────────
99
- # The launcher is gitignored in both delta-io/delta and unitycatalog/unitycatalog.
100
- # Without pre-seeding, build/sbt tries Maven Central which is blocked on
101
- # hardened runners.
102
- if [[ -f "project/build.properties" ]]; then
103
- SBT_VERSION=$(grep sbt.version project/build.properties | cut -d= -f2 | tr -d ' ')
104
- SBT_JAR="build/sbt-launch-${SBT_VERSION}.jar"
105
- if [[ ! -f "$SBT_JAR" ]]; then
106
- echo "Downloading SBT launcher ${SBT_VERSION} from JFrog..."
107
- curl -fsSL -o "$SBT_JAR" \
108
- -u "gha-service-account:${JFROG_ACCESS_TOKEN}" \
109
- "${JFROG_MAVEN_URL}/org/scala-sbt/sbt-launch/${SBT_VERSION}/sbt-launch-${SBT_VERSION}.jar"
110
- echo "SBT launcher downloaded ($(wc -c < "$SBT_JAR") bytes)"
111
- else
112
- echo "SBT launcher already present: $SBT_JAR"
113
- fi
114
- fi
115
-
116
- echo "SBT and Coursier configured for JFrog"