FEAT: Revamp Build Pipeline to include Alpine Builds and Few test corrections#170
Merged
bewithgaurav merged 97 commits intomainfrom Aug 12, 2025
Merged
FEAT: Revamp Build Pipeline to include Alpine Builds and Few test corrections#170bewithgaurav merged 97 commits intomainfrom
bewithgaurav merged 97 commits intomainfrom
Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…b.com/microsoft/mssql-python into bewithgaurav/refactor_get_driver_path
… bewithgaurav/alpine
Contributor
There was a problem hiding this comment.
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 |
… bewithgaurav/alpine_build
sumitmsft
previously approved these changes
Aug 6, 2025
gargsaumya
approved these changes
Aug 12, 2025
sumitmsft
approved these changes
Aug 12, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Work Item / Issue Reference
Summary
This pull request introduces improvements to platform detection for Linux builds in
setup.pyand enhances the performance testing of connection pooling in the test suite. The most significant changes are grouped below:Platform detection improvements (build system):
get_platform_info()insetup.pyto distinguish between musl and glibc-based Linux systems, returningmusllinuxtags for musl-based systems andmanylinux_2_28for glibc, improving compatibility with various Linux distributions.Testing enhancements (connection pooling):
tests/test_003_connection.pyto use more iterations, median timing (for robustness against outliers), and a stricter threshold for performance improvement, ensuring that pooling provides a measurable benefit.