Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
5a3f83e
Use urllib3 for thrift transport + reuse http connections (#131)
Jun 7, 2023
9ef50e8
Default socket timeout to 15 min (#137)
mattdeekay Jun 7, 2023
dfabbdd
Bump version to 2.6.0 (#139)
Jun 7, 2023
3d359bc
Fix: some thrift RPCs failed with BadStatusLine (#141)
Jun 8, 2023
5379803
Bump version to 2.6.1 (#142)
Jun 8, 2023
8698039
[ES-706907] Retry GetOperationStatus for http errors (#145)
Jun 14, 2023
bbe539e
Bump version to 2.6.2 (#147)
Jun 14, 2023
54e3769
[PECO-626] Support OAuth flow for Databricks Azure (#86)
jackyhu-db Jun 20, 2023
7fcfa7b
Use a separate logger for unsafe thrift responses (#153)
Jun 23, 2023
fecfa88
Improve e2e test development ergonomics (#155)
Jun 23, 2023
8d70f6c
Don't raise exception when closing a stale Thrift session (#159)
Jun 26, 2023
c351b57
Bump to version 2.7.0 (#161)
Jun 26, 2023
64be9bc
Cloud Fetch download handler (#127)
mattdeekay Jun 27, 2023
01b7a8d
Cloud Fetch download manager (#146)
mattdeekay Jul 3, 2023
5a34a4a
Cloud fetch queue and integration (#151)
mattdeekay Jul 5, 2023
759401c
Cloud Fetch e2e tests (#154)
mattdeekay Jul 7, 2023
0e5c244
Update changelog for cloudfetch (#172)
mattdeekay Jul 10, 2023
f45280d
Improve sqlalchemy backward compatibility with 1.3.24 (#173)
Jul 11, 2023
7382631
OAuth: don't override auth headers with contents of .netrc file (#122)
Jul 12, 2023
1965df5
Fix proxy connection pool creation (#158)
sebbegg Jul 12, 2023
d7f76e4
Relax pandas dependency constraint to allow ^2.0.0 (#164)
itsdani Jul 12, 2023
207dd7c
Use hex string version of operation ID instead of bytes (#170)
Jul 12, 2023
22e5aaa
SQLAlchemy: fix has_table so it honours schema= argument (#174)
Jul 12, 2023
1eef432
Fix socket timeout test (#144)
mattdeekay Jul 12, 2023
ec58144
Disable non_native_boolean_check_constraint (#120)
bkyryliuk Jul 12, 2023
728d33a
Remove unused import for SQLAlchemy 2 compatibility (#128)
WilliamGentry Jul 12, 2023
6a1d3b5
Bump version to 2.8.0 (#178)
Jul 21, 2023
b894605
Fix typo in python README quick start example (#186)
dbarrundia-tiger Aug 9, 2023
00a3928
Configure autospec for mocked Client objects (#188)
Aug 9, 2023
019acd8
Use urllib3 for retries (#182)
Aug 9, 2023
af1aae7
Bump version to 2.9.0 (#189)
Aug 10, 2023
0d99fc7
Explicitly add urllib3 dependency (#191)
jacobus-herman Aug 10, 2023
7aaa014
Bump to 2.9.1 (#195)
Aug 11, 2023
d28a692
Make backwards compatible with urllib3~=1.0 (#197)
Aug 16, 2023
871294e
Convenience improvements to v3 retry logic (#199)
Aug 17, 2023
54a6102
Bump version to 2.9.2 (#201)
Aug 18, 2023
a072574
Github Actions Fix: poetry install fails for python 3.7 tests (#208)
Aug 24, 2023
a918f13
Make backwards compatible with urllib3~=1.0 [Follow up #197] (#206)
Aug 24, 2023
a737ef3
Bump version to 2.9.3 (#209)
Aug 24, 2023
686df3e
Add note to sqlalchemy example: IDENTITY isn't supported yet (#212)
Aug 31, 2023
5ba4438
[PECO-1029] Updated thrift compiler version (#216)
nithinkdb Sep 9, 2023
dcfa358
[PECO-1055] Updated thrift defs to allow Tsparkparameters (#220)
nithinkdb Sep 11, 2023
e748ae8
Update changelog to indicate that 2.9.1 and 2.9.2 have been yanked. (…
Sep 13, 2023
f21d17e
Fix changelog typo: _enable_v3_retries (#225)
Sep 18, 2023
8211337
Introduce SQLAlchemy reusable dialog tests (#125)
unj1m Sep 20, 2023
776f34b
[PECO-1026] Add Parameterized Query support to Python (#217)
nithinkdb Sep 22, 2023
fcc262f
Parameterized queries: Add e2e tests for inference (#227)
Sep 25, 2023
1239bff
[PECO-1109] Parameterized Query: add suport for inferring decimal typ…
Sep 26, 2023
7c72cf4
SQLAlchemy 2: reorganise dialect files into a single directory (#231)
Sep 26, 2023
241e934
[PECO-1083] Updated thrift files and added check for protocol version…
nithinkdb Sep 29, 2023
13cb417
[PECO-840] Port staging ingestion behaviour to new UC Volumes (#235)
Sep 30, 2023
e064e25
Query parameters: implement support for binding NoneType parameters (…
Sep 30, 2023
1594261
SQLAlchemy 2: Bump dependency version and update e2e tests for existi…
Oct 2, 2023
9afb215
Revert "[PECO-1083] Updated thrift files and added check for protocol…
Oct 2, 2023
74f4126
SQLAlchemy 2: add type compilation for all CamelCase types (#238)
Oct 2, 2023
efc0337
SQLAlchemy 2: add type compilation for uppercase types (#240)
Oct 2, 2023
910bb5c
SQLAlchemy 2: Stop skipping all type tests (#242)
Oct 10, 2023
317a471
[PECO-1134] v3 Retries: allow users to bound the number of redirects …
Oct 10, 2023
58ecda3
Parameters: Add type inference for BIGINT and TINYINT types (#246)
Oct 11, 2023
ef72d74
SQLAlchemy 2: Stop skipping some non-type tests (#247)
Oct 13, 2023
f0980ee
SQLAlchemy 2: implement and refactor schema reflection methods (#249)
Oct 13, 2023
51edbc4
Add GovCloud domain into AWS domains (#252)
jackyhu-db Oct 17, 2023
2d4e39b
SQLAlchemy 2: Refactor __init__.py into base.py (#250)
Oct 18, 2023
873c570
SQLAlchemy 2: Finish implementing all of ComponentReflectionTest (#251)
Oct 18, 2023
62d11e4
SQLAlchemy 2: Finish marking all tests in the suite (#253)
Oct 18, 2023
411b16b
SQLAlchemy 2: Finish organising compliance test suite (#256)
Oct 23, 2023
b2b2d2a
SQLAlchemy 2: Fix failing mypy checks from development (#257)
Oct 23, 2023
61e43c0
Enable cloud fetch by default (#258)
Oct 25, 2023
9b48cd4
[PECO-1137] Reintroduce protocol checking to Python test fw (#248)
nithinkdb Oct 25, 2023
6317af3
sqla2 clean-up: make sqlalchemy optional and don't mangle the user-ag…
Oct 28, 2023
0b97948
SQLAlchemy 2: Add support for TINYINT (#265)
Oct 31, 2023
64cc8cf
Add OAuth M2M example (#266)
jackyhu-db Oct 31, 2023
2d58e5b
Native Parameters: reintroduce INLINE approach with tests (#267)
Nov 1, 2023
abe6891
Document behaviour of executemany (#213)
martinitus Nov 1, 2023
1f4714b
SQLAlchemy 2: Expose TIMESTAMP and TIMESTAMP_NTZ types to users (#268)
Nov 1, 2023
c425c4a
Drop Python 3.7 as a supported version (#270)
Nov 1, 2023
0e7ce57
GH Workflows: remove Python 3.7 from the matrix for _all_ workflows (…
Nov 9, 2023
9a532c2
Add README and updated example for SQLAlchemy usage (#273)
Nov 16, 2023
64924a6
Rewrite native parameter implementation with docs and tests (#281)
Nov 16, 2023
5ed45f5
Enable v3 retries by default (#282)
Nov 17, 2023
5feadbe
security: bump pyarrow dependency to 14.0.1 (#284)
Nov 17, 2023
c3fdc2f
Bump package version to 3.0.0 (#285)
Nov 17, 2023
a1bb6f9
Fix docstring about default parameter approach (#287)
Falydoor Nov 21, 2023
aaaf047
[PECO-1286] Add tests for complex types in query results (#293)
Nov 29, 2023
c730648
sqlalchemy: fix deprecation warning for dbapi classmethod (#294)
Nov 29, 2023
2a68448
[PECO-1297] sqlalchemy: fix: can't read columns for tables containing…
Nov 30, 2023
62eb1d4
Prepared 3.0.1 release (#297)
Dec 1, 2023
3f6834c
Make contents of `__init__.py` equal across projects (#304)
pietern Dec 26, 2023
918752f
Fix URI construction in ThriftBackend (#303)
NodeJSmith Jan 23, 2024
7ecddea
[sqlalchemy] Add table and column comment support (#329)
Jan 25, 2024
4bb3c9e
Pin pandas and urllib3 versions to fix runtime issues in dbt-databric…
benc-db Jan 25, 2024
c71e081
SQLAlchemy: TINYINT types didn't reflect properly (#315)
TimTheinAtTabs Jan 25, 2024
e3cd361
[PECO-1435] Restore `tests.py` to the test suite (#331)
Jan 26, 2024
faf13a4
Bump to version 3.0.2 (#335)
Jan 26, 2024
0552990
Update some outdated OAuth comments (#339)
jackyhu-db Jan 30, 2024
11ffb7c
Redact the URL query parameters from the urllib3.connectionpool logs …
mkazia-db Feb 2, 2024
5a06ccd
Bump to version 3.0.3 (#344)
jackyhu-db Feb 2, 2024
1b469c0
[PECO-1411] Support Databricks OAuth on GCP (#338)
jackyhu-db Feb 5, 2024
8319854
[PECO-1414] Support Databricks native OAuth in Azure (#351)
jackyhu-db Feb 13, 2024
60934b2
Prep for Test Automation (#352)
benc-db Feb 14, 2024
e594eb1
Update code owners (#345)
yunbodeng-db Feb 14, 2024
2977f70
Reverting retry behavior on 429s/503s to how it worked in 2.9.3 (#349)
benc-db Feb 15, 2024
5048934
Bump to version 3.1.0 (#358)
jackyhu-db Feb 16, 2024
f6fd7a7
[PECO-1440] Expose current query id on cursor object (#364)
kravets-levko Mar 4, 2024
f85e903
Add a default for retry after (#371)
benc-db Mar 14, 2024
c103352
Fix boolean literals (#357)
aholyoke Mar 14, 2024
1d4da9a
Don't retry network requests that fail with code 403 (#373)
Mar 15, 2024
64c71fb
Bump to 3.1.1 (#374)
benc-db Mar 19, 2024
7fade51
Fix cookie setting (#379)
benc-db Mar 27, 2024
6e0fb78
Fixing a couple type problems: how I would address most of #381 (#382)
wyattscarpenter Apr 2, 2024
5636b8f
fix the return types of the classes' __enter__ functions (#384)
wyattscarpenter Apr 2, 2024
34fdff3
Add Kravets Levko to codeowners (#386)
kravets-levko Apr 15, 2024
1b145aa
Prepare for 3.1.2 (#387)
benc-db Apr 18, 2024
d63b71b
Update the proxy authentication (#354)
amir-haroun May 23, 2024
a6e9b11
Fix failing tests (#392)
kravets-levko May 28, 2024
6949aba
Relax `pyarrow` pin (#389)
dhirschfeld May 29, 2024
a6212b6
Fix log error in oauth.py (#269)
susodapop May 29, 2024
c4e8103
Enable `delta.feature.allowColumnDefaults` for all tables (#343)
dhirschfeld May 30, 2024
6c16b70
Fix SQLAlchemy tests (#393)
kravets-levko May 30, 2024
1e6c2e9
Add more debug logging for CloudFetch (#395)
kravets-levko Jun 6, 2024
7ff6093
Update Thrift package (#397)
m1n0 Jun 12, 2024
a5b1ab0
Prepare release 3.2.0 (#396)
kravets-levko Jun 13, 2024
f53aa37
move py.typed to correct places (#403)
wyattscarpenter Jul 2, 2024
93e207e
Upgrade mypy (#406)
wyattscarpenter Jul 3, 2024
5d869d0
Do not retry failing requests with status code 401 (#408)
Hodnebo Jul 3, 2024
9f9e96d
[PECO-1715] Remove username/password (BasicAuth) auth option (#409)
jackyhu-db Jul 4, 2024
185ff3c
[PECO-1751] Refactor CloudFetch downloader: handle files sequentially…
kravets-levko Jul 11, 2024
134b21d
Fix CloudFetch retry policy to be compatible with all `urllib3` versi…
kravets-levko Jul 11, 2024
dbf183b
Disable SSL verification for CloudFetch links (#414)
kravets-levko Jul 16, 2024
b438c38
Prepare relese 3.3.0 (#415)
kravets-levko Jul 17, 2024
8bbcd3e
Fix pandas 2.2.2 support (#416)
kfollesdal Jul 26, 2024
2d2b3c1
[PECO-1801] Make OAuth as the default authenticator if no authenticat…
jackyhu-db Aug 1, 2024
1f8cf73
[PECO-1857] Use SSL options with HTTPS connection pool (#425)
kravets-levko Aug 22, 2024
d31063c
Prepare release v3.4.0 (#430)
kravets-levko Aug 27, 2024
a151df2
[PECO-1926] Create a non pyarrow flow to handle small results for the…
jprakash-db Oct 3, 2024
08f14a0
[PECO-1961] On non-retryable error, ensure PySQL includes useful info…
shivam2680 Oct 3, 2024
97c815e
Reformatted all the files using black (#448)
jprakash-db Oct 3, 2024
55105fe
Prepare release v3.5.0 (#457)
jackyhu-db Oct 18, 2024
d3cb62c
[PECO-2051] Add custom auth headers into cloud fetch request (#460)
jackyhu-db Oct 25, 2024
ecdddba
Prepare release 3.6.0 (#461)
jackyhu-db Oct 25, 2024
43fa964
[ PECO - 1768 ] PySQL: adjust HTTP retry logic to align with Go and N…
jprakash-db Nov 20, 2024
328aeb5
[ PECO-2065 ] Create the async execution flow for the PySQL Connector…
jprakash-db Nov 26, 2024
980af88
Fix for check_types github action failing (#472)
jprakash-db Nov 26, 2024
d690516
Remove upper caps on dependencies (#452)
arredond Dec 5, 2024
680b3b6
Updated the doc to specify native parameters in PUT operation is not …
jprakash-db Dec 6, 2024
ab4b73b
Incorrect rows in inline fetch result (#479)
jprakash-db Dec 22, 2024
f9d6ef1
Bumped up to version 3.7.0 (#482)
jprakash-db Dec 23, 2024
01e998c
PySQL Connector split into connector and sqlalchemy (#444)
jprakash-db Dec 27, 2024
b6433fc
Removed CI CD for python3.8 (#490)
jprakash-db Jan 17, 2025
1d3d8d7
Added CI CD upto python 3.12 (#491)
jprakash-db Jan 18, 2025
cfdcab7
Merging changes from v3.7.1 release (#488)
jprakash-db Jan 18, 2025
3d0db70
Bumped up to version 4.0.0 (#493)
jprakash-db Jan 22, 2025
e3c79fc
Updated action's version (#455)
newwingbird Feb 27, 2025
e11fa91
Support Python 3.13 and update deps (#510)
dhirschfeld Feb 27, 2025
2ab9a5f
Improve debugging + fix PR review template (#514)
samikshya-db Mar 2, 2025
5148b07
Forward porting all changes into 4.x.x. uptil v3.7.3 (#529)
jprakash-db Mar 7, 2025
041cb59
Updated the actions/cache version (#532)
jprakash-db Mar 7, 2025
fbaa451
Updated the CODEOWNERS (#531)
jprakash-db Mar 7, 2025
e716136
Add version check for urllib3 in backoff calculation (#526)
shivam2680 Mar 11, 2025
403d69f
[ES-1372353] make user_agent_header part of public API (#530)
shivam2680 Mar 12, 2025
0657c4f
Updates runner used to run DCO check to use databricks-protected-runn…
madhav-db Mar 12, 2025
83550c8
Support multiple timestamp formats in non arrow flow (#533)
jprakash-db Mar 18, 2025
c399c1c
prepare release for v4.0.1 (#534)
shivam2680 Mar 19, 2025
c001c28
Relaxed bound for python-dateutil (#538)
jprakash-db Apr 1, 2025
a7cbde1
Bumped up the version for 4.0.2 (#539)
jprakash-db Apr 1, 2025
f9b7f43
Added example for async execute query (#537)
jprakash-db Apr 1, 2025
6206df4
Added urllib3 version check (#547)
jprakash-db Apr 21, 2025
d45910d
Bump version to 4.0.3 (#549)
jprakash-db Apr 22, 2025
bdb5154
Cleanup fields as they might be deprecated/removed/change in the futu…
vikrantpuppala May 9, 2025
3463b12
Refactor decimal conversion in PyArrow tables to use direct casting (…
jayantsing-db May 12, 2025
7b51c6e
[PECOBLR-361] convert column table to arrow if arrow present (#551)
shivam2680 May 16, 2025
f9936d7
Update CODEOWNERS (#562)
jprakash-db May 21, 2025
edfb283
Enhance Cursor close handling and context manager exception managemen…
madhav-db May 21, 2025
48746d1
PECOBLR-86 improve logging on python driver (#556)
saishreeeee May 22, 2025
eaa542d
Update github actions run conditions (#569)
jprakash-db May 26, 2025
0947b9a
New Complex type test table + Github Action changes (#575)
jprakash-db May 28, 2025
3842583
fix `test_closing_connection_closes_commands` (#584)
varun-edachali-dbx Jun 10, 2025
ad2bb62
[PECOBLR-330] Support for complex params (#559)
jprakash-db Jun 16, 2025
0271b28
Bump version to 4.0.4 (#599)
jprakash-db Jun 16, 2025
c123af3
Updated the changelog format (#600)
jprakash-db Jun 16, 2025
8b841c7
Updated tests (#614)
jprakash-db Jun 24, 2025
4cebc36
Add test to check thrift field IDs (#602)
vikrantpuppala Jun 24, 2025
b3a6f55
Revert "Enhance Cursor close handling and context manager exception m…
madhav-db Jun 24, 2025
7696316
Bump version to 4.0.5 (#615)
madhav-db Jun 24, 2025
90f0ac1
Removed Codeowners (#623)
jprakash-db Jul 3, 2025
e50e86d
[PECOBLR-587] Azure Service Principal Credential Provider (#621)
jprakash-db Jul 9, 2025
9c34acd
Add optional telemetry support to the python connector (#628)
saishreeeee Jul 10, 2025
576eafc
Fix potential resource leak in `CloudFetchQueue` (#624)
varun-edachali-dbx Jul 11, 2025
ba1eab3
Generalise Backend Layer (#604)
varun-edachali-dbx Jul 15, 2025
e0ca049
Arrow performance optimizations (#638)
jprakash-db Jul 16, 2025
c6f4a27
Connection errors to unauthenticated telemetry endpoint (#619)
saishreeeee Jul 22, 2025
141a004
SEA: Execution Phase (#645)
varun-edachali-dbx Jul 23, 2025
71d306f
Add retry mechanism to telemetry requests (#617)
saishreeeee Jul 23, 2025
0a7a6ab
SEA: Fetch Phase (#650)
varun-edachali-dbx Jul 28, 2025
59d28b0
added logs for cloud fetch speed (#654)
shivam2680 Jul 28, 2025
a0d7cd1
Make telemetry batch size configurable and add time-based flush (#622)
saishreeeee Jul 31, 2025
e732e96
Normalise type code (#652)
varun-edachali-dbx Jul 31, 2025
fe8cd57
Testing for telemetry (#616)
saishreeeee Jul 31, 2025
2f8b1ab
Bug fixes in telemetry (#659)
saishreeeee Aug 1, 2025
aee6863
Telemetry server-side flag integration (#646)
saishreeeee Aug 1, 2025
3b0c882
Enhance SEA HTTP Client (#618)
varun-edachali-dbx Aug 4, 2025
36d3ec4
SEA: Allow large metadata responses (#653)
varun-edachali-dbx Aug 4, 2025
701f7f6
Added code coverage workflow to test the code coverage from unit and …
msrathore-db Aug 5, 2025
fd81c5a
Concat tables to be backward compatible (#647)
jprakash-db Aug 6, 2025
d3df719
Refactor codebase to use a unified http client (#673)
vikrantpuppala Aug 13, 2025
8e97878
[PECOBLR-727] Add kerberos support for proxy auth (#675)
vikrantpuppala Aug 18, 2025
2f982bc
Update for 4.1.0 (#676)
vikrantpuppala Aug 18, 2025
87fed36
Add documentation for proxy support (#680)
vikrantpuppala Aug 20, 2025
6e0f5ff
Fix compatibility with urllib3<2 and add CI actions to improve depend…
vikrantpuppala Aug 20, 2025
e2a972e
Ready for 4.1.1 release (#682)
vikrantpuppala Aug 21, 2025
9e67c79
streaming ingestion support for PUT operation (#643)
sreekanth-db Aug 21, 2025
097a2c5
Removed use_threads argument on concat_tables for compatibility with …
jprakash-db Aug 22, 2025
d9d070c
Ready for 4.1.2 release (#685)
vikrantpuppala Aug 22, 2025
415fb53
Increased the limit for long running query (#686)
jprakash-db Aug 22, 2025
048fae1
[PECOBLR-201] add variant support (#560)
shivam2680 Aug 22, 2025
bcab1df
query tags integration (#663)
sreekanth-db Aug 25, 2025
07c541b
Ready for 4.1.3 (#693)
sreekanth-db Sep 17, 2025
54dd646
[PECOBLR-681] added new session conf to enable metric view metadata (…
shivam2680 Sep 25, 2025
f835aca
Add Token Federation Support for Databricks SQL Python Driver (#691)
madhav-db Sep 26, 2025
30286ad
Release version to 4.1.4 (#699)
madhav-db Oct 15, 2025
fd65fd2
Added a workflow to parallelise the E2E tests(#697)
msrathore-db Oct 24, 2025
3b37dd2
Bring Python telemetry event model consistent with JDBC (#701)
nikhilsuri-db Nov 10, 2025
f9f5fc6
feat: Add multi-statement transaction support (#704)
jayantsing-db Nov 13, 2025
cca421b
Bump to version 4.2.0 (#707)
jayantsing-db Nov 14, 2025
a4899cb
Add ignore_transactions config to disable transaction operations (#711)
jayantsing-db Nov 20, 2025
ad227ca
Ready for 4.2.1 release (#713)
vikrantpuppala Nov 20, 2025
b8494ff
Change default use_hybrid_disposition to False (#714)
samikshya-db Nov 21, 2025
73580fe
Circuit breaker changes using pybreaker (#705)
nikhilsuri-db Nov 26, 2025
8d5e155
perf: Optimize telemetry latency logging to reduce overhead (#715)
samikshya-db Nov 27, 2025
d524f0e
basic e2e test for force telemetry verification (#708)
nikhilsuri-db Nov 28, 2025
ebe4b07
feat: Implement host-level telemetry batching to reduce rate limiting…
samikshya-db Dec 3, 2025
d2ae1e8
Prepare for a release with telemetry on by default (#717)
samikshya-db Dec 4, 2025
7c6adee
added pandas < 2.4.0 support and tests for py 3.14 (#720)
sreekanth-db Dec 11, 2025
f7822fd
pandas 2.3.3 support for py < 3.14 (#721)
sreekanth-db Dec 18, 2025
ce55e7b
New minor release (#722)
samikshya-db Dec 18, 2025
9b4e577
Fixed the exception handler close() on _TelemetryClientHolder (#723)
msrathore-db Jan 1, 2026
946a265
created util method to normalise http protocol in http path (#724)
nikhilsuri-db Jan 5, 2026
03eb369
New minor version release 4.2.4 (#725)
samikshya-db Jan 8, 2026
4b7df5b
[PECOBLR-1168] query tags telemetry (#716)
sreekanth-db Jan 9, 2026
cafed60
[ES-1717039] Fix 60 seconds delay in gov cloud connections + Fix PR c…
samikshya-db Feb 5, 2026
61f8029
[PECOBLR-1735] Fix #729 and #731: Telemetry lifecycle management (#734)
msrathore-db Feb 6, 2026
9fe7356
Bump to version 4.2.5 (#737)
jayantsing-db Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .github/CODEOWNERS

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- We welcome contributions. All patches must include a sign-off. Please see CONTRIBUTING.md for details -->


## What type of PR is this?
## What type of PR is this?
<!-- Check all that apply, delete what doesn't apply. -->

- [ ] Refactor
Expand All @@ -13,8 +13,8 @@

## How is this tested?

- [ ] Unit tests
- [ ] E2E Tests
- [ ] Unit tests
- [ ] E2E Tests
- [ ] Manually
- [ ] N/A

Expand Down
163 changes: 163 additions & 0 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
name: Code Coverage

permissions:
contents: read

on: [pull_request, workflow_dispatch]

jobs:
test-with-coverage:
runs-on: ubuntu-latest
environment: azure-prod
env:
DATABRICKS_SERVER_HOSTNAME: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_HTTP_PATH: ${{ secrets.TEST_PECO_WAREHOUSE_HTTP_PATH }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
DATABRICKS_CATALOG: peco
DATABRICKS_USER: ${{ secrets.TEST_PECO_SP_ID }}
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
- name: Set up python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: "3.10"
#----------------------------------------------
# ----- install system dependencies -----
#----------------------------------------------
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libkrb5-dev
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: "2.2.1"
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true

#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#----------------------------------------------
# install your root project, if required
#----------------------------------------------
- name: Install Kerberos system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libkrb5-dev
- name: Install library
run: poetry install --no-interaction --all-extras
#----------------------------------------------
# run parallel tests with coverage
#----------------------------------------------
- name: Run parallel tests with coverage
continue-on-error: false
run: |
poetry run pytest tests/unit tests/e2e \
-m "not serial" \
-n auto \
--cov=src \
--cov-report=xml \
--cov-report=term \
-v

#----------------------------------------------
# run telemetry tests with coverage (isolated)
#----------------------------------------------
- name: Run telemetry tests with coverage (isolated)
continue-on-error: false
run: |
# Run test_concurrent_telemetry.py separately for isolation
poetry run pytest tests/e2e/test_concurrent_telemetry.py \
--cov=src \
--cov-append \
--cov-report=xml \
--cov-report=term \
-v

#----------------------------------------------
# check for coverage override
#----------------------------------------------
- name: Check for coverage override
id: override
run: |
OVERRIDE_COMMENT=$(echo "${{ github.event.pull_request.body }}" | grep -E "SKIP_COVERAGE_CHECK\s*=" || echo "")
if [ -n "$OVERRIDE_COMMENT" ]; then
echo "override=true" >> $GITHUB_OUTPUT
REASON=$(echo "$OVERRIDE_COMMENT" | sed -E 's/.*SKIP_COVERAGE_CHECK\s*=\s*(.+)/\1/')
echo "reason=$REASON" >> $GITHUB_OUTPUT
echo "Coverage override found in PR description: $REASON"
else
echo "override=false" >> $GITHUB_OUTPUT
echo "No coverage override found"
fi
#----------------------------------------------
# check coverage percentage
#----------------------------------------------
- name: Check coverage percentage
if: steps.override.outputs.override == 'false'
run: |
COVERAGE_FILE="coverage.xml"
if [ ! -f "$COVERAGE_FILE" ]; then
echo "ERROR: Coverage file not found at $COVERAGE_FILE"
exit 1
fi

# Install xmllint if not available
if ! command -v xmllint &> /dev/null; then
sudo apt-get update && sudo apt-get install -y libxml2-utils
fi

COVERED=$(xmllint --xpath "string(//coverage/@lines-covered)" "$COVERAGE_FILE")
TOTAL=$(xmllint --xpath "string(//coverage/@lines-valid)" "$COVERAGE_FILE")
PERCENTAGE=$(python3 -c "covered=${COVERED}; total=${TOTAL}; print(round((covered/total)*100, 2))")

echo "Branch Coverage: $PERCENTAGE%"
echo "Required Coverage: 85%"

# Use Python to compare the coverage with 85
python3 -c "import sys; sys.exit(0 if float('$PERCENTAGE') >= 85 else 1)"
if [ $? -eq 1 ]; then
echo "ERROR: Coverage is $PERCENTAGE%, which is less than the required 85%"
exit 1
else
echo "SUCCESS: Coverage is $PERCENTAGE%, which meets the required 85%"
fi

#----------------------------------------------
# coverage enforcement summary
#----------------------------------------------
- name: Coverage enforcement summary
run: |
if [ "${{ steps.override.outputs.override }}" == "true" ]; then
echo "⚠️ Coverage checks bypassed: ${{ steps.override.outputs.reason }}"
echo "Please ensure this override is justified and temporary"
else
echo "✅ Coverage checks enforced - minimum 85% required"
fi

Loading