-
Notifications
You must be signed in to change notification settings - Fork 28
FEAT: Revamp Build Pipeline to include Alpine Builds and Few test corrections #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
There was a problem hiding this 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 |
… bewithgaurav/alpine_build
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.