Skip to content

Conversation

@bewithgaurav
Copy link
Collaborator

@bewithgaurav bewithgaurav commented Aug 5, 2025

Work Item / Issue Reference

AB#38107

GitHub Issue: #<ISSUE_NUMBER>


Summary

This pull request introduces improvements to platform detection for Linux builds in setup.py and enhances the performance testing of connection pooling in the test suite. The most significant changes are grouped below:

Platform detection improvements (build system):

  • Updated get_platform_info() in setup.py to distinguish between musl and glibc-based Linux systems, returning musllinux tags for musl-based systems and manylinux_2_28 for glibc, improving compatibility with various Linux distributions.

Testing enhancements (connection pooling):

  • Refactored the connection pooling speed test in tests/test_003_connection.py to use more iterations, median timing (for robustness against outliers), and a stricter threshold for performance improvement, ensuring that pooling provides a measurable benefit.
  • Improved test reliability by adding a warm-up phase to eliminate cold start effects before timing connection operations.

Copilot AI review requested due to automatic review settings August 5, 2025 18:58
@github-actions github-actions bot added the pr-size: large Substantial code update label Aug 5, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements Alpine Linux support for the mssql-python package by adding Alpine-specific builds to the CI/CD pipeline and resolving circular import issues that occurred on Alpine's musl-based system.

Key changes:

  • Replaced Python-based driver path resolution with a C++-only implementation to fix circular imports on Alpine
  • Added Alpine Linux support to both PR validation and wheel build pipelines for x86_64 and ARM64 architectures
  • Removed Python helper functions that were causing the circular import issues

Reviewed Changes

Copilot reviewed 7 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
mssql_python/pybind/ddbc_bindings.cpp Replaces Python driver path resolution with C++ implementation to fix circular imports
tests/test_000_dependencies.py Updates tests to use new C++ function and adds Alpine distro detection
mssql_python/helpers.py Removes Python helper functions that caused circular imports
eng/pipelines/pr-validation-pipeline.yml Adds Alpine x86_64 and ARM64 test jobs to PR validation
eng/pipelines/build-whl-pipeline.yml Adds Alpine support to wheel building pipeline
License files Adds Microsoft ODBC driver license files for Alpine distribution

@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 5, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 6, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 6, 2025
sumitmsft
sumitmsft previously approved these changes Aug 6, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@bewithgaurav bewithgaurav changed the title FEAT: Build Alpine FEAT: Build Alpine & Revamp Build Pipeline Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@bewithgaurav bewithgaurav changed the title FEAT: Build Alpine & Revamp Build Pipeline FEAT: Revamp Build Pipeline to include Alpine Builds and Few test corrections Aug 12, 2025
@github-actions github-actions bot added pr-size: large Substantial code update and removed pr-size: large Substantial code update labels Aug 12, 2025
@bewithgaurav bewithgaurav merged commit 67892d5 into main Aug 12, 2025
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-size: large Substantial code update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants