Skip to content

Commit 41f68d5

Browse files
authored
Merge branch 'databricks:main' into bump-thrift
2 parents 6cb4293 + 36fb376 commit 41f68d5

30 files changed

+546
-95
lines changed

.github/workflows/code-coverage.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,19 @@ jobs:
3131
with:
3232
python-version: "3.10"
3333
#----------------------------------------------
34+
# ----- install system dependencies -----
35+
#----------------------------------------------
36+
- name: Install system dependencies
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get install -y libkrb5-dev
40+
#----------------------------------------------
3441
# ----- install & configure poetry -----
3542
#----------------------------------------------
3643
- name: Install Poetry
3744
uses: snok/install-poetry@v1
3845
with:
46+
version: "2.2.1"
3947
virtualenvs-create: true
4048
virtualenvs-in-project: true
4149
installer-parallel: true
@@ -58,6 +66,10 @@ jobs:
5866
#----------------------------------------------
5967
# install your root project, if required
6068
#----------------------------------------------
69+
- name: Install Kerberos system dependencies
70+
run: |
71+
sudo apt-get update
72+
sudo apt-get install -y libkrb5-dev
6173
- name: Install library
6274
run: poetry install --no-interaction --all-extras
6375
#----------------------------------------------
@@ -75,13 +87,13 @@ jobs:
7587
-v
7688
7789
#----------------------------------------------
78-
# run serial tests with coverage
90+
# run telemetry tests with coverage (isolated)
7991
#----------------------------------------------
80-
- name: Run serial tests with coverage
92+
- name: Run telemetry tests with coverage (isolated)
8193
continue-on-error: false
8294
run: |
83-
poetry run pytest tests/e2e \
84-
-m "serial" \
95+
# Run test_concurrent_telemetry.py separately for isolation
96+
poetry run pytest tests/e2e/test_concurrent_telemetry.py \
8597
--cov=src \
8698
--cov-append \
8799
--cov-report=xml \

.github/workflows/code-quality-checks.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ jobs:
3535
- name: Install Poetry
3636
uses: snok/install-poetry@v1
3737
with:
38+
version: "2.2.1"
3839
virtualenvs-create: true
3940
virtualenvs-in-project: true
4041
installer-parallel: true
@@ -118,6 +119,7 @@ jobs:
118119
- name: Install Poetry
119120
uses: snok/install-poetry@v1
120121
with:
122+
version: "2.2.1"
121123
virtualenvs-create: true
122124
virtualenvs-in-project: true
123125
installer-parallel: true
@@ -140,6 +142,10 @@ jobs:
140142
#----------------------------------------------
141143
# install your root project, if required
142144
#----------------------------------------------
145+
- name: Install Kerberos system dependencies
146+
run: |
147+
sudo apt-get update
148+
sudo apt-get install -y libkrb5-dev
143149
- name: Install library
144150
run: poetry install --no-interaction --all-extras
145151
#----------------------------------------------
@@ -191,6 +197,7 @@ jobs:
191197
- name: Install Poetry
192198
uses: snok/install-poetry@v1
193199
with:
200+
version: "2.2.1"
194201
virtualenvs-create: true
195202
virtualenvs-in-project: true
196203
installer-parallel: true
@@ -243,6 +250,7 @@ jobs:
243250
- name: Install Poetry
244251
uses: snok/install-poetry@v1
245252
with:
253+
version: "2.2.1"
246254
virtualenvs-create: true
247255
virtualenvs-in-project: true
248256
installer-parallel: true

.github/workflows/daily-telemetry-e2e.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
- name: Install Poetry
4444
uses: snok/install-poetry@v1
4545
with:
46+
version: "2.2.1"
4647
virtualenvs-create: true
4748
virtualenvs-in-project: true
4849
installer-parallel: true
@@ -60,6 +61,10 @@ jobs:
6061
#----------------------------------------------
6162
# install dependencies if cache does not exist
6263
#----------------------------------------------
64+
- name: Install Kerberos system dependencies
65+
run: |
66+
sudo apt-get update
67+
sudo apt-get install -y libkrb5-dev
6368
- name: Install dependencies
6469
run: poetry install --no-interaction --all-extras
6570

.github/workflows/integration.yml

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
pull_request:
88

99
jobs:
10-
run-e2e-tests:
10+
run-non-telemetry-tests:
1111
runs-on: ubuntu-latest
1212
environment: azure-prod
1313
env:
@@ -33,6 +33,7 @@ jobs:
3333
- name: Install Poetry
3434
uses: snok/install-poetry@v1
3535
with:
36+
version: "2.2.1"
3637
virtualenvs-create: true
3738
virtualenvs-in-project: true
3839
installer-parallel: true
@@ -49,14 +50,62 @@ jobs:
4950
#----------------------------------------------
5051
# install dependencies if cache does not exist
5152
#----------------------------------------------
53+
- name: Install Kerberos system dependencies
54+
run: |
55+
sudo apt-get update
56+
sudo apt-get install -y libkrb5-dev
5257
- name: Install dependencies
5358
run: poetry install --no-interaction --all-extras
5459
#----------------------------------------------
5560
# run test suite
5661
#----------------------------------------------
57-
- name: Run e2e tests (excluding daily-only tests)
62+
- name: Run non-telemetry e2e tests
5863
run: |
59-
# Exclude telemetry E2E tests from PR runs (run daily instead)
64+
# Exclude all telemetry tests - they run in separate job for isolation
6065
poetry run python -m pytest tests/e2e \
6166
--ignore=tests/e2e/test_telemetry_e2e.py \
62-
-n auto
67+
--ignore=tests/e2e/test_concurrent_telemetry.py \
68+
-n auto
69+
70+
run-telemetry-tests:
71+
runs-on: ubuntu-latest
72+
needs: run-non-telemetry-tests # Run after non-telemetry tests complete
73+
environment: azure-prod
74+
env:
75+
DATABRICKS_SERVER_HOSTNAME: ${{ secrets.DATABRICKS_HOST }}
76+
DATABRICKS_HTTP_PATH: ${{ secrets.TEST_PECO_WAREHOUSE_HTTP_PATH }}
77+
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
78+
DATABRICKS_CATALOG: peco
79+
DATABRICKS_USER: ${{ secrets.TEST_PECO_SP_ID }}
80+
steps:
81+
- name: Check out repository
82+
uses: actions/checkout@v4
83+
- name: Set up python
84+
id: setup-python
85+
uses: actions/setup-python@v5
86+
with:
87+
python-version: "3.10"
88+
- name: Install system dependencies
89+
run: |
90+
sudo apt-get update
91+
sudo apt-get install -y libkrb5-dev
92+
- name: Install Poetry
93+
uses: snok/install-poetry@v1
94+
with:
95+
virtualenvs-create: true
96+
virtualenvs-in-project: true
97+
installer-parallel: true
98+
- name: Load cached venv
99+
id: cached-poetry-dependencies
100+
uses: actions/cache@v4
101+
with:
102+
path: .venv
103+
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }}
104+
- name: Install dependencies
105+
run: poetry install --no-interaction --all-extras
106+
- name: Run telemetry tests in isolation
107+
run: |
108+
# Run test_concurrent_telemetry.py in isolation with complete process separation
109+
# Use --dist=loadgroup to respect @pytest.mark.xdist_group markers
110+
poetry run python -m pytest tests/e2e/test_concurrent_telemetry.py \
111+
-n auto --dist=loadgroup -v

.github/workflows/publish-manual.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,19 @@ jobs:
3131
- name: Install Poetry
3232
uses: snok/install-poetry@v1 # Install Poetry, the Python package manager
3333
with:
34+
version: "2.2.1"
3435
virtualenvs-create: true
3536
virtualenvs-in-project: true
3637
installer-parallel: true
3738

39+
#----------------------------------------------
40+
# Step 3.5: Install Kerberos system dependencies
41+
#----------------------------------------------
42+
- name: Install Kerberos system dependencies
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install -y libkrb5-dev
46+
3847
# #----------------------------------------------
3948
# # Step 4: Load cached virtual environment (if available)
4049
# #----------------------------------------------

.github/workflows/publish-test.yml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ jobs:
1414
id: setup-python
1515
uses: actions/setup-python@v5
1616
with:
17-
python-version: 3.9
17+
python-version: "3.10"
1818
#----------------------------------------------
1919
# ----- install & configure poetry -----
2020
#----------------------------------------------
2121
- name: Install Poetry
2222
uses: snok/install-poetry@v1
2323
with:
24+
version: "2.2.1"
2425
virtualenvs-create: true
2526
virtualenvs-in-project: true
2627
installer-parallel: true
@@ -36,6 +37,10 @@ jobs:
3637
#----------------------------------------------
3738
# install dependencies if cache does not exist
3839
#----------------------------------------------
40+
- name: Install Kerberos system dependencies
41+
run: |
42+
sudo apt-get update
43+
sudo apt-get install -y libkrb5-dev
3944
- name: Install dependencies
4045
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
4146
run: poetry install --no-interaction --no-root
@@ -54,11 +59,17 @@ jobs:
5459
- name: Update pyproject.toml
5560
run: poetry version ${{ steps.version.outputs.major-version }}.${{ steps.version.outputs.minor-version }}.dev$(date +%s)
5661
#----------------------------------------------
62+
# Build the package (before publish action)
63+
#----------------------------------------------
64+
- name: Build package
65+
run: poetry build
66+
#----------------------------------------------
67+
# Configure test-pypi repository
68+
#----------------------------------------------
69+
- name: Configure test-pypi repository
70+
run: poetry config repositories.testpypi https://test.pypi.org/legacy/
71+
#----------------------------------------------
5772
# Attempt push to test-pypi
5873
#----------------------------------------------
59-
- name: Build and publish to pypi
60-
uses: JRubics/poetry-publish@v1.10
61-
with:
62-
pypi_token: ${{ secrets.TEST_PYPI_TOKEN }}
63-
repository_name: "testpypi"
64-
repository_url: "https://test.pypi.org/legacy/"
74+
- name: Publish to test-pypi
75+
run: poetry publish --username __token__ --password ${{ secrets.TEST_PYPI_TOKEN }} --repository testpypi

.github/workflows/publish.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
- name: Install Poetry
2424
uses: snok/install-poetry@v1
2525
with:
26+
version: "2.2.1"
2627
virtualenvs-create: true
2728
virtualenvs-in-project: true
2829
installer-parallel: true
@@ -38,6 +39,10 @@ jobs:
3839
#----------------------------------------------
3940
# install dependencies if cache does not exist
4041
#----------------------------------------------
42+
- name: Install Kerberos system dependencies
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install -y libkrb5-dev
4146
- name: Install dependencies
4247
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
4348
run: poetry install --no-interaction --no-root
@@ -56,9 +61,12 @@ jobs:
5661
- name: Update pyproject.toml
5762
run: poetry version ${{ steps.version.outputs.current-version }}
5863
#----------------------------------------------
59-
# Attempt push to test-pypi
64+
# Build the package (before publish)
6065
#----------------------------------------------
61-
- name: Build and publish to pypi
62-
uses: JRubics/poetry-publish@v1.10
63-
with:
64-
pypi_token: ${{ secrets.PROD_PYPI_TOKEN }}
66+
- name: Build package
67+
run: poetry build
68+
#----------------------------------------------
69+
# Publish to pypi
70+
#----------------------------------------------
71+
- name: Publish to pypi
72+
run: poetry publish --username __token__ --password ${{ secrets.PROD_PYPI_TOKEN }}

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release History
22

3+
# 4.2.5 (2026-02-09)
4+
- Fix feature-flag endpoint retries in gov region (databricks/databricks-sql-python#735 by @samikshya-db)
5+
- Improve telemetry lifecycle management (databricks/databricks-sql-python#734 by @msrathore-db)
6+
37
# 4.2.4 (2026-01-07)
48
- Fixed the exception handler close() on _TelemetryClientHolder (databricks/databricks-sql-python#723 by @msrathore-db)
59
- Created util method to normalise http protocol in http path (databricks/databricks-sql-python#724 by @nikhilsuri-db)

0 commit comments

Comments
 (0)