FEAT: Download Windows Python ARM64 Libs from Nuget during Build#327
Merged
bewithgaurav merged 200 commits intomainfrom Nov 14, 2025
Merged
FEAT: Download Windows Python ARM64 Libs from Nuget during Build#327bewithgaurav merged 200 commits intomainfrom
bewithgaurav merged 200 commits intomainfrom
Conversation
Co-authored-by: David Engel <dengel1012@gmail.com>
Syncing Github main to ADO main Related work items: #38037
…rosoft/mssql-python into bewithgaurav/publish_symbols
…lse CredScan alerts #### AI description (iteration 1) #### PR Classification This pull request is a bug fix that resolves configuration issues for APIScan and BinSkim. #### PR Summary The changes ensure correct file paths for APIScan on Windows and add necessary parameters for BinSkim analysis in the build pipeline. - `OneBranchPipelines/variables/symbol-variables.yml`: Updated the API scan DLL and PDB paths to use backslashes for Windows compatibility. - `OneBranchPipelines/build-release-package-pipeline.yml`: Added parameters to configure BinSkim with the analyze target, recursion flag, and log file path. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
#### AI description (iteration 2) #### PR Classification This pull request fixes pipeline configuration issues by disabling BinSkim for Ubuntu and macOS builds. #### PR Summary The changes update pipeline YAML files to disable the BinSkim security tool where it is not applicable, adjust variable declaration formats, and refine configuration comments. - **`OneBranchPipelines/stages/build-linux-single-stage.yml`**: Reformats variable definitions and adds a template context to disable BinSkim for Linux with a clear justification. - **`OneBranchPipelines/stages/build-macos-single-stage.yml`**: Revises variable declarations and inserts a template context to disable BinSkim for macOS with an appropriate explanation. - **`OneBranchPipelines/build-release-package-pipeline.yml`**: Updates the APIScan section with modified comments and adds a justification for its disablement. - **`tests/test_006_exceptions.py`**: Contains merge conflict markers, indicating unresolved conflict sections that require attention. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #40398
… bewithgaurav/1ESPipelines
#### AI description (iteration 1) #### PR Classification This pull request is a code migration and cleanup effort that overhauls the logging framework across the repository. #### PR Summary The changes replace the legacy logging system (including the removed `logging_config.py`) with a new, unified logging module and logger bridge for both Python and C++ code, improving performance, consistency, and coverage reporting. - **`mssql_python/logging.py`**: Introduces a new logger module that defines logger APIs (debug/info/warning/error) and deprecates the old logging configuration. - **`mssql_python/pybind/logger_bridge.cpp` and `.hpp`**: Add a new logger bridge to efficiently propagate C++ log messages to the Python logging system. - **Core modules (e.g., connection, auth, pooling, cursor) and test files (e.g., tests for logging, performance, and integration)** have been updated to use the new logging API. - Several obsolete files, including `logging_config.py`, `.config/SDL_CONFIGURATION.md`, and `unix_buffers.h`, were removed to clean up the codebase. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #40479
…l-python/_git/mssql-python into bewithgaurav/use_nuget_for_py_arm_libs
…uring Build #### AI description (iteration 1) #### PR Classification This pull request is a code improvement and cleanup that overhauls the logging system and updates build and test configurations. #### PR Summary The changes replace the legacy logging configuration with a new, unified logging infrastructure based on a dedicated `mssql_python/logging.py` module and a C++ logger bridge (`pybind/logger_bridge.cpp`/`logger_bridge.hpp`), and the modules throughout the codebase (e.g. connection, cursor, pooling, exceptions) now use the new logging macros instead of the old `logging_config.py` approach. In addition, the build pipelines (in `build-windows-single-stage.yml`) have been updated to download Windows Python ARM64 libraries from NuGet and several new performance, stress, and integration tests have been added or updated. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #40402
…l-python/_git/mssql-python into bewithgaurav/use_nuget_for_py_arm_libs
jahnvi480
approved these changes
Nov 14, 2025
Contributor
There was a problem hiding this comment.
Pull Request Overview
This pull request modernizes the Windows ARM64 build process by replacing internal pipeline artifact downloads with direct NuGet package downloads for ARM64 Python libraries. This change improves build reliability by eliminating dependency on internal artifacts and leveraging publicly available NuGet packages.
Key changes:
- Replaced
DownloadPipelineArtifact@2task with a PowerShell script that downloads Python ARM64 NuGet packages - Added version mapping for Python 3.10-3.14 to their corresponding NuGet package versions
- Implemented validation to ensure required
.libfiles are present after extraction
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changesNo lines with coverage information in this diff. 📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.logger_bridge.cpp: 59.2%
mssql_python.helpers.py: 66.6%
mssql_python.row.py: 67.4%
mssql_python.pybind.ddbc_bindings.cpp: 70.4%
mssql_python.pybind.connection.connection.cpp: 76.3%
mssql_python.ddbc_bindings.py: 79.6%
mssql_python.pybind.connection.connection_pool.cpp: 79.6%
mssql_python.pybind.ddbc_bindings.h: 79.7%
mssql_python.connection.py: 82.5%
mssql_python.cursor.py: 83.6%🔗 Quick Links
|
sumitmsft
approved these changes
Nov 14, 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 updates the process for retrieving ARM64 Python libraries in the Windows build pipeline. Instead of downloading a pre-built pipeline artifact, it now downloads the appropriate Python ARM64 NuGet package, extracts the required
.libfiles, and validates their presence. This change makes the build process more self-contained and less dependent on internal artifacts.Build pipeline changes:
DownloadPipelineArtifact@2task with a PowerShell script that downloads the correct Python ARM64 NuGet package based on the specified Python version, extracts its contents, and copies the required.libfiles to the target directory..libfile is present and provides cleanup for temporary files and directories.Process improvement: