Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@bewithgaurav
Copy link
Collaborator

@bewithgaurav bewithgaurav commented Nov 15, 2025

Work Item / Issue Reference

AB#40517


Summary

This pull request updates both the dummy and official release pipelines and bumps the package version to v0.14.0 with a new PyPI description. The main changes focus on making the dummy pipeline strictly nonofficial and safer for testing, removing unused parameters and variables from both pipelines, and updating the documentation and versioning for a major feature release.

Pipeline configuration updates

  • Changed the dummy release pipeline (dummy-release-pipeline.yml) to always use the NonOfficial template and clarified documentation/comments to reinforce its test-only purpose. [1] [2]
  • Removed the packageVersion parameter and related variables from both the dummy and official release pipelines, simplifying parameter handling. [1] [2] [3] [4]

Script and output adjustments

  • Removed printing of the package version in pipeline script outputs for both pipelines to reflect the parameter removal and streamline logs. [1] [2] [3] [4]
  • Disabled TSA configuration in the dummy pipeline, further distinguishing it from the official release process.

Documentation and versioning

  • Updated PyPI_Description.md for v0.14.0, highlighting major new features (performance, validation, precision, logging, new APIs, XML support) and bug fixes, including a breaking change for connection string validation.
  • Bumped the package version in setup.py from 0.13.1 to 0.14.0 to match the new release.

bewithgaurav and others added 22 commits October 15, 2025 06:29
#### 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
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
#### 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
#### AI description  (iteration 1)
#### PR Classification
This PR performs a cleanup of release pipeline configurations by removing redundant parameters and standardizing log output.

#### PR Summary
The PR streamlines the YAML definitions for both dummy and official release pipelines by eliminating duplicate package version parameters and variables, updating default settings, and standardizing logging messages.
- `OneBranchPipelines/dummy-release-pipeline.yml`: Removed the redundant `packageVersion` parameter and its associated variables, changed the default `publishSymbols` value to `false`, and cleaned up logging statements by removing extra formatting and version printouts.
- `OneBranchPipelines/official-release-pipeline.yml`: Eliminated duplicate package version parameters and variables, and refined logging in release and dry run scripts by removing version messages and excess formatting.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->

Related work items: #40517
#### AI description  (iteration 1)
#### PR Classification
This pull request is a bug fix that corrects the dummy release pipeline configuration to default to a non-official setup.

#### PR Summary
The changes update the dummy release pipeline to extend a non-official template and remove outdated TSA settings, ensuring consistency with the refactored release pipelines and preventing accidental production configurations.
- In `OneBranchPipelines/dummy-release-pipeline.yml`, the extension is switched from the official template (`v2/OneBranch.Official.CrossPlat.yml`) to the non-official template (`v2/OneBranch.NonOfficial.CrossPlat.yml`).
- In `OneBranchPipelines/dummy-release-pipeline.yml`, TSA configuration settings have been removed.
- In `OneBranchPipelines/dummy-release-pipeline.yml`, header comments and descriptions were updated to accurately reflect the non-official, testing-only nature of this pipeline.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->

Related work items: #40517
Copilot AI review requested due to automatic review settings November 15, 2025 06:10
@github-actions github-actions bot added the pr-size: small Minimal code update label Nov 15, 2025
Copilot finished reviewing on behalf of bewithgaurav November 15, 2025 06:11
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 updates the release pipeline infrastructure for mssql-python v0.14.0, streamlining both official and dummy release pipelines by removing the packageVersion parameter and making the dummy pipeline strictly non-production.

Key Changes

  • Removed packageVersion parameter and related variables from both release pipelines, simplifying configuration
  • Changed dummy pipeline to use NonOfficial template and disabled TSA configuration to reinforce its test-only nature
  • Updated PyPI description with v0.14.0 release notes highlighting performance improvements, new features, and breaking changes

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
setup.py Bumped version from 0.13.1 to 0.14.0
PyPI_Description.md Updated release notes for v0.14.0 with new features, bug fixes, and breaking change warning
OneBranchPipelines/official-release-pipeline.yml Removed packageVersion parameter/variables and cleaned up output formatting
OneBranchPipelines/dummy-release-pipeline.yml Switched to NonOfficial template, removed TSA config, removed packageVersion parameter/variables, and changed publishSymbols default to false

πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link

πŸ“Š Code Coverage Report

πŸ”₯ Diff Coverage

100%


🎯 Overall Coverage

77%


πŸ“ˆ Total Lines Covered: 5065 out of 6536
πŸ“ Project: mssql-python


Diff Coverage

Diff: main...HEAD, staged and unstaged changes

No 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

βš™οΈ Build Summary πŸ“‹ Coverage Details

View Azure DevOps Build

Browse Full Coverage Report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-size: small Minimal code update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants