-
Notifications
You must be signed in to change notification settings - Fork 28
RELEASE: 0.14.0 #329
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
RELEASE: 0.14.0 #329
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
#### AI description (iteration 1) #### PR Classification This pull request fixes the build pipeline by updating the code signing step to list signed files in a platform-specific manner. #### PR Summary The update refines the YAML step to separate Windows and Linux/macOS file listing commands, ensuring proper output and compatibility for the Python Driver migration to 1ES. - `OneBranchPipelines/steps/compound-esrp-code-signing-step.yml`: Replaced a single script block with two conditional blocks that use cmd commands for Windows and bash for Linux/macOS. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #38066
#### AI description (iteration 1) #### PR Classification This PR fixes the build pipeline configuration by updating the code signing steps to sign only wheel files for official builds. #### PR Summary The changes update the build pipeline YAML files for Windows, Linux, and macOS to remove unnecessary binary signing steps and enforce signing of only wheel files. This streamlines the code signing process by: - Modifying `build-windows-single-stage.yml` to remove DLL-specific signing parameters. - Adjusting `build-linux-single-stage.yml` to omit non-wheel artifact signing and note that ELF files cannot be signed with Windows SignTool. - Updating `build-macos-single-stage.yml` to remove Mach-O/dylib signing, noting the correctness for PyPI wheel distribution. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #38066
Related work items: #38066
#### AI description (iteration 1) #### PR Classification This pull request fixes the release pipeline to ensure compliant and streamlined publishing of private symbols while migrating to 1ES for the Python driver. #### PR Summary The changes update the build pipeline to correctly set up and execute symbol publishing tasks fulfilling compliance requirements and build pipeline migration. - In `OneBranchPipelines/steps/symbol-publishing-step.yml`, the PowerShell task setting the AccountName was updated, the symbol upload wait time reduced, and an additional Azure CLI task was added to publish symbols to the Microsoft Symbol Publishing Service. - In `OneBranchPipelines/stages/build-windows-single-stage.yml`, a new Boolean parameter `publishSymbols` was introduced to conditionally trigger the symbol publishing step. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #37472, #38066
#### AI description (iteration 1) #### PR Classification This feature enhancement migrates both the official and dummy release pipelines to use 1ES in alignment with the linked work items. #### PR Summary This pull request introduces new release pipelines for mssql-python, removes obsolete documentation, and refactors symbol publishing steps to support the 1ES migration. - `OneBranch_Learnings/`: Removed outdated documentation files. - `OneBranchPipelines/dummy-release-pipeline.yml`: Added a new dummy/test release pipeline configured for ESRP dummy releases using Maven. - `OneBranchPipelines/official-release-pipeline.yml`: Added a new official release pipeline designed for production releases to PyPI. - `OneBranchPipelines/steps/symbol-publishing-step.yml`: Updated symbol publishing steps with enhanced PowerShell and Azure CLI integration. - `OneBranchPipelines/build-release-package-pipeline.yml` and `OneBranchPipelines/stages/build-windows-single-stage.yml`: Adjusted variable references and removed legacy symbol publishing to align with the new pipelines. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #38067, #38068
Related work items: #39534
Add the baseline and suppression file to guide Guardian. The guide is found here https://eng.ms/docs/coreai/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/baselines The baseline and suppression file tell Guardian about the expected results of the scan. For credential scanning, the signatures of the credentials are coded in the guardian files. The files were downloaded from the failing build at https://sqlclientdrivers.visualstudio.com/mssql-python/_build/results?buildId=129570&view=results The process is to run the pipeline which will cause the failure. After doing due diligence to the credentials and making sure that they are safe to have in the source code, the baseline and suppression files can be updated. Related work items: #39894
Related work items: #39534
…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
#### 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
…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
…Support, Security Compliance & Test Infrastructure #### AI description (iteration 1) #### PR Classification This PR modernizes the build pipeline to support multi-platform builds with enhanced security compliance and improved test isolation. #### PR Summary The changes update and refine the CI/CD pipeline infrastructure across Windows, Linux, and macOS to enable versioned support, integrated security scanning, and isolated testing. - **`build-release-package-pipeline.yml`**: Revised template extensions and parameterization to drive cross-platform builds and enforce comprehensive SDL security scanning. - **`build-linux-single-stage.yml`**: Introduced SQL Server container startup with robust looping for building and testing wheels (now including Python 3.14) to ensure isolated validations. - **`build-windows-single-stage.yml`**: Added NuGet-based installation for Python 3.14 along with enhanced build, testing, and security scanning configurations for production-grade compliance. - **`build-macos-single-stage.yml`**: Updated the universal2 binary build process with Colima-based Docker setup for SQL Server testing and integrated additional security and artifact publishing steps. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #40501
… release/0.14.0
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 updates the package version to 0.14.0 and refreshes the PyPI description with comprehensive release notes detailing new features, performance improvements, and bug fixes for this minor version release.
Key Changes
- Version bumped from 0.13.1 to 0.14.0 in setup.py
- Updated PyPI description with v0.14.0 release notes, including performance improvements (50-60% faster fetching), new APIs, and breaking changes
- Added clear warnings about connection string validation breaking change
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| setup.py | Updated package version from 0.13.1 to 0.14.0 |
| PyPI_Description.md | Replaced v0.13.1 release notes with comprehensive v0.14.0 release notes including new features, bug fixes, and breaking change warnings |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
#### AI description (iteration 1) #### PR Classification This pull request is a release update that introduces new features, bug fixes, and a breaking change. #### PR Summary The release notes for version 0.14.0 have been updated to highlight significant performance improvements, enhanced functionality, and critical bug fixes, and the project version has been bumped accordingly. - `PyPI_Description.md`: Updated the release documentation to include new features (faster fetching, connection string validation, enhanced DECIMAL precision, comprehensive logging, connection attribute control, XML support) along with bug fixes and a breaking change on connection string validation. - `setup.py`: Updated the version number from 0.13.1 to 0.14.0. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> Related work items: #40507
📊 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
|
Work Item / Issue Reference
Summary
This pull request updates the package to version
0.14.0and introduces several major new features, performance improvements, and bug fixes. The most significant changes are a dramatic speedup for large result set fetching, enhanced connection string validation (including a breaking change), expanded decimal precision, unified logging, and new APIs for connection attribute control. Several bug fixes and improvements to authentication and decimal handling are also included.New Features and Improvements:
setup_logging()API for detailed diagnostics with zero overhead when disabled.Connection.set_attr()method provides fine-grained control over ODBC connection attributes and compatibility with pyodbc.XMLtype, including efficient streaming for large documents.Bug Fixes:
Version Update:
0.13.1to0.14.0insetup.py. (Fc